Excel:查找包含的文本

我需要做一个查找,并返回基于文本是否包含它的值。

请看下面我的Excel表格,我需要的是一个公式,这将帮助我的“类别”列填充查找表的“类别”列。

注意:请在下面的链接中看到我的Excel表单。

数据由用户提供

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

这是正常的“在其他列表中查找此string”的轻微扭曲。 它需要一个使用FINDsearch匹配的数组公式。

范围的图片

范围和结果

单元格A2中的公式是一个数组公式(使用CTRL + SHIFT + ENTERinput )并复制到每个项目。 它在lookup列表中lookup项目中包含的item并返回与lookup关联的category的结果。

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

怎么运行的

  • INDEXcategory返回并需要一个行号才能返回
  • 行号是通过使用FIND来确定的,它将检查一个string是否被包含在另一个string的一部分中。 在这种情况下,要search的string是lookup表,我们在该item内匹配。
  • FIND将返回#VALUE! 如果未find匹配项,则将其与IFERROR一起转换为FALSE ,因为#VALUE! 稍后将不再使用MIN
  • IF将返回行号或FALSE来查找匹配项。
  • MIN用于将ROW号码列表转换为最小号码。 这意味着多个匹配不被处理。
  • 这个行号然后被用作INDEX的返回。 这里有一个偏移量-ROW(E1) ,它允许数据表以1:1 -ROW(E1)连续起始。