【问题标题】:Check if one of multiple values is present in a column检查列中是否存在多个值之一
【发布时间】:2015-09-26 02:14:51
【问题描述】:

我在 Excel 2013 中有一张表格,其中包含数千条食品记录(冷冻牛肉、冷冻牛肉、牛腩、牛肋骨、鸡柳、整鸡、鱼皮、鱼- whole, yogurt, lettuce-imported, lettuce-frozen,tomato-fresh,tomato, water, milk,...etc) 存储在 A 列中。请注意,该值可能包含食品项目名称以外的其他内容。

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

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

【问题讨论】:

  • 您可以创建一个包含 Beef、Chicken 或 Fish 等值的数组,然后在遍历数组时使用 InStr 函数(查找文档)比较每个单元格。然后有一个 if 语句将肉类或蔬菜放在相应的单元格中。
  • @ExcelHero 在思考之前就输入了。将删除

标签: vba excel text excel-formula


【解决方案1】:

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

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

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

现在复制 B2 并根据需要向下选择 B3 并粘贴。

注意:请仔细看公式中间的大缺口。您会看到这实际上是两个单独的公式,它们用 & 符号连接在一起。您可以通过添加与前两个类似的另一个短语来以相同的方式轻松扩展此公式以用于新类别。事实上,您可以通过这种方式添加更多类别。

【讨论】:

  • 非常聪明的丹尼尔!我从来没有想过以这种方式使用 REPT 功能。
  • 谢谢伙计。这非常有用且易于使用。 Excel 需要有诺贝尔奖!!
【解决方案2】:

设置一个两列的表。命名它,例如FoodTable。第一列名为Word(用于关键字),第二列Type 用于产品类型。像这样的:

然后,将您的数据放在 A 列中,在 B1 中输入以下公式并填写:

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

结果:

【讨论】:

    猜你喜欢
    • 2019-11-06
    • 2016-10-30
    • 2022-12-20
    • 1970-01-01
    • 2012-02-16
    • 1970-01-01
    • 2021-09-02
    • 1970-01-01
    • 2021-07-07
    相关资源
    最近更新 更多