在表数组中使用INDEX和MATCH的两列查找

我想excel显示表格数组中有两个匹配的单元格com_cddiv_cd使用INDEXMATCH

我已经尝试了下面的公式,但它没有工作。

 =INDEX(K9:K53,MATCH(K3,I9:I53,0),MATCH(K4,J9:J53,0)) 

这里是excel表格的屏幕截图,根据com_cddiv_cd给出所需的结果

DIV

尝试数组公式(CTRL + SHIFT + ENTER)而不是Enter

 =INDEX(K9:K53,MATCH(K3&K4,I9:I53&J9:J53,0),1) 

没有testing,但应该工作。

稍后再编辑解释我们的公式和原因为什么你的公式不起作用。

INDEX函数的 column_num参数不能提供辅助行标准。 您需要一种方法来确保row_num参数上的两列匹配,并将column_num留空或作为1K9:K53只有列)。

K5的标准公式应该是,

 =index(K9:K53, aggregate(15, 6, row(1:45)/((i9:i53=k3)*(j9:j53=k4)), 1)) 

… 要么,

 =index(K9:K53, min(index(row(1:45)+((i9:i53<>k3)+(j9:j53<>k4))*1e99, , ))) 

单元格范围K9:K53共有45行。 K9:K53内的位置在行内ROW(1:45) 。 第一个公式强制任何不匹配的行进入#DIV/0! 错误状态和AGGREGATE¹函数使用选项6忽略错误,同时用SMALL子函数 (例如15 )检索最小的有效条目。 第二个公式通过向任何不匹配的行添加1E + 99( 1后跟99个零)并使用MIN函数取最小的匹配行来执行相同的操作。

AGGREGATE两列匹配


¹AGGREGATEfunction是在Excel 2010中引入的。它在早期版本中不可用。