基本上......我在B列和C列中有800多个名字。我在A栏中有另外700,000个名字。所以我想检查A1以查看是否在B和C中的任何地方找到了部分文本然后输出D1的答案。
例如...... A1的名字是mike trout。在b或c的某个地方可能是鳟鱼这个名字。我希望D1输出TRUE,因为b或c中的单元格包含A1中的部分文本。如果在b或c列中找不到名称Mike或Trout,我希望D1说FALSE。可以这样做吗?我一直在网上搜索几个小时,无法想出正确的配方。感谢。
答案 0 :(得分:0)
这是这个答案稍微复杂一点的版本:https://stackoverflow.com/a/22754109/293078。两者都使用COUNTIF
和通配符。这个需要一个辅助列。这是它的外观:
B列有一个公式,在A列的相应名称之前和之后添加一个空格.B2中的公式为:
=" " & A2 & " "
这意味着我们只会获得完整单词的匹配,例如“Ted”与“Teddy Bear”不匹配,但“Teddy”将会匹配。
如您所述,C列和D列包含要搜索的名称。最后,在E2中,我们有array formula,必须输入 ctrl - shift - 输入:
=SUM(COUNTIF(B2,"* " & $C$2:$D$8 &" *"))>0
将B2和E2中的公式向下拖动700,000行并观察魔法发生。
我认为这会毫无希望地缓慢,但我只是尝试了700,000行,并在几秒钟内完成。