在表数组中使用INDEX和MATCH的两列查找
我想excel显示表格数组中有两个匹配的单元格com_cd
和div_cd
使用INDEX
和MATCH
。
我已经尝试了下面的公式,但它没有工作。
=INDEX(K9:K53,MATCH(K3,I9:I53,0),MATCH(K4,J9:J53,0))
这里是excel表格的屏幕截图,根据com_cd
和div_cd
给出所需的结果
尝试数组公式(CTRL + SHIFT + ENTER)
而不是Enter
。
=INDEX(K9:K53,MATCH(K3&K4,I9:I53&J9:J53,0),1)
没有testing,但应该工作。
稍后再编辑解释我们的公式和原因为什么你的公式不起作用。
INDEX函数的 column_num参数不能提供辅助行标准。 您需要一种方法来确保row_num参数上的两列匹配,并将column_num留空或作为1 ( K9: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函数取最小的匹配行来执行相同的操作。
¹AGGREGATEfunction是在Excel 2010中引入的。它在早期版本中不可用。