使用 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}
更改为所需的任意年数。
我正在寻找一种方法来为 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}
更改为所需的任意年数。