2种方式来总和月在Excel
很多时候,我们想按月计算一些值。就像,在一个特定月份内完成了多少销售。很好,这可以使用数据透视表轻松完成,但是如果您要生成动态报告,则可以使用SUMPRODUCT或SUMIFS公式按月求和。
让我们从SUMPRODUCT解决方案开始。
这是在Excel中按月求和的通用公式
=SUMPRODUCT(sum_range,--( TEXT(date_range,"MMM")=month_text))
Sum_range:这是您要按月求和的范围。
Date_range:这是您要查找几个月的日期范围。
Month_text:这是您要求和的文本格式的月份。
现在来看一个示例:
示例:Excel中按月求和的值这里,我们有一些与日期关联的值。这些日期是2019年1月,2月和3月。如您在上图中所看到的,所有日期都是2019年。现在我们只需要按E1:G1中的月份对E2:G2中的值求和即可。
现在根据月的总和将这个公式写在E2中:
如果要复制到相邻的单元格中,请使用“ link:/ excel-generals-relative-and-absolute-reference-in-excel [绝对引用]”或“ link:/ excel-range-name-all-about-与图像中的名称相同。
=SUMPRODUCT(B2:B9,--(TEXT(A2:A9,"MMM")=E1)))
这给了我们每个月的确切金额。
如何运作?
从内部开始,让我们看一下
link:/ excel-text-formulas-excel中的文本函数[TEXT]
(A2:A9,“ MMM”)
部分。此处TEXT函数从文本格式A2:A9的每个日期中提取月份到数组中。转换为= SUMPRODUCT(B2:B9,[。custom-span]#-#[。custom-span]#-#(\ {“ Jan”;“ Jan”;“ Feb”;“ Jan”;“ Feb “;” Mar“;” Jan“;” Feb“} = E1)))
接下来,TEXT(A2:A9,“ MMM”)= E1:这里将数组中的每个月与E1中的文本进行比较。由于E1包含“ Jan”,因此数组中的每个“ Jan”都将转换为TRUE,而其他则转换为FALSE。这会将公式转换为= SUMPRODUCT($ B $ 2:$ B $ 9,-\ {TRUE; TRUE; FALSE; TRUE; FALSE; FALSE; TRUE; FALSE})
下一个[.custom-span]#-#[。custom-span]#-#(TEXT(A2:A9,“ MMM”)= E1),将TRUE FALSE转换为二进制值1和0。该公式转换为= SUMPRODUCT ($ B $ 2:$ B $ 9,\ {1; 1; 0; 1; 0; 0; 1; 0})。
最后是SUMPRODUCT($ B $ 2:$ B $ 9,\ {1; 1; 0; 1; 0; 0; 1; 0}):SUMPRODUCT函数将$ B $ 2:$ B $ 9中的相应值乘以数组\ { 1; 1; 0; 1; 0; 0; 1; 0}并将它们加起来。因此,我们在E1中按值得出的总和为20052。
来自不同年份的IF月份的总和在上面的示例中,所有日期都来自同一年份。如果他们来自不同的年份怎么办?上面的公式将按月对值求和,与年份无关。例如,如果使用上述公式,则将添加2018年1月和2019年1月。在大多数情况下这是错误的。
发生这种情况是因为在上面的示例中,我们没有年份的任何标准。如果我们也添加年份标准,它将起作用。
用于在Excel中按月和年求和的通用公式
在这里,我们添加了另一个检查年份的标准。其他一切都一样。
=SUMPRODUCT(sum_range,--( TEXT(date_range,"MMM")=month_text),--( TEXT(date_range,"yyyy")=TEXT(year,0)))
让我们解决上面的示例,在单元格E1中编写此公式以获取2017年1月的总和。
在复制下面的单元格之前,请使用命名范围或绝对引用。
在图像中,我使用命名范围在相邻单元格中进行复制。
=SUMPRODUCT(B2:B9,--(TEXT(A2:A9,"MMM")=E1),--(TEXT(A2:A9,"yyyy")=TEXT(D2,0)))
现在我们也可以看到按月和按年计算的总价值。
如何运作?
公式的第一部分与前面的示例相同。让我们了解添加年份标准的其他部分。
[.custom-span]#-#[。custom-span]#-#(link:bbbb [TEXT](A2:A9,“ yyyy”)= TEXT(D2,0)):
TEXT(A2:A9,“ yyyy”)将文本格式为年的A2:A9中的日期转换为数组。 \ {“ 2018”;“ 2019”;“ 2017”;“ 2017”;“ 2019”;“ 2017”;“ 2019”;“ 2017”}。
多数情况下,年份以数字格式书写。为了将数字与文本进行比较,我使用TEXT(D2,0)转换了year int文本。接下来,我们将此文本年份与年份数组进行比较,以`link:/ excel-text-formulas-the-text-function-in-excel [excel]`(A2:A9,“ yyyy”)= TEXT(D2,0) 。
这将返回一个true-false \ {FALSE; FALSE; TRUE; TRUE; FALSE; TRUE; FALSE; TRUE}的数组。接下来,我们使用[.custom-span]#-#[。custom-span]#-#运算符将true false转换为数字。
这给我们\ {0; 0; 1; 1; 0; 1; 0; 1}。
因此,最终公式将转换为= SUMPRODUCT(B2:B9,\ {1; 1; 0; 1; 0; 0; 1; 0},\ {0; 0; 1; 1; 0; 1; 0 ; 1})。其中第一个数组是值。下一个是匹配的月份,第三个是年份。最后,我们得出的值之和为2160。 === *使用SUMIFS函数按月
求和===
通用公式
在这里,Sum_range:这是您要按月求和的范围。
Date_range:这是您要查找几个月的日期范围。
开始日期:这是您要汇总的开始日期。对于此示例,它将是给定月份的1号。
=SUMIFS(sum_range,date_range,”>=” & startdate, date_range,”<=” & EOMONTH(start_date,0))
示例:Excel中按月求和的值
在这里,我们有一些与日期相关的值。这些日期是2019年1月,2月和3月。我们只需要在那个月之前对这些值求和即可。现在,如果我们分别拥有数月和数年,这很容易。但事实并非如此。我们在这里不能使用任何帮助列。
因此,为了准备报告,我准备了一个包含月份和值总和的报告格式。在“月”列中,我实际上有一个月的开始日期。要仅查看月份,请选择开始日期,然后按CTRL + 1。
在自定义格式中,输入“ mmm”。
现在我们已经准备好数据。让我们按月对值求和。
将此公式写在E3中以按月求和。
使用`link:/ excel-generals-relative-and-absolute-reference-in-excel 或`link:/ excel-range-name-all-about-named-ranges-in-excel [命名范围]
,然后抄写公式。
因此,最终我们得到了结果。
那么,它是如何工作的?
=SUMIFS(B3:B10,A3:A10,">="&D3,A3:A10,"<="&EOMONTH(D3,0))
众所周知,SUMIFS函数可以求和多个条件下的值。
在上面的示例中,第一个条件是B3:B10中的所有值之和,其中A3:A10中的日期大于或等于D3中的日期。 D3包含1月1日。这也翻译。
仅当A3:A10中的日期小于或等于EOMONTH(D3,0)时,下一个条件才是总和。
链接:/ excel日期时间公式查找给定月份的最后一天[EOMONTH]
函数仅返回提供的月份的最后日期的序列号。
最后,公式也进行翻译。
=SUMIFS(B3:B10,A3:A10,">="& “1-jan-2019” ,A3:A10,"<="EOMONTH(D3,0))
因此,我们按月获得excel中的总和。
此方法的好处是您可以调整开始日期以求和。
如果您的日期与年份不同,则最好使用数据透视表。
数据透视表可以帮助您轻松地按年,季度和月格式分隔数据。
=SUMIFS(B3:B10,A3:A10,">=1-jan-2019” ,A3:A10,"<=31-jan-2019”)
是的,这就是您可以按月对值求和的方法。两种方式都有其各自的特色。选择您喜欢的方式。
如果您对本文有任何疑问,或者与Excel和VBA相关的其他任何疑问,将为您打开“评论”部分。
相关文章:
链接:/ excel-formula-and-function-excel-sumif-function [如何在Excel中使用SUMIF函数]`
link:/ tips-sumifs-with-dates-in-excel [Excel中带日期的SUMIFS]
链接:/ tips-excel-sumif-not-blank-cells [具有非空白单元格的SUMIF]`
链接:/ summing-excel-sumifs-function [如何在Excel中使用SUMIFS函数]`
热门文章
`link:/ keyboard-formula-shortcuts-50-excel-shortcuts来提高您的生产力[50 Excel Shortcut以提高您的生产力]“:更快地完成任务。
这50个快捷键将使您在Excel上的工作速度更快。
链接:/ formulas-and-functions-vlookup-function的介绍[如何在Excel中使用VLOOKUP函数]和床单。
链接:/ tips-countif-in-microsoft-excel [如何在Excel中使用COUNTIF函数]:使用此惊人的函数对带有条件的值进行计数。您无需过滤数据即可计算特定值。 Countif功能对于准备仪表板至关重要。
如何在Excel中使用SUMIF函数:这是另一个仪表板必需的功能。这可以帮助您汇总特定条件下的值。