【问题标题】:Excel INDEX & MATCH using multiple criteriaExcel INDEX & MATCH 使用多个条件
【发布时间】:2018-07-26 21:25:57
【问题描述】:

我觉得我一直在研究这个问题太久了,我的公式缺少一些明显的东西。

我有一个如下所示的电子表格:

我需要将单元格 A2 和 B2 中的值组合与 D 列和 F - I 列中的值相匹配,并使用 E 列中的适当值填充单元格 C2。

示例: A2 中的用户 0bddb97e 被分配了 B2 中的 REF 1102。用户 0bddb97e 在 D2 和 D7 中匹配,但 REF # 1102 未出现在第 7 行。

结果应该是单元格 C2 填充了位置值 P1,因为 A2 和 B2 中的 USER ID 和 REF 的组合与 D2 中的用户 ID 和 F2 中的 REF 匹配 - 因此使用来自 E1 的单元格值

不幸的是,我使用的两个 INDEX/MATCH 公式返回 #N/A 和 #VALUE 错误

公式 1:返回 #N/A

=INDEX($E$2:$E$3,MATCH($A2,$D$2:$D$3,0),MATCH($B2,$F$2:$I$3,0))

公式 2:返回 #Value

=INDEX(E2:E3,MATCH(A2&B2,D2:D3&F2:I3,0))

非常感谢任何帮助。

【问题讨论】:

    标签: excel excel-formula formula excel-2016 excel-match


    【解决方案1】:

    仅匹配将查看一列或一行。你需要别的东西。

    =INDEX($E:$E,AGGREGATE(15,6,ROW($F$2:$I$8)/(($D$2:$D$8 = $A2)*($F$2:$I$8=$B2)),1))
    

    【讨论】:

      【解决方案2】:

      我可以想到一个解决方法,您可以使用“连接”函数连接列,然后使用简单的 Vlookup 来获取值。

      【讨论】:

        【解决方案3】:

        当您进行索引匹配匹配时,索引数组需要包含整个数据范围。而是尝试

        =INDEX($D$2:$I$3,MATCH($A2,$D$2:$D$3,0),MATCH($B2,$F$2:$I$2,0))
        

        第一个匹配查找D列的信息,第二个查找第2行的信息。但是索引需要引用整个范围。

        【讨论】:

        • 这不会返回想要的结果。
        【解决方案4】:

        作为数组公式输入:

        =INDEX($E$2:$E$8,MAX(($F$2:$I$8=B2)*($D$2:$D$8=A2)*(ROW($D$2:$D$8)-ROW($D$1))))

        【讨论】:

        • 我从 INDEX 中学到的一件事是在 INDEX 中使用完整列引用并没有害处,它允许删除更正行 -ROW($D$1) 所以:=INDEX($E:$E,MAX(($F$2:$I$8=B2)*($D$2:$D$8=A2)*(ROW($D$2:$D$8)))) 不会变慢或消耗更多资源比更长的公式。但是,如果数据在下面的 E 列中并且它发生变化,它将重新计算,但通常没关系。
        • @ScottCraner 有道理。
        猜你喜欢
        • 2019-10-09
        • 2017-01-07
        • 1970-01-01
        • 1970-01-01
        • 2015-09-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-07
        • 1970-01-01
        相关资源
        最近更新 更多