需要四个标准索引匹配 - 三个半成品,我添加了第四个标准并且它打破了

Posted

技术标签:

【中文标题】需要四个标准索引匹配 - 三个半成品,我添加了第四个标准并且它打破了【英文标题】:Need a Four Criteria Index Match - Three Semi-Works, I add the Fourth Criteria and it Breaks 【发布时间】:2021-12-26 19:26:27 【问题描述】:

我有一张在各个列中包含所有四个条件的工作表,而我每天放入新工作表的报告以一种可怕的方式交错排列(不是我设计的)。出于安全原因,我无法提供实际数据,但我附上了我正在处理的内容的sample(为简单起见合并到一张纸上)。我需要匹配 A:D 列中每一行中的所有四个条件,然后从 X 列返回年度金额,直接与 O 列中的匹配 - 标签类型不必匹配,因为那些 # 的保持不变,当我已经在四个标准中挣扎时,这将增加第五个标准。问题是标准可以在具有不同其他标准的不同列下重复(例如,参见 O13 与 O25)。

记住的目标是,对于 F4,我需要它返回 X15,因为这是 #1 基金的未发行金额,其中 G1 = 1C、G2 = AB 和 G3 = A1。

我非常不正确但最有效的公式是这个,它基本上只是 O 列的一个花哨的 V-Lookup。

=INDEX($I$1:$X$27,
IF(MATCH($A2,J:J,0)*MATCH($B2,M:M,0)*MATCH($C2,N:N,0)*MATCH($D2,O:O,0),
(MATCH($D2,O:O,0))),
MATCH($X$12,$I$12:$X$12,0))

编辑添加:报表中的下拉是动态的,条件的位置可以在列中向上或向下变化。

【问题讨论】:

最好的方法是用正确的数据填充空白单元格,然后您可以使用SUMIFS返回正确的数字。 谢谢斯科特。报告的下降比我在这里的小例子要长得多,所以我希望有一种方法可以绕过手动输入数据。事实上,我们的系统生成的报告在数据方面非常不友好,无论我是否愿意,我都可能手动输入内容。 有很多代码示例可以用上面的值填充空单元格。您可以在导入后运行它以规范化数据。那么在数据上使用公式会更容易。 从您的数据中创建一个表格并使用 power query >> transform >> 填写前几列。然后更容易参考。否则你可以使用类似=INDEX(X:X,MATCH(1,(A2=J:J)*(B2=M:M)(C2,N:N)*(D2=O:O),0)+SEQUENCE(3,,0)) 【参考方案1】:

要进行多值 INDEX/MATCH,请利用 TRUEFALSE 可以被视为 10 的事实,并反转 MATCH 以找到值 1

因此,要将值 A2、B2、C2 和 D2 与列 J、M、N 和 O 匹配,您可以使用以下命令:

=INDEX($X:$X, MATCH(1, ($A2=$J:$J)*($B2=$M:$M)*($C2=$N:$N)*($D2=$O:$O), 0))

但是,这在这种情况下不起作用,因为在单元格 M14:P15、M17:P18、M20:P21、M23:P24 和 M26:P27 中没有值 - 所以@987654327 没有任何值@to…好吧,匹配。

而且,由于您返回的是数值 - 没有重复的行 - 而不是文本值,您不妨只使用 SUMIFS 而不是多索引/匹配,一次已经修好了桌子:

=SUMIFS($X:$X, $J:$J,$A2, $M:$M,$B2, $N:$N,$C2, $O:$O,$D2)

(当然,如果数据看起来像那样,因为它在数据透视表中,您可以使用GETPIVOTDATA 函数。如果您要从数据透视表中复制/粘贴数据,只需执行到“设计”选项卡,然后是“报表布局”和“重复所有项目标签”,然后再复制/粘贴表格!)

【讨论】:

以上是关于需要四个标准索引匹配 - 三个半成品,我添加了第四个标准并且它打破了的主要内容,如果未能解决你的问题,请参考以下文章

最小编辑距离dp

Java进程挂起并继续

逐对序列分析-查找唯一组合的索引

高级套接字函数

TableView - 不能删除多个单元格

已知平行四边形的三个点求第四个点