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

我以前使用过这种forms的INDEX(MATCH())公式,但是从来没有使用过通配符。 任何人都可以解释为什么添加A2&"*"将返回一个错误值? 我检查了数据,肯定应该有一场比赛。

公式如下:

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

假设A2包含“abc”。

你可以在匹配语句的searchstring中插入一个通配符,例如

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

search以abc开始的任何内容,但不在search范围内。

另外,支架

 (I1:I1000=A2&"*") 

只是将范围I1:I1000中的每个单元格与A2&“*”进行比较,因此在这种情况下,它只是将每个单元格与“abc *”进行文字匹配,并且*不能用作通配符。

您可以尝试使用FIND或SEARCH进行部分匹配或使用LEFT来获取I1中string的前几个字符: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)