excel自动求和_瞬间搞定一月数据汇总!这个Excel求和公式太牛了

997976a03d875e957568015c37075fa3.png

小编曾经发过利用sum进行多表求和的文章,

【例】如下图所示,需要在汇总表中统计1~30日的各个商品销量合计(日报表和汇总表格式、位置完全一样)

552cd0925f04f72d6c0f3db506bbd680.png

在汇总表B2中输入公式:

=sum('*'!b2)

输入后会自动替换为多表引用方式

=SUM('1日:30日 '!B2)

有同学提问:如果各个表中商品的位置(所在行数)不一样,该怎么求和?今天要分享一个更强大的支持行数不同的求和公式。

分析及公式设置过程:

如果对单个表(比如1日)进行对A商品进行求和,可以直接用sumif函数搞定:

1日表

887630ca682b4cb84a684c89993f83c0.png

在汇总表中设置求和公式:

=SUMIF('1日'!A:A,A2,'1日'!B:B)

e4f39b276c06da730f78093c8f69696a.png

依此类推,如果对30天求和,公式应为:

=SUMIF('1日'!A:A,A2,'1日'!B:B)+SUMIF('2日'!A:A,A2,'2日'!B:B)

+.......+SUMIF('30日'!A:A,A2,'30日'!B:B)

这公式也太长了吧......

细心的同学会发现,公式虽然,但还是有规律的:对各个表的求和除了表名外,其他公式部分都相同。

利用这个特点,我们可以用row函数自动生成对1~30天的引用。

=Row(1:30) 的结果为

{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30}

为证明这一点,可以在单元格中输入公式后,选中row(1:30)按F9键

34d6d25483896fbe4f1ff3abf7f3a077.gif

连接成对各个表A列和B列的引用

=ROW(1:30)&"日!A:A"

=ROW(1:30)&"日!B:B"

126a3910f21a838567f462b71b2e0a75.gif

连接成的只是字符串,并不能代表1:30日的A列和B列。把字符串地址转换成真正的引用,这是indirect函数的特长:

=Inidrect(ROW(1:30)&"日!A:A")

=Indirect(ROW(1:30)&"日!B:B")

有地址了,把它套进sumif函数中会怎么样?

=SUMIF(Inidrect(ROW(1:30)&"日!A:A"),A2,Indirect(ROW(1:30)&"日!B:B"))

结果是会把各个表中的A产品销量分别进行求和,查看结果按F9。

0a2898ab7dcebd2c27db22565d0d9828.gif

最后用sumproduct函数进行求和(这里不用sum的原因是:sum无法直接支持数组运算,本公式中同时对多数组进行运算属数组运算)

最终的公式为:

=SUMPRODUCT(SUMIF(INDIRECT(ROW($1:$30)&"日!a:a"),A2,INDIRECT(ROW($1:$30)&"日!b:b")))

由于公式复制后row(1:30)中的行数会发生变化,所以这里必须要添加绝对引用符号$

dfc65869dc5a4f4c195f3dde2d1afdb7.png

注:如果是多表多条件求和,可以用sumifs函数,原理相同。

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
©️2021 CSDN 皮肤主题: 1024 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值