打开APP
userphoto
未登录

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

开通VIP
60用Excel函数将多表数据合并到一张表中~
多个工作表的数据合并成一张工作表,是日常工作中常见的表格问题。在之前,我们陆续给大家分享了Power Query、SQL、VBA和插件的解法套路,独独缺少了函数……
 Power Query多表合并
 SQL多表合并
❸ VBA多表合并

这倒不是因为函数太老了,身体不行了,解决不了多表合并的问题。而是这家伙的解决方案,难度太高,效率却不高。虽说可以迎男而上,但非常容易进入男上加男、进退两男的尴尬局面。


我举个例子。

如上图所示,有3张工作表,名称分别为2018年/2019年/2020年,表的结构一致,现在需要将这3张工作表的数据合并成一张表。


如果使用函数执行多表合并,可以在汇总表的A1单元格输入以下数组公式,向下向右复制填充。

数组公式 ▼

=INDIRECT(LOOKUP(ROW(A1)-1,MMULT(N(ROW($1:$3)>COLUMN(A:C)),COUNTIF(INDIRECT({"2018年";"2019年";"2020年"}&"!a:a"),"<>")),{"2018年";"2019年";"2020年"})&"!R"&ROW(A1)-LOOKUP(ROW(A1)-1,MMULT(N(ROW($1:$3)>COLUMN(A:C)),COUNTIF(INDIRECT({"2018年";"2019年";"2020年"}&"!a:a"),"<>")))&"C",0)&""

泡一杯老坛酸菜方便面,你看公式又长又复杂,武侠小说看流泪,从来不相信魔鬼,函数就是这么累……咳,摊手,解释一下这公式的意思。

公式的核心是

核心部位 ▼

MMULT(N(ROW($1:$3)>COLUMN($A:$C)),COUNTIF(INDIRECT({"2018年";"2019年";"2020年"}&"!a:a"),"<>"))

COUNTIF部分统计每张工作表A列存在数据行的个数,然后使用MMULT函数进行累加,比如每张表存在数据的行数分别为7,6,7;则MMULT计算结果为{0,7,13}。


使用LOOKUP函数按区间计算行列数据,生成R1C1样式的单元格引用地址,最后再使用间接引用函数INDIRECT化地址为单元格引用,显示相关单元格的值。

就这么回事。

如果你所使用的Excel版本是365,可以使用Let函数,公式的层次看起来就清晰多了。

=LET(表名,{"2018年";"2019年";"2020年"},行数,MMULT(N(ROW($1:$3)>COLUMN($A:$C)),COUNTIF(INDIRECT(表名&"!a:a"),"<>")),INDIRECT(LOOKUP(ROW(A1)-1,行数,表名)&"!R"&ROW(A1)-LOOKUP(ROW(A1)-1,行数)&"C",0)&"")

这公式强大到没朋友,简直自绝于人类,所以——就很不适合用于工作,还是优先推荐大家使用Power Query。

……

没了,今天和大家分享的内容就这些。有不明白的地方可以在会员群中提问交流,完全看不懂又十分感兴趣的话可以过一下以下两篇教程。

 呵,INDIRECT函数
 嘿,MMULT函数~~

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
平安之夜,看看excel强大到没朋友--用函数公式合并多工作表数据
Excel公式技巧14: 在主工作表中汇总多个工作表中满足条件的值
Excel中最值得收藏的12个函数公式(精选)
多表查询数据
Excel 如何实现同工作簿中跨多个工作表查询?
Excel多表查找公式,牛!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服