具有多个条件的跨多列的 COUNTIFS

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

一些数据:

   A     B     C     D     E
1  Tag1  Tag2  Tag3  Type  Value
2  foo   bar   baz   1     1
3  foo   bar   bar   1     2
4  foo   foo   baz   2     1
5  foo   bar   baz   1     1
6  foo   baz   baz   1     2
7  foo   bar   foo   3     1
8  baz   bar   baz   1     3
9  foo   bar   baz   1     1

计算 A、B 和 C 列中的所有“foo”:

=COUNTIFS($A:$C,"=foo")

计算 A 列中所有“foo”的数量,但有限制:

=COUNTIFS($A:$A,"=foo", $D:$D,"=1", $E:$E,"=2")

但是不能两者兼得:计算 A、B 和 C 列中的所有“foo”,但有限制:

=COUNTIFS($A:$C,"=foo", $D:$D,"=1", $E:$E,"=2")   # Err:502 (in LibreOffice Calc)

这确实有效:

=COUNTIFS($A:$A,"=foo", $D:$D,"=1", $E:$E,"=2") +
 COUNTIFS($B:$B,"=foo", $D:$D,"=1", $E:$E,"=2") +
 COUNTIFS($C:$C,"=foo", $D:$D,"=1", $E:$E,"=2")

然而,这显然是一个人为的示例,因此在我真正的电子表格中,该公式一团糟,难以维护。

如何做到这一点?

(我正在使用 LibreOffice-Calc,但 Excel 中的解决方案也可以。)

excel excel-formula libreoffice-calc
1个回答
0
投票

您还可以使用 SUMPRODUCT() 函数来实现此结果。

=SUMPRODUCT((A2:C9="foo")*(D2:D9=1)*(E2:E9=2))

输出 = 2.0

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