一、按年求和 数据表格如下图,要求用函数求出各年份的金额 公式1:用SUMIFS多条件求和 这问题可以转化为一个多条件求和,比如:要求2017年的,那么就是对既大于2017年1月1日,又小于2017年12月31日的日期数据进行求和,因而,我们可以使用SUMIFS函数: =SUMIFS($C$2:$C$33,$B$2:$B$33,”>=2017/1/1″,$B$2:$B$33,”<=2017/12/31″) 此公式不能直接下拉填充,以计算出2018年、2019年的金额,我们可以用DATE函数来计算日期: =DATE(E2,1,1) 将其代入到前面的公式,完整的公式为: =SUMIFS($C$2:$C$33,$B$2:$B$33,”>=”&DATE(E2,1,1),$B$2:$B$33,”<=”&DATE(E2,12,31)) 公式2:用SUMPRODUCT进行数组运算 SUMPRODUCT函数是将数组进行相乘,然后求乘积的和,它可以进行数组运算,而不必按Ctrl+Shift+Enter,因而我们可以先计算出各单元格的年份是否为指定年份(如果是,其结果为true,相当于1,不是的话,其结果为FASLE,相当于0),然后将其与金额相乘,其乘积之和就是年份的金额之和。 公式为: =SUMPRODUCT((YEAR($B$2:$B$33)=E2)*$C$2:$C$33) 二、按季度求和 1、用SUMIFS函数 本题就是要求按季度和年度求和,因而也是一个多条件求和,可用SUMIFS,在前面SUMIFS多条件按年求和公式的基础上,修改一下求和条件就是了。一季度是计算1月1日到3月31日,二季度是计算4月1日到6月30日。。。。。 假设季度数是N,那么该季度起始月就是3*N-2,季度起始日用DATE函数 DATE(2018,3*N-2,1) 该季度截止月就是3*N,由于截止月最后一日不固定,有些是30,有些是31,不用简单的用DATE函数,还需套用计算月末最后一天的EOMONTH函数(End+Of+Month),因而其公式为: =SUMIFS($C$2:$C$33,$B$2:$B$33,”>=”&DATE(F$10,$E11*3-2,1),$B$2:$B$33,”<“&EOMONTH(DATE(F$10,$E11*3,1),0)) 2、用SUMPRODUCT函数 有一个比较碰巧的规律: 假设各月份为M,求2的M次方,其结果的字符数,刚好等于月份所在的季度数 因而,我们可以用LEN(2^MONTH($B$2:$B$33))来计算B列各月的季度数,用SUMPRODUCT来计算各季度的合计,其公式为: =SUMPRODUCT((LEN(2^MONTH($B$2:$B$33))=$E2)*(YEAR($B$2:$B$33)=F$1)*$C$2:$C$33) 三、按月求和 只要理解了前面的公式,按月求和就比较简单了,公式分别为: =SUMPRODUCT((MONTH($B$2:$B$14)=E2)*$C$2:$C$14) =SUMIFS($C$2:$C$14,$B$2:$B$14,”>=”&DATE(2017,E2,1),$B$2:$B$14,”<“&DATE(2017,E2+1,1)) =SUMIFS($C$2:$C$14,$B$2:$B$14,”>=”&DATE(2017,E2,1),$B$2:$B$14,”<=”&EOMONTH(DATE(2017,E2,1),0)) 四、按旬求和 上旬1-10日: =SUMIFS($C$2:$C$46,$B$2:$B$46,”>=”&DATE(2018,$F2,1),$B$2:$B$46,”<“&DATE(2018,$F2,11)) 中旬11-20日: =SUMIFS($C$2:$C$46,$B$2:$B$46,”>=”&DATE(2018,$F2,11),$B$2:$B$46,”<“&DATE(2018,$F2,21)) 下旬:21-月末 =SUMIFS($C$2:$C$46,$B$2:$B$46,”>”&DATE(2018,$F2,20),$B$2:$B$46,”<=”&EOMONTH(DATE(2018,$F2,1),0)) 读者QQ群的读友031 – 硬币(37125126)…