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

Excel 查找单元格值是否是列表中其他单元格的一部分,excel,Excel,我知道如果某些单元格的精确值出现在某些选择中,我可以在Excel中搜索,例如 A B cat dog black dog black cat cat C1=MATCH(A1;B1:B4;0) 这将给我4-B1:B4中出现“cat”的第一行 但我想搜索第一个包含文本但不等于文本的单元格,因此在我的例子中,它将是3,因为“黑猫”包含“猫”和“黑猫”“猫” 没有VBA是否可能?您可以

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

A         B
cat       dog
          black dog
          black cat              
          cat

C1=MATCH(A1;B1:B4;0)
这将给我4-B1:B4中出现“cat”的第一行

但我想搜索第一个包含文本但不等于文本的单元格,因此在我的例子中,它将是3,因为“黑猫”包含“猫”和“黑猫”“猫”


没有VBA是否可能?

您可以在
匹配中使用通配符。所以我认为你可以通过这样的函数来实现

 =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)))

=IF(或(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)),MATCH(A2&“?*”,B1:B5,0)),MATCH(A2&“?*”),IF(MATCH(“*?”&A2,B1:B5,0)),B1:B5,0)),IF(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)))

=IF(或(ISNA(匹配(A2&“?*”,B1:B5,0))、ISNA(匹配(“*?”&A2,B1:B5,0))、IF(ISNA(匹配(A2&“?*”,B1:B5,0))、IF(ISNA(匹配(“*?”&A2,B1:B5,0))、1,匹配(“*?”&A2,B1:B5,0))、匹配(A2&“?*”、B1:B5,0))、IF(匹配(“*?”&A2,B1:B5,0))您有效地匹配了两个条件—A1包含在文本中,A1包含在文本中,因此您可以将此版本与
MATCH

=匹配(1;索引((B1:B4A1)*(搜索(A1;B1:B4)>0);0)


我使用分号作为分隔符,而不是逗号,因为您的区域似乎需要这些分隔符

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

=匹配(1;索引((B1:B4A1)*(搜索(A1;B1:B4)>0);0)


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

这不一定会找到第一个匹配项-如果您将上述示例中的B2从“dog”更改为“cat flap”,那么这应该是第一个有效匹配项-但公式仍然返回3-请参阅我的答案…如果“cat flap”是B1:B5中唯一包含“cat”的值,然后公式返回#N/A…谢谢@barryhoudini我更改了此值,使其正常工作。:)我认为您仍然需要添加另一个IF,因为如果B1=“black cat”和B2=“cat flap”得到的是2而不是1。。您(再次)是对的.我做了编辑,但现在这是一个令人讨厌的公式..你的答案要优雅得多。这不一定会找到第一个匹配-如果你将上面示例中的B2从“dog”更改为“cat flap”,那么这应该是第一个有效匹配-但公式仍然返回3-请参阅我的答案…如果“cat flap”是B1:B5中包含“cat”的唯一值然后公式返回#N/A…谢谢@barryhoudini我更改了它,使其正常工作。:)我认为您仍然需要添加另一个IF,因为如果B1=“black cat”和B2=“cat flap”得到的是2而不是1是。。您是对的(再次)。我做了编辑,但这是一个令人讨厌的公式。您的答案要优雅得多。