打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【Excel问伊答40】用SUMIF和SUMPRODUCT一起对多表进行单条件数据汇总

1,现在有7个工作表,每个表的数据结构是一样的,都有5列,分别是:商品、日期、件、单价、营业额;每个表的商品的个数不同,行数也不同。比如其中一个工作表的截图是这样的:



2,如果你只想统计工作表“1”里的每个商品的营业额,你只需要整理出各个商品的列表,然后用SUMIF函数就可以求出来了。

=SUMIF('1'!A:A,$A2,'1'!E:E)


3,但是这样统计出来的只是工作表“1”里的数据,工作表“2”到“7”里的数据没有统计出来。一般来说大家可能想到先用SUMIF分别把7个表里的数据分别汇总出来,然后把这7个SUMIF相加在一起,这样做本身是没错,但是如果工作表不止7个,有20个呢,或者50个呢,这时候如果把那么多SUMIF相加也不是件快乐的事情。大部分人是这么做的:

=SUMIF('1'!A:A,$A2,'1'!E:E)+SUMIF('2'!A:A,$A2,'2'!E:E)+...+SUMIF('7'!A:A,$A2,'7'!E:E)


4,上面这种多个SUMIF相加的方法其实可以用一种新的思路去替代。当然这种思路,你不喜欢,你还可以沿用上面的那种多个SUMIF相加的方法。新方法引进INDIRECT函数。如果有7个工作表的数据相加求和,那么可以把原先的SUMIF函数改造成这样:


=SUMIF(INDIRECT(ROW($1:$7)&'!A:A'),

$A2,INDIRECT(ROW($1:$7)&'!e:e'))


其中,ROW($1:$7)代表工作表“1”到“7”的表名。而ROW($1:$7)&'!A:A',就代表工作表“1”到“7”里的A列这个区域。但是这种关于单元格区域引用的表达方式,不是标准的规范的引用方式,是不被Excel所认可的。要想这种非常规的引用形式被Excel认可,就必须用INDIRECT函数包装下。所以SUMIF函数的第一个参数“条件区域”这里用到了INDIRECT函数:INDIRECT(ROW($1:$7)&'!A:A')


同理,SUMIF函数的第二个参数求和区域这里也用到了INDIRECT函数进行包装处理。


5,比如你在B2单元格输入上述SUMIF函数公式,回车确认后的结果显示的结果却并不是你想要的多表求和的结果。其实结果已经汇总出来的了,你只需要在B2单元格的编辑栏,按F9键就可以看到下面这样的结果值:{15516;53805;16726;20102;19780;17635;34104}。这里面有7个值,分别对应7个表的某个商品的求和。但是这7个值怎么求出他们的总和呢。这时候就可以用SUMPRODUCT函数对这里面的7个值求其总和。



在编辑栏按F9出现如下结果(只是查看一下,然后不要回车,直接按ESC返回到原来的函数公式)


所以,最终的函数公式是:



你看明白了吗。动手操作,才是王道~~~


--------------------------------------------------------------------------------------------

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Sumif Indirect函数双雄组合,实现多表汇总求和
它才是Excel函数中的NO.1,vlookup函数只能靠边站
函中 | 如何实现多表自动汇总?
EXCEL年底必学,12个月的统计套路
Excel跨工作表数据求和,Indirect函数才是NO.1,十秒快速完成汇总
Excel中多个工作表不同位置数据,如何进行求和?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服