具有多个条件的INDEX MATCH返回N / A结果,但匹配条件看起来正确

时间:2019-01-03 23:39:29

标签: excel excel-formula

我正在尝试使用index-match组合将excel中的数据集从长到宽进行整形,但是我的match index公式返回NA's

我检查了是否使用sumproducts和countifs的组合正确指定了匹配条件。这给了我1的预期结果。

我觉得我在索引匹配代码中犯了一些愚蠢的语法错误,并且希望获得一些指导。

=INDEX(D_DATABASE!$AA$4:$BBT$260,
         MATCH(1,(AA$1=D_DATABASE!$N$4:$N$260)*
                 ($U4=D_DATABASE!$U$4:$U$260)*
                 (AA$3=D_DATABASE!$AA$3:$BBT$3),0))


 =SUMPRODUCT(COUNTIFS(AA$1,D_DATABASE!$N$4:$N$260,U4,
                       D_DATABASE!$U$4:$U$260,AA$3,
                       D_DATABASE!$AA$3:$BBT$3))

1 个答案:

答案 0 :(得分:0)

这里:

=INDEX(D_DATABASE!$AA$4:$BBT$260,
              MATCH(1,(AA$1=D_DATABASE!$N$4:$N$260)*
                      ($U4=D_DATABASE!$U$4:$U$260)*
                      (AA$3=D_DATABASE!$AA$3:$BBT$3),0))

...您的最后一个比较是面向其他两个行的vs.列,因此您可以尝试将其包装在TRANSPOSE中:

=INDEX(D_DATABASE!$AA$4:$BBT$260,
              MATCH(1,(AA$1=D_DATABASE!$N$4:$N$260)*
                      ($U4=D_DATABASE!$U$4:$U$260)*
                      TRANSPOSE((AA$3=D_DATABASE!$AA$3:$BBT$3)),0))

但是,最后一次比较所使用的范围也比前两个范围大得多,因此我不确定您打算如何处理。

在更多信息后进行编辑:您需要将最后一个按行搜索分隔到其自己的匹配中

=INDEX(D_DATABASE!$AA$4:$BBT$260,
       MATCH(1,(AA$1=D_DATABASE!$N$4:$N$260)*($U4=D_DATABASE!$U$4:$U$260),0),
       MATCH(AA$3,D_DATABASE!$AA$3:$BBT$3,0))