Google 表格部分匹配单元格

时间:2021-02-08 16:20:41

标签: google-sheets google-sheets-formula

我正在尝试将产品(B 列)与 DB(H 列)进行部分匹配。但是,B 列在单元格中有许多部分名称。需要搜索整个H列以查找B列的部分匹配项,如果找到匹配项,则需要将H列的单元格名称输入到C列中。

链接到示例 Google 表格:https://docs.google.com/spreadsheets/d/1ZvIbZQ9zsLd6w1uGgSbQ3v-QFebMYrlQfvdsLCfEwAg/edit?usp=sharing

任何有关如何执行此操作的建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

为了查找与 H2:H70B2 中的所有单元格值(以及 B 列的后续值)对应的子字符串,您需要使用函数 REGEXMATCH 将文本(在 B2 下面的情况下)与正则表达式(来自 H2:H70 的每个值)进行比较。如果找到匹配项,则使用 IF 函数返回列 H 的值,如果没有找到,则返回空。

当我们将范围 H2:H70B2 进行比较时,这将返回可能匹配或不匹配的数组(IF 之后为空),因此必须使用 { 处理此数组{3}}。

然后我们使用 ARRAYFORMULA 只返回非空的数组值。这将为我们留下一组仅包含找到的实际匹配项的值(以防有多个)。正如我想象的那样,您希望将所有匹配项放在一个单元格中,我将所有匹配项数组值加入到一个使用 QUERY 以空格分隔的单个数组中。

最后,我使用 TEXTJOIN 返回空,以防找不到匹配项。

=IFERROR(TEXTJOIN(" ",TRUE,QUERY(ARRAYFORMULA(IF(REGEXMATCH(B2, $H$1:$H$70),$H$1:$H$70,"")),"where Col1 is not null")))