Excel - sumifs 动态数组文字

Excel - sumifs dynamic array literal

=SUM(SUMIFS('Output'!$H:$H,'Output'!$C:$C,{"*PLoan","Deficit Loan"},'Output'!$G:$G,X97:AC97))

我有上面的数组公式。 X97:AC97 是我的数组文字所在的位置,此数组文字中的值以其他一些参数为条件(假设满足条件,则值为 a、b、c、d、e)。因为这些值是有条件的,所以它可能显示为“”“”“”e“”。因此在 sumifs 数组公式中,它将数组文字作为值 {"a","","","","e",""},这会导致错误。如何使数组为 {"a","e"}?

edit:经过大量努力,我意识到 sumifs 可能不是正确的方法,因为它需要对齐。例如,当 X97:AC97 = (0,1,0,0,0,0) 时,{PLoan, Deficit Loan} 可能满足 (1,0) 条件。我确实想要那个数字的总和,但由于不匹配,它不会求和。

我得到了下面的工作。如果有人能想出一种方法将通配符作为我的字符串搜索的一部分,请告诉我...

=SUMPRODUCT(IFERROR(ISNUMBER(MATCH('Output'!$G:$G,$X:$AC,0)*MATCH('Output'!$C:$C,{"PLoan","Operating Deficit Loan"},0))*('Output'!$H:$H),0))

COUNTIF(S)/SUMIF(S) 不一定是 "require alignment" 的标准被通过。这完全取决于你想算什么。

如果您需要一个包含两组标准的所有组合的计数,那么包含这些标准的两个数组正交就足够了。

目前,您传递的两个条件数组都是相同的向量类型,即行向量,因为:

X97:AC97

显然是一个行(水平)向量,也是:

{"*PLoan","Deficit Loan"}

因为对于 Excel 的英语版本,逗号和分号分别代表行(水平)和列(垂直)数组常量中的分隔符。

因此,在您的情况下,您只需要转置这两个数组之一,即:

=SUM(SUMIFS(Output!$H:$H,Output!$C:$C,{"*PLoan";"Deficit Loan"},Output!$G:$G,X97:AC97))

(我们也可以转置另一个,即:

=SUM(SUMIFS(Output!$H:$H,Output!$C:$C,{"*PLoan","Deficit Loan"},Output!$G:$G,TRANSPOSE(X97:AC97)))

或者将 X97:AC97 中的条目移动到其他垂直范围。)

有关详细信息,请参阅 here

此致