需要比较一系列单元格中的部分文本,以查看是否存在于另一个单元格区域中

时间:2014-04-01 23:43:10

标签: excel search if-statement

基本上......我在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。可以这样做吗?我一直在网上搜索几个小时,无法想出正确的配方。感谢。

1 个答案:

答案 0 :(得分:0)

这是这个答案稍微复杂一点的版本:https://stackoverflow.com/a/22754109/293078。两者都使用COUNTIF和通配符。这个需要一个辅助列。这是它的外观:

enter image description here

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行,并在几秒钟内完成。