我知道如果某些选择中出现某些单元格精确值,我可以在Excel中搜索,例如
A B
cat dog
black dog
black cat
cat
C1=MATCH(A1;B1:B4;0)
这将给我4 - B1的第一行:B4,其中出现“cat”。
但是我想搜索第一个包含我的文字的单元格但是它不等于它,所以在我的情况下它将是3,因为“黑猫”包含“猫”和“黑猫”<> “猫”
没有VBA可以吗?
答案 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。如评论中所述,您可能需要更改,
;
,因为您的语言区域似乎与我的不同。