Excel:匹配两列并输出第三个… AND …每列有多个实例

处理以前的文章: Excel匹配两列,输出第三

我在列A中的值不是唯一的,并且列B中的值不是唯一的,但是列A和列B一起产生独特的组合:

ABC 1 Red Car Result#1 2 Blue Boat Result #2 3 Red Boat Result #3 4 Green Car Result #4 

比方说,我想要find一个匹配,其中A列为红色,B列为小船,应该返回列C中相应的值,应该是结果#3。

使用以前的文章的解决scheme:

=IF(MATCH("Red",A1:A4,0)=MATCH("Boat",B1:B4,0),INDEX(C1:C4,MATCH("Boat",B1:B4,0)),0)

这实际上会返回值B列船的第一场比赛,这将是结果#2,而不是预期结果#3匹配是真实的。

关于如何修改或编写一个函数的任何想法,该函数将指定检索相对于匹配为真(不使用VBA)的信息?

我想通过创build另一个列,结合列A和B来作出一个唯一的标识符,但我希望避免这一点可能的工作。

谢谢! 真的很感激它,并表格格式的抱歉。 我在这方面还很新。

您可以使用AGGREGATE函数检索两列匹配,以强制任何不匹配的错误并忽略错误。

INDEX AGGREGATE与两栏MATCH

E6中的公式是,

 =IFERROR(INDEX(C$1:C$99,AGGREGATE(15,6,ROW($1:$99)/((A$1:A$99="red")*(B$1:B$99="boat")), ROW(1:1))), "") 

你实际上使用了AGGREGATE函数的SMALL子函数,所以你可以通过增加k参数来获得第二,第三等等的连续匹配。 我通过使用等于1的ROW(1:1)来完成上述操作,但是在填充公式时将会增加到2,3等。

创build第三列是最有效的解决scheme。 但是,如果你必须避免它,你可以使用这样一个复杂的公式:

 =INDEX($C$1:$C$6,MATCH(A11,$A$1:$A$6,0) + MATCH(B11,OFFSET($A$1,MATCH(A11,$A$1:$A$6,0)-1,1,COUNTA($A$1:$A$6)-MATCH(A11,$A$1:$A$6,0),1),0)-1) 

但是条件是查找表对列1和列2进行sorting。