索引与通配符和多个条件匹配

时间:2016-08-08 13:46:27

标签: excel indexing excel-formula match formula

之前我使用过这种形式的INDEX(MATCH())公式,但从未使用过通配符。任何人都可以解释为什么在A2&"*"中添加会返回错误值?我检查了数据,肯定应该匹配。

公式如下:

{=INDEX(I1:M1000,MATCH(1,(M1:M1000=Sheet3!B1)*(I1:I1000=A2&"*"),0),2)}

1 个答案:

答案 0 :(得分:6)

假设A2包含“abc”。

您可以在匹配声明的搜索字符串中放置一张外卡,例如

MATCH(A2&"*",I1:I1000,0)

搜索以abc开头但不在您搜索范围内的任何内容。

另外,括号

(I1:I1000=A2&"*")

只是将I1:I1000范围内的每个单元格与A2&amp;“*”进行比较,因此在此上下文中,它只是使用“abc *”进行每个单元格的字面匹配,而*不能用作通配符。< / p>

您可以尝试使用FIND或SEARCH进行部分匹配,或使用LEFT获取I1中字符串的前几个字符:I1000

=INDEX(I1:M1000,MATCH(1,(M1:M1000=B1)*(FIND(A2,I1:I1000)=1),0),2)

=INDEX(I1:M1000,MATCH(1,(M1:M1000=B1)*(LEFT(I1:I1000,LEN(A2))=A2),0),2)

如果使用IF语句重新构建公式,您仍然可以使用通配符: -

=INDEX(I1:M1000,MATCH(A2&"*",IF(M1:M1000=B1,I1:I1000),0),2)