Calc

时间:2019-01-04 12:21:53

标签: openoffice-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)

现在,如果每个空白单元格都包含零,那么上面显示的输出就是我在此公式中看到的结果。如果来自A2:A5的Event个值与字符串AAA匹配的A11相匹配,则该公式将对B2:C5范围内的每个值求和,以输出总计5。

问题是,如何在不输入0的情况下忽略空白单元格?我曾考虑过使用N()ISBLANK(),但这些方法都不适用于范围。仅单个单元格。

1 个答案:

答案 0 :(得分:1)

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

但是

enter image description here

B11中的公式:

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

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

工作原理:

($A$2:$A$5=$A11)得到{TRUE;FALSE;FALSE;TRUE}中的值是否等于$A$2:$A$5的{​​{1}}的1列x 4行矩阵。乘以$A11,即ISNUMBER($B$2:$C$5)中的值是否为数字的{TRUE,TRUE;TRUE,TRUE;FALSE,TRUE;TRUE,FALSE}的2列x 4行矩阵,得到{{1 }} $B$2:$C$5中的值是否等于{1,1;0,0;0,0;1,0}并且$A$2:$A$5中的值是数字。然后$A11得出两个数组$B$2:$C$5SUMPRODUCT = {1,1;0,0;0,0;1,0}的总和。