我一直在办理考勤表,并试图自动制作月度报告。我已就同一问题询问my previous question,并完成了完成任务的想法。
但现在我卡在了一个地方。我有以下公式:
=COUNTIFS(C5:C27,">0", E5:E27,"G", F5:F27,"CAT1")
上述单元格“C”中的值来自以下公式(单元格“C”)
=IF((COUNTIF(G5:AK5,"p"))>0,1,0)
我必须添加这个额外的列(“C”)才能为我的拳头公式提供输入。我的问题是 - “我们可以合并COUNTIFS中的IF函数来一次性获得结果并消除使用额外的列(C列)”吗?
答案 0 :(得分:0)
要执行这些单元格参考杂技,您可能需要切换到数组公式。数组公式以对数方式计算计算周期,因此将参考范围缩小到最小值是一种好习惯。您在C列中使用的“帮助”列通常可以减少计算周期并使工作表更加“用户友好”。
COUNTIFS function要求被检查的范围不仅大小相同,而且形状相同。看看G5:AK5与E5:E35不同,即使它们含有相同数量的细胞¹。
在下面的示例数据中,您的公式在A1中并使用'辅助列'C.我的数组公式在A2中,并且不考虑C列,因为它包含了逻辑。
A2中的数组公式是:
=SUM(IF(E5:E27 = "G", IF(F5:F27 = "CAT1", SIGN(COUNTIFS(OFFSET($G$5, ROW($1:$23)-1, 1, 1, 31), $I2)))))
需要使用 Ctrl + Shift + Enter↵来最终确定数组公式。一旦正确进入第一个单元格,就可以像任何其他公式一样向下或向右填充或复制它们。
¹某些函数不仅接受但欢迎的单元格范围是相同数量的调用但是已转置。如果单元格范围相同,则偏移或错开范围也是一种选择。在困难的情况下,TRANSPOSE function可能会有所帮助。