总和,Sumifs或Sumproduct,不知道哪一个使用?

我有下面的表格:

JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC A 10 20 30 40 50 60 70 80 90 100 110 120 B 20 40 60 80 100 120 140 160 180 200 220 240 C 30 60 90 120 150 180 210 240 270 300 330 360 

我正在试图从年初到今月的A的总和。 我们以这个月为例,我想要从1月到9月的A的总和。

这个公式将返回JAN到当前月份的值的总和。 我假设表格在文档的顶部,并在左边。

A值:

 =SUM(INDIRECT("B2:"&ADDRESS(2,MONTH(TODAY())+1,4))) 

B值:

 =SUM(INDIRECT("B3:"&ADDRESS(3,MONTH(TODAY())+1,4))) 

C值:

 =SUM(INDIRECT("B4:"&ADDRESS(4,MONTH(TODAY())+1,4))) 

* 编辑 *

为了使它更具dynamic性,假设你在单元格“H8”中的值为“A”,并且想要返回到当前月份的总和,可以这样做:

 =SUM(INDIRECT("B"&MATCH(H8,A1:A4,0)&":"&ADDRESS(MATCH(H8,A1:A4,0),MONTH(TODAY())+1,4))) 

INDIRECT()是你的朋友…

假设您的表格在表格的顶部,并且A4包含您要停止的月份…

 =SUM(INDIRECT("B2:"&A4&"2")) 

如果要在公式中添加dynamic扭曲,请将单元格命名为MONTHVALUES,然后可以使用ROW(monthvalues)COLUMN(monthvalues)

而当前月份列将变为COLUMN(月份)+ MONTH(NOW()) – 1

如果你命名一个包含预期行的单元格

因此您可以参考所需行的1月到月份的范围

 =SUM(INDIRECT(ADDRESS(ROW(monthvalues)+desiredrow-1;COLUMN(monthvalues))&":"&ADDRESS(ROW(monthvalues)+desiredrow-1;COLUMN(monthvalues)+MONTH(NOW())))) 

另一种方法是使用INDEX和MATCH。

 =SUM(B2:INDEX(B2:M2,1,MATCH(UPPER(TEXT(TODAY(),"MMM")),B1:M1,FALSE))) 

有关更多信息,请参阅http://datapigtechnologies.com/blog/index.php/using-indexmatch-as-a-cell-reference/