0

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

A         B
cat       dog
          black dog
          black cat              
          cat

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

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

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

没有VBA可以吗?

4

2 回答 2

4

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

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

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

于 2013-10-31T15:01:19.933 回答
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的一些文档


注意。如评论中所述,您可能需要更改,;因为您的语言环境似乎与我的不同。

于 2013-10-31T14:28:29.450 回答