如何在文本“精确”或“关闭”与另一个Google工作表中的文本匹配的另一列中返回值

问题描述

我有两列要与其他两列进行比较,并在第三列中返回值。挑战在于,我需要返回一个完全匹配的WHERE,否则,如果匹配只是一个单词,则返回最接近的匹配,甚至返回。因此,我正在查看一个公式,该公式可能会查看字符串和单词的顺序,甚至可能是文本不完全匹配的地方。

这是我尝试过的方法,但显然无法完成工作。

=ARRAYFORMULA(VLOOKUP(F:F&"*",B:C,2,FALSE))

指向电子表格的链接为https://docs.google.com/spreadsheets/d/1sgjFuZItDWW7R1QINKgeSWP2-vvRmkQ2DfwcGXTpfn0/edit?usp=sharing

感谢您的光临。

解决方法

我想我已经很接近您的要求了。我确实使用了两个单独的公式,因为我不确定哪个公式更接近您要查找的公式,因此我将同时解释这两个公式。

1:

=if(arrayformula(if(B2:B16=F2:F16,"true","false"))="false",iferror(arrayformula(vlookup("*"&G$2:G$16&"*",$B$2:$C$15,2,false)),iferror(arrayformula(vlookup("*"&H$2:H$16&"*",iferror(arrayformula(vlookup("*"&J$2:J$16&"*","x"))),"what")

首先,我不得不使用=SPLIT()将名称拆分为单独的单元格。从那里,我将名字优先于姓氏(如果名字匹配,则抓取,否则,如果名字匹配,则抓取,依此类推)。如果公式未找到任何匹配的名称,则返回“ x”。如果公式返回“ what”,则说明有问题。

2:

=if(arrayformula(if(B2:B16=F2:F16,iferror(arrayformula(vlookup(E$2:E$16,$A$2:$C$15,3,"x")))),"what")

对于第二个公式,除了在结尾处,我基本上做了相同的事情,如果找不到任何匹配的名称,则会匹配国家/地区。

在字符串的开头和结尾使用*可以用作通配符this page probably explains it better than I could.

我总是无法使它返回一个可用的完全匹配项,否则将返回最接近的匹配项。这可能是我所缺少的简单解决方案,但无论如何我还是觉得很接近。如果您想在名称内找到更多的名称(例如,Egbertrosa内的Egbert),则需要用单个字母将名称分开,这可能会造成混乱。

我确实看到我的某些公式返回的值与期望值不同,所以我将继续研究该问题是否可以解决。

这是我电子表格的链接,因为我确实需要为名称拆分添加4列,因此结构与您当前的名称略有不同。 https://docs.google.com/spreadsheets/d/10iMMs1lkJv5QCG2rtJT1BlxVjl79VUZQIoYbelR1gtI/edit?usp=sharing

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...