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

例如,我知道我可以在Excel中search某些单元格的确切值

AB cat dog black dog black cat cat C1=MATCH(A1;B1:B4;0) 

这将给我4 – 第一行B1:B4出现“猫”。

但是我想search第一个包含我的文本但不等于它的单元格,所以在我的情况下它会是3,因为“黑猫”包含“猫”和“黑猫”“猫”

没有VBA可能吗?

你有效地匹配2个条件 – A1包含在文本中 A1 <>文本,所以你可以使用这个版本与MATCH

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

我用分号作为分隔符,而不是逗号,因为看起来你需要那些用于你所在地区的

你可以在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))) 

此function确保Cat之前或之后至less有1个字符,因此不会直接与Cat匹配。

以下是MATCH的一些文档


NB。 正如评论中所提到的,你可能不得不改变; 因为你的语言环境似乎与我的不同。