【问题标题】:Excel SUMIFS on single criteria with zero and non-zero values [duplicate]Excel SUMIFS 基于具有零值和非零值的单个标准 [重复]
【发布时间】:2017-03-29 21:10:41
【问题描述】:

我正在尝试找出一个 SUMIFS 公式,其中多条件范围可能包含也可能不包含零。以下表为例。

|Title    |Age|Color
|---------|---|------
|Odyssey  |5  |Brown
|Tempest  |2  |Yellow
|Iliad    |3  |
|Macbeth  |9  |Brown

我的目标是获得颜色为“棕色”或空白的 SUMIFS。我试过的是

=SUMIFS(B2:B5,C2:C5,{"Brown",""})

但是,这会返回一个值“14”,它只是棕色值的总和,而不是空白颜色行中的“3”的总和。如果我打开它并使用

=SUMIFS(B2:B5,C2:C5,{"","Brown"})

它返回“3”,它只是空白值,而不是布朗。似乎只考虑数组中的第一个值。

我做错了什么?取值可以为 NULL 或指定值的数组的正确公式是什么?

PS 我也试过ISBLANKISNULLNULL等。

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    您可以将其包装在 sumproduct 中,以便给出总和的总和

    =SUMPRODUCT(SUMIFS(B2:B5,C2:C5,{"Brown",""}))
    

    否则,它不会将大括号中的值识别为数组,而只会查看您放在第一位的值。

    【讨论】:

    • =SUM(SUMIFS(B2:B5,C2:C5,{"Brown",""})) 也一样。本质上它必须被包装在一个识别数组的函数中。
    【解决方案2】:

    弄清楚我做错了什么:

    需要将整个公式封装在一个 SUM() 函数中。

    =SUM(SUMIFS(B2:B5,C2:C5,{"Brown",""}))
    

    【讨论】:

    • 是的,它需要被包裹在一个识别数组的函数中。
    【解决方案3】:

    您也可以通过将两个常规 SUMIF 函数相加来实现,如下所示:
    =SUMIF(C2:C5,"Brown",B2:B5)+SUMIF(C2:C5,"",B2:B5)。这产生 (5 + 9) + (3) = 17。

    对于大型数据集,这是 allegedly faster 而不是 SUMPRODUCT

       A        B    C
    1|Title    |Age|Color
     |---------|---|------
    2|Odyssey  |5  |Brown
    3|Tempest  |2  |Yellow
    4|Iliad    |3  |
    5|Macbeth  |9  |Brown
    

    【讨论】:

    • 当然可以,但这其中的优雅在哪里? :) 不过,感谢您的意见。
    • @Dezzie 口味当然不同 :D 但我自己可能更喜欢这个解决方案。为什么?一个函数而不是两个函数看起来“优雅”,并且逻辑更简单,无需将函数包装在其他函数中。另请参阅我对速度的编辑。
    • @Dezzie 顺便说一句:我以前曾为这个问题挠过头,如果不复习,我似乎从来没有记住正确的语法。 “最优雅”的解决方案应该是直观的解决方案?我想很多人,包括我自己,都会尝试你首先尝试的公式..!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-15
    相关资源
    最近更新 更多