我正在尝试开发细胞B2:G2的公式,该公式将查看单元格B1:G1中的会计年度,并根据单元格F8:f11中的开始日期和结束日期对B8:B31中的信息求和。我已经尝试了sumifs,sumproduct等,但还没有得到任何工作。我完全卡住了。有没有人对公式有任何建议或更好的方法来布置表格?正确计算时应出现的答案显示在单元格B2和C2中以供参考。
答案 0 :(得分:1)
将其中任何一项放入B2并复制:
非CSE数组公式:
=SUMPRODUCT((DATE(B$1-1,7,1)<=$A$7:$A$31)*(DATE(B$1,6,30)>=$A$7:$A$31)*$B$7:$B$31)
或者:
=SUM(INDEX((DATE(B$1-1,7,1)<=$A$7:$A$31)*(DATE(B$1,6,30)>=$A$7:$A$31)*$B$7:$B$31,))
Ctrl-Shift-Enter Formula:
=SUM(IF((DATE(B$1-1,7,1)<=$A$7:$A$31)*(DATE(B$1,6,30)>=$A$7:$A$31),$B$7:$B$31))
退出编辑模式时,需要使用Ctrl-Shift-Enter确认。如果操作正确,Excel会将{}
放在公式周围。
以上是所有数组公式,使用数组公式时,计算是指数式的,因此引用不应该是完整列,也不应该超出数据集。
为了动态地这样做,我们使用And INDEX / MATCH来查找和设置数据为INDEX($A:$A,MATCH(1E+99,$A:$A))
的最后一行
所以要引用从A7到最后一个包含数据的数据的所有内容,我们将设置范围如下:$A$7:INDEX($A:$A,MATCH(1E+99,$A:$A))
在这种情况下,这将是$ A $ 7:$ A $ 31.
所以上面三个公式是这样的:
=SUMPRODUCT((DATE(B$1-1,7,1)<=$A$7:INDEX($A:$A,MATCH(1E+99,$A:$A)))*(DATE(B$1,6,30)>=$A$7:INDEX($A:$A,MATCH(1E+99,$A:$A)))*$B$7:INDEX($B:$B,MATCH(1E+99,$A:$A)))
和
=SUM(INDEX((DATE(B$1-1,7,1)<=$A$7:INDEX($A:$A,MATCH(1E+99,$A:$A)))*(DATE(B$1,6,30)>=$A$7:INDEX($A:$A,MATCH(1E+99,$A:$A)))*$B$7:INDEX($B:$B,MATCH(1E+99,$A:$A)),))
和
=SUM(IF((DATE(B$1-1,7,1)<=$A$7:INDEX($A:$A,MATCH(1E+99,$A:$A)))*(DATE(B$1,6,30)>=$A$7:INDEX($A:$A,MATCH(1E+99,$A:$A))),$B$7:INDEX($B:$B,MATCH(1E+99,$A:$A))))
最后一个使用Ctrl-Shift-Enter。
或者你可以简单地使用这个非数组公式,SUMIFS():
=SUMIFS($B$7:$B$1000000,$A$7:$A$1000000,">=" & DATE(B$1-1,7,1),$A$7:$A$1000000,"<=" & DATE(B$1,6,30))
此公式没有数组公式的限制,因此我们可以根据需要引用尽可能多的行。