欢迎转发和点一下“在看”,文末留言互动!
置顶公众号或设为星标及时接收更新不迷路
有这样一个问题:
某品牌的店面在不同区域的销售情况如下表。这些店面分属于两个区域。每个门店表格的格式完全相同。
现在要将这些门店按分区汇总起来,要求汇总后的格式也是相同的。
我前两天向大家介绍了一篇如何跨表求和的帖子跨工作表查询你会做,可是跨工作表条件求和你会吗?
今天这个问题和上一篇介绍的稍微有些区别。今天的题目要求所有表格的格式内容和位置都不能改变。这就限制了我们不能照搬上次的方法了,因为那样会因此循环引用引发错误的。
今天这个问题具有一定的代表性。通常解决这类问题都离不开一个函数—INDIRECT函数,只是我们要思考如何创造条件来引用各个工作表。
01
INDIRECT函数在多表求和中的应用
在单元格D4中输入公式“”,三键回车并向下向右拖曳即可。
=SUM(IFERROR((T(INDIRECT("门店"&ROW($1:$10)&"!b2"))=$B$2)*SUMIF(INDIRECT("门店"&ROW($1:$10)&"!b4:b11"),$B4,OFFSET(INDIRECT("门店"&ROW($1:$10)&"!d4:d11"),,COLUMN()-4)),))
思路:
T(INDIRECT("门店"&ROW($1:$10)&"!b2"))=$B$2部分中,利用INDIRECT函数来引用工作表“门店1”到“门店10”中的单元格B2,(原因是单元格B2中存放了分区的信息)然后再做一个判断。N函数的作用是用来降维。
SUMIF(INDIRECT("门店"&ROW($1:$10)&"!b4:b11"),$B4,OFFSET(INDIRECT("门店"&ROW($1:$10)&"!d4:d11"),,COLUMN()-4))部分,其实是一个条件求和的函数。INDIRECT("门店"&ROW($1:$10)&"!b4:b11")部分是条件区域,指每个工作表中的单元格B4:B11的这个区域;OFFSET(INDIRECT("门店"&ROW($1:$10)&"!d4:d11"),,COLUMN()-4)部分是求和区域。利用OFFSET函数配合COLUMN函数随着向右拖动来改变求和区域;$B4部分是求和条件,随着向右拖动而改变
用IFERROR函数来容错处理,因为我们发现工作簿中没有“门店2”,我们在利用INDIRECT函数引用工作表时会发生错误,因此做了容错处理。
-END-
长按下方二维码关注EXCEL应用之家
面对EXCEL操作问题时不再迷茫无助
我就知道你“在看”