查找某一列是否包含另一列的值?

41

我有两列数据。
列E的范围是从1到99504(数值),列I的范围是从1到2691(数值)。
这两列包含带扩展名的文件名。

类似这样:

E I
文件名_A 文件名_B
TSL_groups.mrk pcbx_report.mrk
abcd.mrk jhuo.mrk

等等...

我想查找列I(“文件名_B”标题)中的文件是否存在于列E(“文件名_A”标题)中。

如果为真,在另一列K中显示TRUE。


使用Vlookup公式。查看Excel帮助 :) - Siddharth Rout
3个回答

57

你可以尝试这个

=IF(ISNA(VLOOKUP(<single column I value>,<entire column E range>,1,FALSE)),FALSE, TRUE)

-或-

=IF(ISNA(VLOOKUP(<single column I value>,<entire column E range>,1,FALSE)),"FALSE", "File found in row "   & MATCH(<single column I value>,<entire column E range>,0))

你可以用命名区域来替换<单个I列值><整个E列范围>。这可能是最简单的方法。

只需在所需的任何列中将该公式向下拖动到I列的整个长度即可。


42

你可以使用VLOOKUP函数,但这需要一个包装函数来返回TrueFalse。更不用说它相对较慢。建议改用COUNTIF或MATCH函数。

将此公式在列K中填充到现有值的旁边(从I1I2691):

=COUNTIF(<entire column E range>,<single column I value>)>0
=COUNTIF($E$1:$E$99504,$I1)>0

你也可以使用MATCH:

=NOT(ISNA(MATCH(<single column I value>,<entire column E range>)))
=NOT(ISNA(MATCH($I1,$E$1:$E$99504,0)))

2
请注意,由于MATCH函数返回数字或错误,因此您可以使用ISNUMBER(甚至是COUNT将返回1/0结果)而不是使用ISNA和NOT。 - barry houdini
@barryhoudini 好观点,有几种不同的公式组合可以使用。 - JimmyPena

6
你可以尝试这个。 :) 简单的解决方案!
=IF(ISNUMBER(MATCH(I1,E:E,0)),"TRUE","")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接