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

IIJ*_*FII 5 indexing excel formula match excel-formula

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

公式如下:

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

Tom*_*rpe 6

假设A2包含"abc".

你可以在匹配语句的搜索字符串中放一张外卡,例如

MATCH(A2&"*",I1:I1000,0)
Run Code Online (Sandbox Code Playgroud)

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

另外,支架

(I1:I1000=A2&"*")
Run Code Online (Sandbox Code Playgroud)

只是将I1:I1000范围内的每个单元格与A2和"*"进行比较,因此在此上下文中,它只是将每个单元格与"abc*"进行文字匹配,而*不作为通配符.

您可以尝试使用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)
Run Code Online (Sandbox Code Playgroud)

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

=INDEX(I1:M1000,MATCH(A2&"*",IF(M1:M1000=B1,I1:I1000),0),2)
Run Code Online (Sandbox Code Playgroud)