Excel 如何从基于单元格的求和中排除一行';s值多少?

Excel 如何从基于单元格的求和中排除一行';s值多少?,excel,excel-formula,Excel,Excel Formula,我有一个求和的范围,是A2:M35。但是,如果列“N”中有数字1,我想从总和中排除整行。因此,如果N3包含1,我想从求和计算中排除范围A3:M3。这可能吗 更新: 我还应该包括N列中的1或0是一个标志,用于说明是否应排除此行(1=是,0=否)。但是,此值是通过检查该行中是否有任何值=“已排除”而得出的。因此,这里的额外复杂性似乎是,即使应该排除其中带有“excluded”的行,求和计算也会显示“#VALUE”,因为它认为某些值属于错误的数据类型(即使它们不应该包括在内)。简单解决方案(带辅助列)

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

更新:

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

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

如果可以,为了简单起见,我只想添加一个helper列

所以在细胞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))
不存在,因为我们要对具有零的行求和。它所做的就是交换N列中的0和1。因此,所有1都变成0,反之亦然


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

是的,这样做实际上更有意义。我不必要地把事情复杂化了。通常是这样。。。但有时,无论出于何种原因,您都无法添加帮助器列,您必须求助于数组公式之类的方法。。。bleurgh.这通常取决于第1天的数据布局,当然,如果数据是从其他地方“按原样”来的,并且您无法更改它…因此,您可以使用sumproduct(),因为第N列中的值为1表示是,0表示否,那么乘以1或0就会得到您想要的结果。