根据多个条件和不同大小的范围对特定列进行计数

Count specific columns based on multiple criteria and ranges of different sizes

我正在使用以下 table:

我需要一个可以在不同 sheet 上使用的公式,计算每个组取消了多少 classes:

GE COL INT MIX W     2
GE COL INT 1 W       0

决定 class 是否被取消的标准是在 class 的其中一列中输入 "C"(即 1 月 2 日,即第二个 class 一月份)。在示例 table 中,您可以看到 4 个人属于 2 个组,每组 2 个;如果我为同一组中的 2 个编写 C,我希望宏只计算 1 个已取消的 class,而不是同时计算两个 "C"。

将写入 "C" 的所有 space(月份列)是一个命名范围 = "Attendance" 并且所有组的名称也有一个命名范围= "Groups".

我正在使用以下简单公式:

=COUNTIFS(METRICS!F:F,H5,Attendance,"C")

METRICS!F:F 指的是 sheet ,其中 table 是我刚刚向您展示的,而 F 是级别所在的列。 H5 是另一个 sheet 中的单元格,我在其中比较组名以确保它们相同。 Attendance 是我要写的范围 "C"。

但是,我收到错误消息:

Array arguments to COUNTIFS are of different size.

这会计算所有 "C",而不仅仅是我需要的。

一个简单的解决方案是在组名后添加一列来计算缺席,然后对组名和缺席计数使用 UNIQUE() 以获得唯一列表。例如

或者,要在没有额外列的情况下执行此操作,首先使用 =UNIQUE(Groups) 创建一个唯一的组名列表。

然后添加名为 GroupAttendance 的命名范围,其中包括 GroupsAttendance 的范围。

最后,在组名称旁边的列中填写:

=COUNTIF(FILTER(UNIQUE(GroupAttendance), UNIQUE(Groups) = A2), "C")

例如