Excel:查找包含的文字

Excel: Look up for the text contains

我需要进行查找,return 根据文本是否包含该值来确定值。

请看下面我的excelsheet,我需要的是一个公式,它可以帮助我的'Category'列填充'Category'列的查找table.

注:请看下面excelsheetlink。

我尝试了公式“=VLOOKUP(B2,A13:B16,2,TRUE)”,但没有给出预期的结果。

这是对正常 "find this string inside a list of others" 的轻微扭曲。它需要一个使用 FIND.

搜索匹配项的数组公式

范围图片

公式单元格A2是一个数组公式(用CTRL + SHIFT + ENTER输入)复制下来对于每个项目。它在 lookup 的列表中搜索 item 中包含的项目,并且 return 是与 lookup 关联的 category 的结果。

=INDEX($E:$E,MIN(IF(IFERROR(FIND($D:$D,B2)>0,FALSE),ROW($D:$D)))-ROW($E))

工作原理

  • INDEX 是 return 来自 category 并且需要行号到 return
  • 行号是使用 FIND 确定的,它将检查一个字符串是否包含在另一个字符串的一部分中。在这种情况下,要搜索的字符串是 lookup table 并且我们在 item.
  • 中进行匹配
  • FIND 将 return #VALUE! 如果找不到匹配项,则将其转换为 FALSEIFERROR 因为 #VALUE! 不会稍后与 MIN 合作。
  • 然后 IF 将 return ROW 号码或 FALSE 找到的匹配项。
  • MIN用于将ROW个数字的列表转换为最小的数字。这意味着不处理多个匹配项。
  • 这个 ROW 号码然后用作 INDEX 的 return。这里应用了一个偏移量 -ROW(E1) 允许数据 tables 在其他 1:1.
  • 行中开始