如果相关单元格的值在范围内,则求和

问题描述 投票:0回答:1

我有一个 Calc 电子表格,如下:

  |  A  |  B  |  C  |  D  |  E
--------------------------------
1 |  0  |  4  |  5  |  0  |
2 |  5  |  6  |  9  |  8  |
3 |  4  |  9  |     |     |
4 |  9  |  3  |     |     |

我想在 E 中获取 B 中元素的总和,这些元素在 A 中对应的单元格具有 C 或 D 中包含的值。例如,E1 应该为 10(即 B1+B2),因为 A1 和 A2 值都存在于 C1 中:D1。同样,E2 应为 3(即 B4),因为只有 A4 在 C2:D2 中具有值。 我怎样才能获得这个?

libreoffice-calc
1个回答
0
投票

将以下公式粘贴到E1中并向下填充到E4以产生

10
3

=IF(C1<>"";SUMPRODUCT((A$1:A$4=C1)+(A$1:A$4=D1);B$1:B$4);"")

其工作原理是为每一行获取一个包含一个值的数组,该值是 true 或 false,具体取决于 A 中的每个值是否存在于该行的 C 或 D 中。如果为 false,则将该行中的所有内容乘以 0,从而有效地处理该行。如果为 true,则 B 中的值乘以 1。将所有非零结果相加。

最初我尝试使用

OR
,但是需要
+
,因为
OR
一次只能处理一行。

C1
检查避免尝试计算 C 为空的行。

© www.soinside.com 2019 - 2024. All rights reserved.