将 COUNTIFS 与单元格引用中的多个选项一起使用

Using COUNTIFS with multiple options from cell references

我在这个论坛上找到了一个与下面类似的公式,它工作得很好(谢谢!)但我想知道 "Training A" 和 "Training B" 是否可以用单元格引用代替而不是具体的话?原因是,在跟踪的某个阶段,我们的培训要求可能会发生变化(例如,可能会完成培训 A 并引入培训 C),因此如果我们的用户可以简单地更新标题而不是需要更新的公式,那将是理想的。

因此,更具体地说,我希望可以将 "Training A" 替换为对单元格 C21 的引用,将 "Training B" 替换为对单元格 [=12] 的引用=].我在这里只包含 2x,但目前有 8x 培训标题将纳入最终公式。在此先感谢您的帮助!

=SUM(COUNTIFS(A:A,{"Training A","Training B"}))

结合上下文,这将有助于简化我们 31 个站点(列在报告单元 B4:B19 中)每个站点的已完成培训 (%) 的报告。报告第 21、55、89 和 123 行(每行 2 个,C 和 J 列)中的 8 个标题与“数据”选项卡中的培训模块相关;需要忽略数据中的其他模块。也许还有另一种解决方案?我想避免使用辅助表,而且出于某种原因,数组往往会大大降低我们的电子表格速度,尽管我很乐意尝试数组是否是最干净的解决方案。

这个公式有效: =(COUNTIFS(数据!$E:$E,报告!B4,数据!A:A,报告!$C$21,数据!$F:$F,“完成”) +COUNTIFS(数据!$E:$E,报告!B4,数据!A:A,报告!$J$21,数据!$F:$F,"完成")+ COUNTIFS(数据!$E:$E,报告!B4,数据!A:A,报告!$C$55,数据!$F:$F,“完成”)+COUNTIFS (数据!$E:$E,报告!B4,数据!A:A,报告!$J$55,数据!$F:$F,"complete")+COUNTIFS(数据!$E:$E,报告!B4,数据!A:A,报告!$C$89,数据!$F:$F,"complete")+COUNTIFS(数据!$E:$E,Reporting!B4,Data!A:A,Reporting!$J$89,Data!$F:$F,"complete")+COUNTIFS(Data! $E:$E,Reporting!B4,Data!A:A,Reporting!$C$123,Data!$F:$F,"complete")+COUNTIFS(Data!$ E:$E,Reporting!B4,Data!A:A,Reporting!$J$123,Data!$F:$F,"complete"))/(COUNTIFS(数据! $E:$E,报告!B4,数据!A:A,报告!$C$21)+COUNTIFS(数据!$E:$E,报告!B4,数据!A:A,报告!$J$21)+ COUNTIFS(数据!$E:$E,报告!B4,数据!A:A,报告!$C$55)+ COUNTIFS(数据!$E:$E,报告!B4,数据!A:A,报告!$ J$55)+COUNTIFS(数据! $E:$E,报告!B4,数据!A:A,报告!$C$89)+COUNTIFS(数据!$E:$E,报告!B4,数据!A:A,报告!$J$89)+ COUNTIFS(数据!$E:$E,报告!B4,数据!A:A,报告!$C$123)+ COUNTIFS(数据!$E:$E,报告!B4,数据!A:A,报告!$ 123 日元))

这也有效: =SUM(COUNTIFS(数据!$E:$E,报告!B4,数据!$F:$F,"complete",Data!A:A,{"ABCD","ABCD Policies - Professional","ABCD Policies - Operational","COR - Staff Management - Basic Staff Management","COR - Staff Management - Advanced Staff Management","ABCD Group - General Safety Awareness"}))/SUM(COUNTIFS(数据!$E:$E,Reporting!B4,Data!A:A,{"ABCD 安全","ABCD Policies - Professional","ABCD Policies - Operational","COR - Staff Management - Basic Staff Management","COR - Staff Management - Advanced Staff Management","ABCD Group - General Safety Awareness"}))

如果上面的模块名称可以用单元格引用替换,那将是理想的: =SUM(COUNTIFS(数据!$E:$E,报告!B4,数据!$F:$F,"完成",数据!A:A,{C21,J21, C55,J55,C89,J89,C123,J123}))/SUM(COUNTIFS(数据!$E:$E,报告!B4,数据!A:A,{C21,J21,C55,J55,C89,J89, C123,J123}))

对于多种可能性(例如训练 A-H),那么您有两个选择。

假设在范围 A2:A17 中有一个列表,并且在范围 C2:C5 中有一些要查找的项目。例如:

选项 1

使用数组公式 - 你需要输入它然后Ctrl+Shift+Enter

=SUM(COUNTIFS(A2:A17,C2:C5))

使用Ctrl+Shift+Enter后会显示为:

{=SUM(COUNTIFS(A2:A17,C2:C5))}

选项 2

另一个避免使用数组公式的选项是使用 SUMPRODUCT 并将 COUNTIFS 给出的数组乘以 1s 的数组,该数组由存在公式的输入:

=SUMPRODUCT(COUNTIFS(A2:A17,C2:C5),--(C2:C5<>""))

所以这是数组公式和稍微复杂的非数组公式(仍然适用于数组)之间的权衡。

更新

如果输入位于不连续的单元格范围内,我会建议创建一个连续的过滤器范围并将这些单元格链接到工作簿周围的各种其他输入。这两个选项都适用于具有空白的过滤器范围,或者数字或输入不是 COUNTIF:

的目标列表中的值