2015-06-12 104 views
1

的文本我需要执行查找并根据文本是否包含它返回值。Excel:查找包含

请看我下面的excel表格,我需要的是一个公式,它将帮助我的'Category'列填充查找表的'Category'列。

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

data provided by user

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

+0

谢谢拜伦!我已经分享了图片链接。请让我知道,如果有帮助。 –

+0

在你的例子中,“B2:B7”中的值是你需要查看的唯一值还有其他值吗? –

+0

B2:B7只是一个示例。实际值要多得多,将来会增加更多。 –

回答

1

这是对正常的“在其他列表中查找此字符串”的轻微扭曲。它需要使用FIND来搜索匹配的数组公式。在细胞A2范围

ranges and results

图片是阵列式和被复制下来的每个项目(与CTRL + SHIFT + ENTER输入)。它在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这将检查是否字符串包含在另一串的一部分。在这种情况下,要搜索的字符串是lookup表,并且我们在item内匹配。
  • FIND如果没有找到匹配将返回#VALUE!,这被转换为FALSEIFERROR因为#VALUE!将与MIN没有工作以后。
  • IF将返回ROW号码或FALSE找到的匹配项。
  • MIN用于将ROW号码列表转换为最小号码。这意味着多个匹配不会被处理。
  • ROW数字然后用作INDEX的回报。这里应用的偏移量为-ROW(E1),它允许数据表在其他行1:1中开始。
+0

感谢您的时间拜伦先生!它帮助我:) –