查找单元格值是否是列表中某个其他单元格的一部分

时间:2013-10-31 14:07:38

标签: excel

我知道如果某些选择中出现某些单元格精确值,我可以在Excel中搜索,例如

A         B
cat       dog
          black dog
          black cat              
          cat

C1=MATCH(A1;B1:B4;0)

这将给我4 - B1的第一行:B4,其中出现“cat”。

但是我想搜索第一个包含我的文字的单元格但是它不等于它,所以在我的情况下它将是3,因为“黑猫”包含“猫”和“黑猫”<> “猫”

没有VBA可以吗?

2 个答案:

答案 0 :(得分:4)

您有效地匹配2个条件 - A1包含在文本 A1<>中文本,因此您可以将此版本与MATCH

一起使用

=MATCH(1;INDEX((B1:B4<>A1)*(SEARCH(A1;B1:B4)>0);0);0)

我使用分号作为分隔符而不是逗号,因为您似乎需要适合您所在地区的那些

答案 1 :(得分:2)

您可以在MATCH中使用通配符。所以我认为你可以通过像

这样的功能实现这一目标
 =IF(OR(ISNA(MATCH(A2&"?*",B1:B5,0)),ISNA(MATCH("*?"&A2,B1:B5,0))),IF(ISNA(MATCH(A2&"?*",B1:B5,0)),IF(ISNA(MATCH("*?"&A2,B1:B5,0)),-1,MATCH("*?"&A2,B1:B5,0)),MATCH(A2&"?*",B1:B5,0)),IF(MATCH("*?"&A2,B1:B5,0)<MATCH(A2&"?*",B1:B5,0),MATCH("*?"&A2,B1:B5,0),MATCH(A2&"?*",B1:B5,0)))

此功能可确保Cat之前或之后至少有1个字符,因此它不会直接与Cat匹配。

以下是MATCH

的一些文档

NB。如评论中所述,您可能需要更改, ;,因为您的语言区域似乎与我的不同。