使用SUMIFS在excel中提取YTD销售数据

时间:2016-05-17 21:18:06

标签: excel date sumifs

我正在寻找一种方法来为A,B,C列中包含以下内容的电子表格提取YTD数据。

我希望它能够拉动当年的当前月份并比较C列中的年初至今销售额。

我使用了= SUM(IF(年(A:A)= 2016,C:C,0))来获取全年数据,但只想要每年列出的每月当月。

YTD Sales Through May 2008
2009
2010
2011
2012
2013
2014
2015
2016

Jan-03  17  $86,625
Feb-03  17  $107,900
Mar-03  21  $103,400
Apr-03  17  $112,050
May-03  20  $75,145
Jun-03  26  $198,800
Jul-03  14  $80,695
Aug-03  19  $50,940
Sep-03  26  $152,380
Oct-03  23  $109,380
Nov-03  19  $113,875
Dec-03  21  $149,275
Jan-04  30  $113,110
Feb-04  17  $109,493
Mar-04  15  $69,690
Apr-04  25  $123,145
May-04  24  $136,685
Jun-04  30  $148,495
Jul-04  21  $138,990
Aug-04  29  $131,005
Sep-04  38  $165,790
Oct-04  43  $173,190
Nov-04  41  $253,915
Dec-04  39  $217,650

1 个答案:

答案 0 :(得分:0)

您可以使用此公式并将年份更改为您想要的内容:

=SUMPRODUCT((MONTH($A$1:$A$24)<=MONTH(TODAY()))*(YEAR($A$1:$A$24)=2016)*$C$1:$C$24)

如果您想在一个公式中使用年度YTD,您可以:

=SUMPRODUCT((MONTH($A$1:$A$24)<=MONTH(TODAY()))*(YEAR($A$1:$A$24)={2008,2009,2010,2011,2012,2013,2014,2015,2016})*$C$1:$C$24)

为了使公式更具动态性,因此它随着数据的大小而增长和收缩使用此;

=SUMPRODUCT((MONTH($A$2:INDEX(A:A,MATCH(1E+99,A:A)))<=MONTH(TODAY()))*(YEAR($A$2:INDEX(A:A,MATCH(1E+99,A:A)))={2004,2005})*$C$2:INDEX(C:C,MATCH(1E+99,A:A)))

确保引用$A$2$C$2引用数据的第一个单元格而不是标题行。

由于Array公式的计算是指数式的,我们需要将引用限制为仅数据集大小。所有INDEX(A:A,MATCH(1E+99,A:A))都完成了这一点。它将自动设置最后一行,其中A列中的数字为数据集的最后一行。

因此,随着数据集的增长或缩小,我们将不会进行任何不必要的迭代。

{2004,2005}更改为所需的任意年数。