首页 > 解决方案 > 如何根据单元格的值从 SUM 中排除一行?

问题描述

我有一个想要求和的范围,即 A2:M35。但是,如果“N”列中有数字 1,我想从总和中排除整行。因此,如果 N3 包含 1 我想从总和计算中排除范围 A3:M3。这可能吗?

更新:

我还应该包括 N 列中的 1 或 0 是一个标志,用于说明是否应排除该行(1 = 是,0 = 否)。但是,此值是通过检查该行中是否有任何值 =“排除”而得出的。因此,这里的额外复杂性似乎是,即使应该排除其中包含“排除”的行,总和计算也会显示“#VALUE”,因为它认为某些值的数据类型错误(即使它们不应包括在内)。

标签: excelexcel-formula

解决方案


简单的解决方案(带有辅助列)

如果可以的话,为了简单起见,我只想添加一个帮助列。

所以在单元格 O2 中:

=IF($N2=1,0,SUM($A2:$M2))

将其向下拖动到单元格 O35。然后你可以简单地:

=SUM($O$2:$O$35)

复杂解决方案(无辅助列)

如果您想避免让辅助列弄乱您的工作表,您可以使用 SUMPRODUCT 公式:

=SUMPRODUCT($A$2:$M$35,(LEN($A$2:$M$35)-LEN($A$2:$M$35))+NOT($N$2:$N$35))

这个怎么运作:

第一个范围 (A2:M35) 是要求和的数组(或在本例中为 Excel 单元格的范围)。

SUMPRODUCT 将获取该数组中的每个值并将其乘以我们提供的下一个数组中的每个对应值,然后将所有结果相加。

问题是第一个数组是一个表,横跨 13 个值,向下 34 个值。第二个数组(第 N 列)只有 1 个值。SUMPRODUCT 要求所有数组的大小相同。

为此,我们首先创建一个正确大小的数组:

(LEN(A2:M35)-LEN(A2:M35))

LEN 返回一个数组,其中包含提供给它的每个单元格中的字符数。如果我们把它从它自己身上拿走,我们就会得到一个正确大小的数组,用零填充。

然后,我们可以将较小数组(第 N 列)中的值添加到正确大小的数组中的零,这将用正确的值填充所有列。

+NOT(N2:N35))

NOT 存在是因为我们想要对具有零的行求和。它所做的只是交换 N 列中的零和一。因此,所有 1 都变为 0,反之亦然。

我希望你能听从我的解释。如果没有,请告诉我,我会详细说明。


推荐阅读