Google sheets 反向通配符Vlookup

Google sheets 反向通配符Vlookup,google-sheets,wildcard,vlookup,Google Sheets,Wildcard,Vlookup,我试图执行一个看起来像是反向通配符查找的操作,但如果有人对更好的公式有建议,我完全愿意接受 我有一个在单元格中有多个单词的列ex:(房子是棕色的),然后我有一个表,它有一列颜色和一列值ex:(A2=brown,B2=1738),我想做的是运行一个vlookup(房子是棕色的)并返回1738值 在我看来,这个公式是这样的 =vlookup("the house was brown",sheet2!"*"&A:B&"*",2,false) 通配符被附加到查找值上,但这似乎不起作用,

我试图执行一个看起来像是反向通配符查找的操作,但如果有人对更好的公式有建议,我完全愿意接受

我有一个在单元格中有多个单词的列ex:(房子是棕色的),然后我有一个表,它有一列颜色和一列值ex:(A2=brown,B2=1738),我想做的是运行一个vlookup(房子是棕色的)并返回1738值

在我看来,这个公式是这样的

=vlookup("the house was brown",sheet2!"*"&A:B&"*",2,false)
通配符被附加到查找值上,但这似乎不起作用,我已经尝试过通配符的位置,但结果什么都没有

任何帮助都将不胜感激


谢谢

从问题中,您有如下数据:

A1:A4格式的数据
老鼠是棕色的
这房子是棕色的
这辆车是红色的
知更鸟是红色的

由表格的查找表补充

命名范围“可查找”
Col1;Col2
棕色;5
红色6
蓝色7
等等

那么这个公式,

=trim(join(" ",arrayformula(iferror(vlookup((iferror(regexextract(lower(A1),"\b"&LookupTableCol1&"\b"),"")),LookupTable,2,FALSE),""))))
在B1:B4中,A1是可查找表的右上角,给出了输出

输出:
5
5.6
6
六,

也就是说,查找表中单词的每个实例都由关联的数字标识,这些数字在单个单元格中一次列出一个(以空格分隔)

请注意,查找表必须采用小写形式才能获得正匹配

这就是你想要的吗

为了编辑、测试或完善答案,这里有一个电子表格,显示了这一点,一旦答案被接受,我将删除它

对其工作原理的澄清
这是由

(1) 使用带有字符串文字的正则表达式来标识LookupTableCol1中是否存在一个查找词。添加到每一端的“\b”部分确保它作为一个完整的单词匹配,而lower()函数用于确保我们的结果不区分大小写。
(2) 然后将其输入到vlookup()中,在查找表中搜索该单词并返回相关值。
(3) 如果在regexextract()或vlookup()中未找到匹配项,则使用“iferror()”删除任何“N/A”错误。
(4) Arrayformula()用于在LookupTableCol1下重复这些操作并返回数组 (5) Join()用于将整个数组连接到单个单元格中以提高可读性。

(6) Trim()用于删除从arrayformula返回的数组中的空白单元格产生的任何前导空格或尾随空格,这是将join()用于包含空白单元格的数组的结果

从问题中,您有如下数据:

A1:A4格式的数据
老鼠是棕色的
这房子是棕色的
这辆车是红色的
知更鸟是红色的

由表格的查找表补充

命名范围“可查找”
Col1;Col2
棕色;5
红色6
蓝色7
等等

那么这个公式,

=trim(join(" ",arrayformula(iferror(vlookup((iferror(regexextract(lower(A1),"\b"&LookupTableCol1&"\b"),"")),LookupTable,2,FALSE),""))))
在B1:B4中,A1是可查找表的右上角,给出了输出

输出:
5
5.6
6
六,

也就是说,查找表中单词的每个实例都由关联的数字标识,这些数字在单个单元格中一次列出一个(以空格分隔)

请注意,查找表必须采用小写形式才能获得正匹配

这就是你想要的吗

为了编辑、测试或完善答案,这里有一个电子表格,显示了这一点,一旦答案被接受,我将删除它

对其工作原理的澄清
这是由

(1) 使用带有字符串文字的正则表达式来标识LookupTableCol1中是否存在一个查找词。添加到每一端的“\b”部分确保它作为一个完整的单词匹配,而lower()函数用于确保我们的结果不区分大小写。
(2) 然后将其输入到vlookup()中,在查找表中搜索该单词并返回相关值。
(3) 如果在regexextract()或vlookup()中未找到匹配项,则使用“iferror()”删除任何“N/A”错误。
(4) Arrayformula()用于在LookupTableCol1下重复这些操作并返回数组 (5) Join()用于将整个数组连接到单个单元格中以提高可读性。

(6) Trim()用于删除从arrayformula返回的数组中的空白单元格产生的任何前导空格或尾随空格,这是将join()用于包含空白单元格的数组的结果

google sheets Please如果列表中有两个匹配项怎么办?@ScottCraner对于这个项目,如果列表中有多个匹配项并不重要,只要它返回其中一个。理想情况下,它将是一个精确的匹配,但不需要。google sheets Please如果列表中有两个匹配怎么办?@ScottCraner对于这个项目,如果列表中有多个匹配,只要返回其中一个,其实并不重要。理想情况下,这将是一个精确的匹配,但不需要。嘿@Paul谢谢你的回答!我在让它工作上仍然有点困难。也许如果我分享我正在使用的数据可能会有所帮助。这是一个链接,指向我正在处理的内容的副本,有一个数据表,查找表上突出显示的单元格包含公式。再次感谢@里基亚当斯怎么样?我将添加另一个编辑来解释。@RickyAdams我已经更新了答案,现在我对具体情况有了更好的了解。基本上,我添加了一些内容,以确保只匹配整个单词(如果该单词是另一个单词,则不匹配),并删除任何区分大小写的内容。如果这解决了您的问题,请记住接受答案,并向其他人表明这是一个有效的解决方案,如果将来有人遇到这种情况。这非常有效!我只有最后一个问题。有没有办法将数组公式添加到外部?我正在尝试将其自动化,以便每次添加