查找A列中的值是否包含B列的值?

Nem*_*emo 42 excel vba excel-2007 excel-vba

我有两列 - 列E扩展到99504(值),列I扩展到2691(值).列包含带扩展名的文件名.

像这样的东西

E               I
TSL_groups.mrk  pcbx_report.mrk
abcd.mrk        jhuo.mrk
Run Code Online (Sandbox Code Playgroud)

等等...

我想查找列E中的文件(标题Filename_B)是否存在于E列(标题Filename_A)中.如果为true,则在新列中显示为TRUE,例如列K.

我怎么做?TIA.

Bra*_*rad 58

你可以试试这个

=IF(ISNA(VLOOKUP(<single column I value>,<entire column E range>,1,FALSE)),FALSE, TRUE)
Run Code Online (Sandbox Code Playgroud)

-要么-

=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))
Run Code Online (Sandbox Code Playgroud)

你可以替换<single column I value><entire column E range>命名范围.这可能是最简单的.

只需将该公式拖动到您想要的任何列中的I列的长度.


Jim*_*ena 42

您可以使用VLOOKUP,但这需要一个包装函数来返回TrueFalse.更不用说它(相对)缓慢.请改用COUNTIF或MATCH.

向下填充旁边列I(从现有的值在该式中K列I1I2691):

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

你也可以使用MATCH:

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

  • 还+1.请注意,因为MATCH返回一个数字或一个错误,而不是ISNA返回,你只需使用ISNUMBER(甚至COUNT将返回1/0结果) (2认同)

小智 6

你可以试试这个.:)简单解决方案!

=IF(ISNUMBER(MATCH(I1,E:E,0)),"TRUE","")
Run Code Online (Sandbox Code Playgroud)