为什么 excel SUMIF 函数给出错误的数字?

Why does excel SUMIF function give wrong figure?

计算HP总和。但是尽管没有满足标准,我的公式还是提供了错误的数量!

我认为有必要解释一下为什么您的原始公式不起作用,因为它突出了函数 SUMIF.

的一个有趣特征

如我的一条评论所述,您将 range 参数传递给 CN_2021[[#All],[HP]:[Sum of ORDER_AMT]] 的函数,这是对整个 table(包括 headers).因此,您实际上是在 所有三列 中搜索来自 P14 的条目,而不仅仅是第一列。

但是,您还使用了 CN_2021[[#All],[Sum of ORDER_QTY]]sum_range 参数,这只是一列。有人可能认为构造应该 消除错误 ,因为你的 rangesum_range 参数的维度不相等(前者包含 3 列,后者只有 1).

它不出错的原因是,在这种情况下,Excel redimensions sum_range 是一个与 range.

的维度相等

因此,如果为了简化起见,我们将 Table 引用替换为其等效的工作表引用(假设 table 从 A3 开始),我们有

=SUMIF(CN_2021[[#All],[HP]:[Sum of ORDER_AMT]],P14,CN_2021[[#All],[Sum of ORDER_QTY]])

相当于

=SUMIF(A3:C19,P14,B3:B19)

应该错误,虽然single-column范围

B3:B19

被重新定义为与 range 一致的 three-column 范围,即

B3:D19

这意味着您正在有效地执行

=SUMIF(A3:C19,P14,B3:D19)

如果 D 列也被填充,这可能会产生潜在的后果:例如,在单元格 C14 中放置 3,在单元格 D14 中放置 1000。该公式现在将在总和中提取这额外的 1000。

奇怪的是,与 SUMIF 不同的是,SUMIFS 似乎对这种尺寸调整没有那么宽容:

=SUMIFS(B3:B19,A3:C19,P14)

错误。