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

时间:2015-08-13 04:07:15

标签: excel

关闭上一篇文章: Excel match two columns and output third

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

     A     B     C
1   Red   Car   Result#1

2   Blue  Boat  Result #2 

3   Red   Boat  Result #3

4   Green Car   Result #4

假设我想要找到一个匹配,其中A列=红色,B列=船,应返回C列中应该为结果#3的相应值。

使用上一篇文章的解决方案:

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

这实际上会返回值B列中第一个匹配的值,即结果#2而不是匹配为真的预期结果#3。

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

我已经想过通过创建另一个将Col A和B组合成一个唯一标识符的列来解决这个问题,但我希望避免这种情况。

谢谢!真的很感激,并对表格式感到抱歉。我还是很陌生。

2 个答案:

答案 0 :(得分:1)

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

INDEX AGGREGATE with two column 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等。

答案 1 :(得分:0)

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

=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排序。