带 Or 的计数

Countifs with Or

我有这样的专栏

+------+-------------------------+-------------------------+
| Year |         Status1         |         Status2         |
+------+-------------------------+-------------------------+
|    1 | [Blank]                 | Confirmed on YYYY.MM.DD |
|    2 | Confirmed on YYYY.MM.DD | done on YYYY.MM.DD      |
|    1 | Confirmed on YYYY.MM.DD | Confirmed on YYYY.MM.DD |
|    2 | Attended on YYYY.MM.DD  | Confirmed on YYYY.MM.DD |
|    1 | Attended on YYYY.MM.DD  | done on YYYY.MM.DD      |
|    1 | done on YYYY.MM.DD      | done on YYYY.MM.DD      |
|    2 | done on YYYY.MM.DD      | done on YYYY.MM.DD      |
|    1 | Ready on YYYY.MM.DD     | Confirmed on YYYY.MM.DD |
|    2 | Ready on YYYY.MM.DD     | Confirmed on YYYY.MM.DD |
+------+-------------------------+-------------------------+

我需要计算 Status1 和 Status2 都包含 "Attended"、"Done" 或 "Ready".

的总行数

预期结果是

+------+-----+
| Year | Sum |
+------+-----+
|    1 |   2 |
|    2 |   1 |
+------+-----+

我尝试了 COUNTIFS,但由于没有 OR 运算符,如果我暴力破解,则计算第 1 年总和的公式变为

 =
countifs(A:A, "=1",B:B, "=*attended*", C:C, "=*attended*")+
countifs(A:A, "=1",B:B, "=*attended*", C:C, "=*done*")+
countifs(A:A, "=1",B:B, "=*attended*", C:C, "=*ready*")+
countifs(A:A, "=1",B:B, "=*done*", C:C, "=*attended*")+
..........

将有 9 个案例,如果以后我有另一个新案例,公式将非常长。 那么,有什么简单的方法可以解决我的问题吗?

我读了这个帖子 Google Spreadsheets: How do I combine COUNTIF with OR 但我不确定如何将 DCOUNT 或 COUNTIFS 应用于这种情况。

非常感谢。

您可能会通过使用查询获得您期望的输出,例如

=query(ArrayFormula({A2:A,A2:A,regexmatch(B2:C, "Attended|done|Ready")} ), "select Col1, Count(Col2) where Col3 = true and Col4 = true group by Col1 label Count(Col2)''")

Example sheet

说明

  1. 我们创建一个(虚拟)数组,包含
    • Col A 在 Col 1 中的值并在该虚拟的 Col 2 中重复 table。
    • 从正则表达式中 return 得到的布尔值(真和假)匹配 'Attended'、'done' 和 'Ready' 范围内的值 B2:C
    • 这给我们留下了一个有 4 列的 table。
  2. 然后我们围绕它包裹一个 query() ,只有 returns col 3 和 col 4 都有 'true' 的行(意味着有一个肯定的匹配)。在这些行中,我们只 return 第一个列(带有年份),并计算行数(每年)。

希望对您有所帮助?