使用INDEX-MATCH查找两列中的值并返回第三个值

我正在创build一个matrix,其中A列有部分列表,第1行以yyyy / mm格式填充了一年中的几周。 我想要做的是将这个matrix填充到来自一个总计工作表的数量数据中,其中每个部分的需求数量按一年中的一周列出。 在此汇总表中,列A列出了部件,列B列出了周,列C列出了数量。

我一直在试图写一个=INDEX(MATCH(),MATCH())types的公式来获取列C的值,如果列A和B的值分别与列A和行1中的值匹配matrix表,但一直只得到#REF错误的回报。 在这一点上,我需要第二双眼睛。 这是公式:

=INDEX(MRP!$C$1:$C$6400,MATCH(A2,MRP!$A$2:$A$6400,0),MATCH(B1,MRP!$B$2:$B$6400,0))

我是以正确的方式去做,还是需要另一种方法呢?

单元格B2 = SUMIFS(MRP!$ C:$ C,MRP!$ A:$ A,Sheet1!$ A3,MRP!$ B:$ B,Sheet1!B $ 1)

然后你可以复制这些。

您正在收到#REF错误,因为您超出了您尝试匹配的数组范围。 索引函数有两个参数和一个可选参数。

 INDEX(array, row_num, [column_num]) 

看你的公式,

 =INDEX(MRP!$C$1:$C$6400,MATCH(A2,MRP!$A$2:$A$6400,0),MATCH(B1,MRP!$B$2:$B$6400,0)) 
  • MRP!$C$1:$C$6400是要匹配的数组
  • MATCH(A2,MRP!$A$2:$A$6400,0)获取行号。 也许它应该是MATCH(A1....)
  • MATCH(B1,MRP!$B$2:$B$6400,0)获得列号。

但是由于你的匹配数组只有一列,匹配函数的列号大于1,这是在数组范围之外。

如果您需要匹配列A和B中的两个值,则可以使用此公式进行匹配

 =MATCH(lookup_value_1 & lookup_value_2, lookup_array_1 & lookup_array_2, match_type) 

对于你的情况,这将是

 =MATCH(A1 & B1, MRP!$A$2:$A$6400 & MRP!$B$2:$B$6400, 0) 

您需要使用Ctrl+Shift+Enter来提交公式,而不仅仅是按Enter 。 这将会得到列A和B都与单元格A1B1匹配的行号。

最后,你可以索引它

 =INDEX(MRP!$C$1:$C$6400,Result from above match,0) 

我会使用SUMIFS。 在第二张工作表中创build一个帮助者列,并input月份编号,然后使用

 =SUMIFS(sheet2!column C, sheet 2!helper column, month(sheet1!A$1),sheet2! column A, sheet1!$A1)