乐于分享
好东西不私藏

多个Excel子表怎么汇总到一个表里,还能实时更新

多个Excel子表怎么汇总到一个表里,还能实时更新

一个Excel文件里有十几个子表,每个子表是不同部门的费用数据或者是其他数据。

你开始数据女工,搞了一个小时。

以后数据更新了,你又得重新来一遍。

有没有一种方法,汇总一次,后面数据更新了自动同步?

有。

方法一:VSTACK函数(最简单)

如果你用的是Excel 365或2021及以上版本,

一个公式就能把多个子表拼到一起。

=VSTACK(Sheet1!A2:C100,Sheet2!A2:C100,Sheet3!A2:C100)

用了公式,后面原始数据改了,汇总表自动跟着变。

不用刷新。

有几个要注意的:

要指定具体范围(比如A2:C100),不能引用整列,否则会报错
各子表的列数要一致
子表行数不一样的时候,空白区域会显示0,套一层IF可以解决:

=VSTACK(IF(Sheet1!A2:C100="",  "", Sheet1!A2:C100), IF(Sheet2!A2:C100="", "", Sheet2!A2:C100),  IF(Sheet3!A2:C100="", "", Sheet3!A2:C100))

这样空白区域就不会显示0了。(或者用TOCOL配合整列,自动忽略空行。)

其实也可以把你的出错提示丢给AI,让它帮你解决,因为每个人碰到的问题不一样,对应的解决办法也也不同。

缺点:只有新版Excel才支持这个函数。如果你用的是老版本,看方法二。

方法二:Power Query(老版本也能用)

如果方法一可行的话就没必要用二了。(其实是有点懒得去弄了,如果有需要的话,我可以再列出来)

汇总顺序怎么保持不变

用VSTACK的话,公式里你先写哪个子表,它的数据就排在前面。顺序完全由你控制。

用Power Query合并的时候,在追加查询的界面里可以调整子表的前后顺序,调好之后每次刷新都按这个顺序来。

两种方法都不会乱。

养成习惯,每个子表的结构(列名、列数)最好保持一致,不管做什么都方便,合并的时候也不容易出错。


如果看不明白的话,可以跟我拿操作表格练习一下。

END