用于在1列中搜索数据并从第2列中的数据中搜索数据并显示第2列的数据的公式

时间:2016-11-16 15:31:38

标签: excel

我有两列。列A中的每个单元格包含完整句子,列B中的每个单元格包含单词或短语。我想检查B列中任何单元格的内容是否出现在A列的每个单元格中,并获得列A中出现的B列单元格/单元格的单词或短语。

Column A      Column B     Search Result
Twenty One    Twenty       Twenty, One
Five Boxes    Ten       
Ten Words     Thirty       Ten
Twenty Pens   One          Twenty

1 个答案:

答案 0 :(得分:0)

您可以使用矩阵(数组)公式来实现此目的。请在单元格C2中输入以下公式(假设您的表格从A1开始):

=LEFT(CONCAT(IF(ISNUMBER(SEARCH($B$2:$B$5;A2))=TRUE;$B$2:$B$5&", ";""));MAX(LEN(CONCAT(IF(ISNUMBER(SEARCH($B$2:$B$5;A2))=TRUE;$B$2:$B$5&", ";"")))-2;0))

请确保在将公式粘贴到单元格后按Ctrl+Shift+Enter此组合向Excel说明您使用的是矩阵公式。如果按Enter,则只有公式无效。然后,您可以以标准方式将公式复制到下面的单元格中。如果您想输入更多数据,则需要扩展范围$B$2:$B$5

您可以查看我的example sheet here。您还可以阅读有关矩阵公式in Microsoft documentation的更多信息。

编辑#1 美国语言环境中有一个不同的列表分隔符。如果您使用美国语言环境,请尝试以下公式:

=LEFT(CONCAT(IF(ISNUMBER(SEARCH($B$2:$B$5,A2))=TRUE,$B$2:$B$5&", ","")),MAX(LEN(CONCAT(IF(ISNUMBER(SEARCH($B$2:$B$5,A2))=TRUE,$B$2:$B$5&", ","")))-2,0))

请注意在输入公式后使用Ctrl+Shift+Enter