首页 > 解决方案 > Calc中带有空白单元格的范围的条件总和

问题描述

我在电子表格中有以下数据:

----------------------
|Event |Value1|Value2|
|AAA   |1     |1     |
|BBB   |1     |3     |
|BBB   |      |2     |
|AAA   |3     |      |
----------------------

我希望计算 和 中所有数字的总和Value1Value2所以我有一个输出:

--------------
|Type  |Total|
|AAA   |5    |
|BBB   |6    |
--------------

为此,我需要在Total. 但是,当存在空白单元格时,我尝试过的公式不起作用。如果我在每个空白单元格中放置一个 0,我会得到想要的结果,但是我的数据集比提供的示例要大得多,并且有那么多单元格为 0 会降低可读性。

我试过的公式如下所示。假设Event为A1,Type则为A10。

=SUMIFS(B2:C5,A2:A5,A11)

现在,如果每个空白单元格都包含一个零,那么上面显示的输出就是我用这个公式看到的。Event如果A2:A5 中的值与字符串 AAA 的 A11 匹配,则该公式将 B2:C5 范围内的每个值相加,输出总数为 5。

所以问题是,我怎样才能忽略空白单元格,而不在其中输入 0?我曾考虑过使用N()or ISBLANK(),但这些都不适用于范围。只有单个细胞。

标签: openoffice-calc

解决方案


即使所有值都是数字,也不清楚哪个Calc版本可以工作。根据定义,总和范围和标准范围必须具有相同的大小。但在这里它们的大小不同。=SUMIFS(B2:C5,A2:A5,A11)B2:C5

在此处输入图像描述

中的公式B11

=SUMPRODUCT(($A$2:$A$5=$A11)*ISNUMBER($B$2:$C$5),($B$2:$C$5))

应该可以工作,并且应该与所有电子表格应用程序最兼容。

这个怎么运作:

($A$2:$A$5=$A11)获取一个 1 列 x 4 行的矩阵,{TRUE;FALSE;FALSE;TRUE}其中的值是否$A$2:$A$5等于$A11。乘以 with ISNUMBER($B$2:$C$5),它是一个 2 列 x 4 行的矩阵,{TRUE,TRUE;TRUE,TRUE;FALSE,TRUE;TRUE,FALSE}表示 in 的值是否$B$2:$C$5为数字,得到一个 2 列 x 4 行的矩阵,{1,1;0,0;0,0;1,0}判断 in 的值是否$A$2:$A$5等于$A11AND 的值$B$2:$C$5是否为数字。然后SUMPRODUCT将这两个数组{1,1;0,0;0,0;1,0}$B$2:$C$5=相加1*B2 + 1*C2 + 0*B3 + 0*C3 + 0*B4 + 0*D4 + 1*B5 + 0*C5


推荐阅读