检查列中是否存在多个值之一

我在Excel 2013中有一张桌子,上面有成千上万的食品logging(牛肉冷冻,牛肉冷藏,牛腩,牛排,鸡柳,鸡肉全鱼,鱼皮,整条鱼,酸奶,生菜import,生菜冷冻,番茄新鲜,番茄,水,牛奶,等等)。注意,该值可能包含除食品名称以外的其他内容。

我在列A旁边创build了列B.我希望列B在列A中包含食物项目的类别。例如,如果A1中包含“牛肉”或“鸡肉”或“鱼”,则B1应该等于“肉类”。 如果A1中有番茄或生菜或洋葱,那么B1应该等于“蔬菜”。

什么是实现它的最好方法?

假设您有列标题,请在单元格B2中input此公式:

=REPT("Meat",MAX(IFERROR(MATCH({"*beef*","*chicken*","*fish*"},A2,),))) & REPT("Vegetable",MAX(IFERROR(MATCH({"*tomato*","*lettuce*","*onion*"},A2,),))) 

这是一个数组公式,并且必须用Ctrl + Shift + Enter确认

现在复制B2并selectB3,只要你需要和粘贴。

注意:请仔细查看公式中间的大差距。 你会发现这实际上是两个单独的公式连接在一起的&符号。 您可以用相同的方式轻松地扩展此公式,即为类别添加与前两个类似的短语。 事实上,你可以用这种方式添加更多的类别。

设置一个两列表。 命名它,例如FoodTable 。 具有第一列命名的Word (关键字)和第二列的Type ,为产品的types。 像这样的东西:

在这里输入图像说明

然后,在列A中input数据,在B1中input以下公式并填写:

 =LOOKUP(2,1/ISNUMBER(FIND(FoodTable[Word],A1)),FoodTable[Type]) 

结果:

在这里输入图像说明