如何从 Excel 中的一个列表中提取与另一个列表(部分)匹配的单词?

如何从 Excel 中的一个列表中提取与另一个列表(部分)匹配的单词?

A 列包含产品名称列表(例如“罗勒 5 公斤包装”和“菠萝冷冻 2 公斤”),B 列包含通用名称列表(例如“罗勒”和“菠萝”)。我想从 B 列中获取与 A 列单元格(部分)匹配的所有单词的数组。

我的第一个行动点是突出显示包含另一列的部分文本的单元格。我找到了这个问题的答案在这个先前的问题中这里

现在我需要进一步帮助来提取所有(部分)匹配的匹配词。换句话说:

  • A 列包含条目“罗勒菠萝汁”
  • B 列包含条目“罗勒”和“菠萝”
  • C 列中 A 列条目后面应包含“罗勒、菠萝”。
产品 名字 火柴
罗勒菠萝汁 芒果 罗勒、菠萝
牛油果 菠萝
芒果速冻 2kg 罗勒 芒果
芒果橙汁 橙子 芒果、橙子

答案1

获胜的数组公式:

=TEXTJOIN(", ",TRUE,IF(NOT(ISERROR(SEARCH($B$2:$B$5,A2))),$B$2:$B$5,""))

注意:使用 TEXTJOIN 需要 Office 365。如果没有,最简单的方法就是将答案放在单独的列中,包括空白:

=TRANSPOSE(IF(NOT(ISERROR(SEARCH($B$2:$B$5,A2))),$B$2:$B$5,""))

对于 365 之前的版本,请记住使用 CTRL+SHIFT+ENTER 确认公式。

相关内容