【问题标题】:Google Sheets Partial Match CellsGoogle 表格部分匹配单元格
【发布时间】:2021-02-08 16:20:41
【问题描述】:

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

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

任何关于如何做到这一点的建议将不胜感激。

【问题讨论】:

  • 您的 C 列已经包含一些内容...您能否在工作表中提供一些所需输出的示例?

标签: google-sheets google-sheets-formula


【解决方案1】:

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

当我们比较H2:H70B2 的范围时,这将返回一个可能匹配或不匹配的数组(IF 之后的 emtpy),因此这个数组必须用ARRAYFORMULA 处理。

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

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

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

【讨论】:

  • 非常感谢您的回答,但是在大写时它似乎不起作用 - 所以它需要完全匹配。是否可以对其进行重新表述,使其与忽略大小写的单词匹配,并且可以在字符串中的任何位置?
猜你喜欢
  • 2016-10-21
  • 2021-06-08
  • 1970-01-01
  • 2019-08-28
  • 1970-01-01
  • 2021-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多