Excel-使用年份来自定义日期范围

时间:2016-05-18 23:50:02

标签: excel excel-formula

Picture of worksheet

我正在尝试开发细胞B2:G2的公式,该公式将查看单元格B1:G1中的会计年度,并根据单元格F8:f11中的开始日期和结束日期对B8:B31中的信息求和。我已经尝试了sumifs,sumproduct等,但还没有得到任何工作。我完全卡住了。有没有人对公式有任何建议或更好的方法来布置表格?正确计算时应出现的答案显示在单元格B2和C2中以供参考。

1 个答案:

答案 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))

此公式没有数组公式的限制,因此我们可以根据需要引用尽可能多的行。

![enter image description here