使用COUNTIFS以及来自单元格引用的多个选项

时间:2017-03-29 01:30:32

标签: arrays excel excel-formula conditional countif

我在这个论坛中找到了与下面类似的公式,它的工作非常出色(谢谢!)但是我想知道是否"培训A"和#34;培训B"可以用单元格引用而不是特定的单词替换?原因是,在某个阶段,我们的培训要求可能会发生变化(例如,培训A可能已完成,培训C已引入),因此如果我们的用户可以简单地更新标题而不是需要更新的公式,那将是理想的。

所以,更具体地说,我希望的是"训练A"可以替换为对单元格C21的引用,以及"训练B"引用单元格J21。我在这里仅包括2x,但目前有8x培训标题将纳入最终公式。提前感谢您的任何帮助!

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

将其置于上下文中,有助于简化31个站点(报告单元格B4:B19中列出)中已完成培训的报告(%)。报告行21,55,89和8中有8个标题。 123(每行2列,C和J列)与数据选项卡中的培训模块相关;需要忽略数据中的其他模块。也许还有另一种解决方案?我想避免帮助表,由于某些原因,数组往往会大大减慢我们的电子表格,尽管如果数组是最干净的解决方案,我很乐意尝试。

此公式有效:     !!!=(COUNTIFS(数据$ E:$ E,报告B4,数据A:A,报告$ C $ 21数据$ F:$ F," 完整&# !!!! 34;)+ COUNTIFS(数据$ E:$ E,报告B4,数据A:A,报告$Ĵ$ 21数据$ F:$ F," 完整 &#34)+ COUNTIFS(数据$ E:$ E,报告B4,数据A:A,报告$ C $ 55数据$ F:!!!$ F," 完整&#34)+ COUNTIFS(数据$ E:!!$ E,报告B4,数据A:A,报告$Ĵ$ 55数据$ F:!$ F," 完整&#34)+ COUNTIFS(数据$ E:$ E,报告B4,数据A:A,报告$ C $ 89数据$ F:!!$ F," 完整&#34)+ COUNTIFS(数据$ E:!!$ E,报告B4,数据A:A,报告$Ĵ$ 89数据$ F:$ F," 完整&#34)+ COUNTIFS(数据$ E:!!!$ E,报告B4,数据A:A,报告$ C $ 123数据$ F:$ F,&# 34; 完整&#34)+ COUNTIFS(数据$ E:!!!$ E,报告B4,数据A:A,报告$Ĵ$ 123数据$ F:$ F, " 完整&#34))/(COUNTIFS(数据$ E:!!$ E,报告B4,数据A:A,报告$ C $ 21)+ COUNTIFS(数据!$ E:$ E,报告B4,数据A:!!A,报告$Ĵ$ 21)+ COUNTIFS(数据$ E:$ E,报告B4,数据A:!!! A,报告$ C $ 55) + COUNTIFS(数据$ E:$ E,报告B4,!数据:A,报告附加$ J $ 55)+ COUNTIFS(数据$ E:!$ E,报告B4,数据:!A,报告$ C $ 88)+ COUNTIFS(数据$ E:!$ E,报告B4,数据A:!A,报告$Ĵ89 $)+ COUNTIFS(数据$ E:!$ E,报告B4,数据A:!!A,报告$ C $ 123)+ COUNTIFS(数据$ E :$ E,报告B4,数据A:!!! A,报告$ $Ĵ123))

这也有效: !!= SUM(COUNTIFS(数据$ E:$ E,报告B4,数据$ F:$ F," 完整",数据A:A,{& #34; ABCD的安全",#34; ABCD政策 - 专业"," ABCD政策 - 运营"," COR - 员工管理 - 基本员工管理"," COR - 员工管理 - 高级员工管理"," ABCD集团 - 一般安全意识"}))/ SUM(COUNTIFS(数据!$ E: $ E,报告!B4,数据!A:A,{" ABCD安全"" ABCD政策 - 专业"," ABCD政策 - 运营"," COR - 员工管理 - 基本员工管理",#34; COR - 员工管理 - 高级员工管理"," ABCD集团 - 一般安全意识&# 34;}))

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

1 个答案:

答案 0 :(得分:0)

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

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

选项1

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

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

使用 Ctrl + Shift + Enter 后,它将显示为:

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

选项2

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

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

enter image description here

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

更新

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

enter image description here