
VIP学员的问题,有很多个分表,要统计黄色区域的值。
图片
为了方便演示,只操作前面几行内容,实际有100多行内容。
建站客服QQ:88888888
本来,如果分表格式都相同,要进行多表求和真的很简单。
=SUM(上海:斯微!B5)
图片
公式说明:
=SUM(开始表格名称:结束表格名称!单元格)
现在第1个问题出现了,学员的表格里面有一个增长率,这就导致公式无法直接下拉和右拉。也就是区域不连续怎么填充公式?
选择区域,按Ctrl+G定位空值,输入公式,再按Ctrl+Enter。
图片
问题刚解决,学员又提出了新要求,说领导考虑到每个分公司业务的不同,分表的项目名称也会不同。也就说,有的分公司可能有100行,有的是120行,格式不同下,如何求和?卢子建议了好几次,让学员以汇总表为准,统一格式。但是,学员一直强调领导要求,无法改变,那既然如此,只能来学一下高难度的公式了。=SUMPRODUCT(SUMIF(INDIRECT({"上海","仙居","上仙","美国","苏州","南美","斯微"}&"!A:A"),$A5,INDIRECT({"上海","仙居","上仙","美国","苏州","南美","斯微"}&"!B:B")))
这个公式现在只能下拉,无法右拉,要想B列右拉变成C列、D列……还需要嵌套OFFSET和COLUMN。
=OFFSET($B$1,0,COLUMN(A1)-1)
图片
两个公式组合起来。=SUMPRODUCT(SUMIF(INDIRECT({"上海","仙居","上仙","美国","苏州","南美","斯微"}&"!A:A"),$A5,OFFSET(INDIRECT({"上海","仙居","上仙","美国","苏州","南美","斯微"}&"!B:B"),0,COLUMN(A1)-1)))
公式太复杂了,就不进行解释,知道有这么个公式存在就行,AG庄闲和游戏等哪天要用了,来这里复制粘贴即可。
现在又出现了一个问题,只有几个工作表的时候手工写表格名称还行,如果太多容易写错。怎么能用公式引用全部名称,不用手写?这时,宏表函数就派上用场。Step 01 点公式→定义名称,输入名称:表名,复制下面的公式到引用位置,确定。
=MID(GET.WORKBOOK(1),FIND("]",GET.WORKBOOK(1))+1,99)&T(NOW())
图片
公式的意思就是获取所有工作表名称。现在是第一个汇总表不需要统计进去,所以这里需要扣除一个表。
{jz:field.toptypename/}Step 02 最终公式来了,很长很复杂。
=SUMPRODUCT(SUMIF(INDIRECT(LOOKUP(ROW($2:$8),ROW($1:$99),表名)&"!A:A"),$A5,OFFSET(INDIRECT(LOOKUP(ROW($2:$8),ROW($1:$99),表名)&"!B:B"),0,COLUMN(A1)-1)))
你只要懂得改红色字体部分就行,现在是从第2个表到第8个表,就写ROW($2:$8)。

只改这里,剩下的就顺便看一下区域是否跟自己的表格对应,如果不对应再改下即可。
Step 03 因为使用了宏表函数,需要将表格另存为启用宏的工作簿才可以。
图片
最后,再看一下Office365和WPS表格最新版的多表求和公式。
正常情况下:
=SUMPRODUCT(--(VSTACK(上海:斯微!$A$5:$A$200)=$A5),VSTACK(上海:斯微!B$5:B$200))
区域存在错误值的情况下:
=SUMPRODUCT(--(VSTACK(上海:斯微!$A$5:$A$200)=$A5),IFERROR(VSTACK(上海:斯微!B$5:B$200),0))
能考虑的情况几乎都考虑了,这就是我认为接近完美的版本。
有的公式,是拿来复制粘贴的,不需要懂得太多含义,但愿你懂得这句话的含义。
年底了,你最想学的技能是什么?
推荐:别找了,你要的Excel多表合并都在这里了!
上篇:我又回来了
图片
作者:卢子,清华畅销书作者,《Excel效率手册 早做完,不加班》系列丛书创始人,个人公众号:Excel不加班(ID:Excelbujiaban)
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。