Excel数据汇总中有这样一个问题:在很多个工作表中,同一项数据都位于同一个单元格,比如:每个月份的销量都位于每个月份工作表的B1单元格,而我们需要把每个月的销量汇总到一个总表中,在该总表中,各个月的销量分布为同一列 。
这种汇总情况如下动图:
文章插图
以上示例中,每个分工作表的命名是有规律的:从1到12月 。但这种有规律的情况,只是个例,而普遍存在的是:每个分工作表的名称是无规律可寻的 。
比如,以下动图,各个分表名称是超市名,而超市名是没有1——12等数字规律的:
文章插图
上述两种情况,需要不同的汇总方法 。
一一述:
分表名称有规律公式实现
在B2单元格输入公式:
=IFERROR(INDIRECT(ROW(A1)&”月”&”!B1″),””)
公式向下填充,即得所有工作表B1单元格的数据 。
文章插图
公式解析
ROW(A1)&”月”:
公式在B2单元格时,ROW(A1)返回1,即得工作表名称1月,公式向下填充到B3单元格时,该部分变为ROW(A2),即得工作表名称2月,再向下填充,得到其它月份工作表名称 。
ROW(A1)&”月”&”!B1″:
连接工作表名称与单元格,得到:1月B1,2月B1,……12月B1.
INDIRECT(ROW(A1)&”月”&”!B1″):
引用1月B1,2月B1,……12月B1的值 。
IFERROR(INDIRECT(ROW(A1)&”月”&”!B1″),””):
如果引用有结果,返回正确值,否则返回空值 。
分表名称无规律
1、鼠标放在第一个超市名称的单元格A2,【公式】——【定义名称】:输入名称BM(此名称可任意取),引用位置处输入公式:
=INDEX(GET.WORKBOOK(1),ROW(A2))
文章插图
GET.WORKBOOK(1)是宏表函数,取所有工作表的名称 。
2、在A2单元格输入公式:
=IFERROR(BM,””)
向下填充,得到所有超市名称:
文章插图
IFERROR函数是容错处理,如果没有超市名称,返回空值 。
3、在B2单元格输入公式:
=IFERROR(INDIRECT(A2&”!B1″),””)
公式向下填充,即得所有超市工作表B1单元格的数值:
文章插图
4、如果不喜欢上图中带工作簿名称的超市名,可以把公式改为:
=IFERROR(MID(BM,13,9),””)
文章插图
因为工作簿名称有12个字节,所有用公式MID(BM,13,9),从第13个字节开始提取超市名称 。其中9是随意取的长度,根据超市名称字符数的多少,该数值可灵活改变 。
※特别注意:
【INDIRECT函数——汇总多个工作表同一单元格值成一列】工作表名称无规律的情况,因为引用了宏表函数,所以文件保存时要保存成“启用宏的工作簿.xlsm” 。
推荐阅读
- MODE.MULT函数——统计出现次数最多的数值
- SUMIFS函数——多条件求和
- LOOKUP+INDIRECT有合并单元格的查询
- VLOOKUP函数:合并同一部门员工到同一单元格
- ROW——行函数应用案例
- COLUMN——列函数应用案例
- 一个简单的多条件求和函数——DSUM
- 多条件计数函数——DCOUNT
- Excel规范数据录入—设置只能输入数值
- 还来就菊花——菊的用途