多语言展示
当前在线:1168今日阅读:61今日分享:18

excel函数自动汇总一个工作簿的多张工作表

一张excel工作簿中有很多结构相同的工作表,每天都会增加一张,如何实时自动汇总,使用vba可以实现,这里要介绍的是使用函数实现,感受一下宏表函数的魅力。
工具/原料

微软excel

方法/步骤
1

得到每个工作表的名字。1 若想得到工作表的表名,需要使用一个宏表函数GET.WORKWOOK,此函数的参数位1表示返回值为所有工作表的名称,是一个数组,使用index依次取出数组中的值,这里要注意的是,宏表函数只能在定义名称中使用!2 得到工作表之后,希望工作表名重复出现,引用工作表的很多行,row()/7,7的倍数就会+1,这里要注意的是,row()要从0开始,表名重复的次数才会都保持一致

2

通过address函数构建一个行和列都是数字的单元格地址,前缀加上表名,使用indirect翻译具体的地址,例如indirect(01!address(2,1)得到的结果就是01表的单元格值“A”使用COUNTIF($A$2:$A2,$A2)得到一组序列做为address的行参数,column()做为address的列参数

3

公式下拉,即可完成自动汇总

注意事项
1

工作簿的后缀为xls或者是xlsm

2

=INDEX(表名,INT((ROW(A1)-1)/7)+2),ROW(A1)-1是从0开始构建重复值,+2是从第二张工作表开始汇总

推荐信息