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

Using SUMIFS to pull YTD sales data in excel

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

我希望它能够提取当年的当前月份并从中比较 C 列中的 YTD 销售额。

我已经使用 =SUM(IF(YEAR(A:A)=2016,C:C,0)) 来获取全年数据,但只想要 jan - 列出的每一年的当前月份。

截至 5 月的 YTD 销售额 2008<br> 2009<br> 2010<br> 2011<br> 2012<br> 2013<br> 2014<br> 2015<br> 2016

Jan-03  17  ,625
Feb-03  17  7,900
Mar-03  21  3,400
Apr-03  17  2,050
May-03  20  ,145
Jun-03  26  8,800
Jul-03  14  ,695
Aug-03  19  ,940
Sep-03  26  2,380
Oct-03  23  9,380
Nov-03  19  3,875
Dec-03  21  9,275
Jan-04  30  3,110
Feb-04  17  9,493
Mar-04  15  ,690
Apr-04  25  3,145
May-04  24  6,685
Jun-04  30  8,495
Jul-04  21  8,990
Aug-04  29  1,005
Sep-04  38  5,790
Oct-04  43  3,190
Nov-04  41  3,915
Dec-04  39  7,650

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

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

如果您希望在一个公式中包含 YTD 的所有年份,您可以:

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

为了使公式更具动态性,使其随着数据的大小增长和收缩,使用这个;

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

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

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

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

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