谷歌表上的模糊匹配

时间:2016-11-07 14:54:30

标签: regex google-sheets google-spreadsheet-api

我正在尝试模糊匹配谷歌表中的两列,我尝试了很多公式,但我认为它将归结为一个脚本来帮助。

我有一个包含产品ID的列,例如

  • E20067

然后我有另一张包含另一列的图表,其中包含与此产品代码相关的图片网址,例如

我想要做的是“模糊”匹配这些列的产品ID,然后为每个匹配创建一个新列。因此,它会将产品ID放在每个产品图像URL的多列中的同一行上 - 如下图所示:

enter image description here

有没有办法在google工作表中使用脚本或公式执行此操作?

3 个答案:

答案 0 :(得分:1)

在Google表格中有一些强大的正则表达式'公式。

假设您在A列中有ID列表,在B列中有URL列表

enter image description here

然后使用公式:

=REGEXEXTRACT(B1,JOIN("|",$A$1:$A$3))

它将匹配ID中的一个。向下拖动公式以查看上图中的结果。

查看更多info here

答案 1 :(得分:0)

尝试以下方法。我假设产品代码在Sheet1中,URL在Sheet2中。 A列:

=iferror(transpose(FILTER(Sheet2!$A$2:$A,Search("*"& A2 &"*",Sheet2!$A$2:$A))))

复制。

如果您想显示图片而不是网址,请尝试:

=arrayformula(image(iferror(transpose(FILTER(Sheet2!$A$2:$A,Search("*"& A2 &"*",Sheet2!$A$2:$A))))))

答案 2 :(得分:0)

旧帖子,但如果您发现自己,请在Flookup上搜索Google表格。它应该完全符合您的要求。

使用此功能:

Flookup (lookupValue, tableArray, lookupCol, indexNum, threshold, rank).

参数详情如下:

  1. lookupValue:您正在查找的值
  2. tableArray:您要搜索的表
  3. lookupCol:您要搜索的列
  4. indexNum:您希望从
  5. 返回数据的列
  6. 阈值:不应返回数据的百分比相似度
  7. 排名:第n个最佳匹配(例如,如果第一个不符合您的喜好)
  8. *您可以在官方网站上找到更多信息(示例等)。

    唯一的缺点是它只返回最佳匹配,而你似乎想要整个可能的匹配列表。