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

时间:2015-10-08 08:12:46

标签: excel excel-formula excel-match

我想excel使用<th data-width="200px"></th> com_cd来显示表数组中的值,该数组包含两个匹配的单元div_cdINDEX

我尝试过以下公式,但没有用。

MATCH

以下是根据=INDEX(K9:K53,MATCH(K3,I9:I53,0),MATCH(K4,J9:J53,0)) com_cd提供所需结果的Excel工作表的屏幕截图

div

2 个答案:

答案 0 :(得分:1)

尝试使用数组公式(CTRL + SHIFT + ENTER)代替Enter

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

未经测试但应该有效。

稍后会编辑解释我们的公式以及您的公式不起作用的原因。

答案 1 :(得分:1)

INDEX function上的 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¹ function使用选项 6 忽略错误,同时使用{{3}检索最小的有效条目}(例如 15 )。第二个公式通过将1E + 99(一个 1 后跟99个零)添加到任何不匹配的行并使用SMALL sub-function获取最小匹配行来执行相同的操作。

MIN function

¹ Excel 2010引入了AGGREGATE two column match。早期版本不提供。