如何根据单元格的值从SUM中排除一行?

时间:2018-09-05 10:32:19

标签: excel excel-formula

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

更新:

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

1 个答案:

答案 0 :(得分:0)

简单解决方案(带有帮助器列)

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

所以在单元格O2中:

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

将其拖动到单元格O35。 然后,您可以简单地:

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

COMPLEX SOLUTION(无帮助列)

如果您希望避免使助手列变得混乱,可以使用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))

之所以没有,是因为我们要对具有零的行求和。它所做的就是交换N列中的零和一。因此,所有1变为0,反之亦然。

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