Excel情报局
职场联盟Excel
今天我们来继续复习一下“多工作表合并”的问题。最最重要的一点就是我们使用的是函数的方法进行合并,告别VBA和Power Query编辑器等方式。
如下图所示:
我们有三个分表,每个分表有两列数据,行数并不确定。三个工作表分别代表不同的省份。各个工作表内数据是地市与销量的对应表。
分表1“河北”:
合并完成后的数据,总表“合并数据”:
我们来介绍一下Excel新增函数VSTACK函数。
VSTACK函数可以将N个数组垂直叠到一个数组中。
VSTACK函数有两种参数输入方式:
第一种是这样的:
=VSTACK(区域1,区域2,....,区域N)
就是说,有多少个需要合并的区域,那么VSTACK函数就有多少个参数,用逗号隔开即可。并且参数“区域”并不一定是在同一个工作表,也可以是多个工作表(如本例所讲的)。
我们在“合并数据”工作表中A2单元格输入函数公式:
=VSTACK(河北!A2:B4,山东!A2:B3,广东!A2:B4)
此种书写方式虽然可以完成多工作表合并的效果,但是如果工作表数量多的情况下,假设有50个工作表(本例中只有3个分表),一个一个去不同工作表勾选区域,效率就非常低了。
第二种是这样的:
=VSTACK(表1:表N!区域)
就是说,如果需要合并的某个区域存在于多个工作表,该区域不需要像第一种参数输入方式那样一个一个到不同工作表勾选区域。而是用“表1:表N!区域”这种书写的方式,代表包括表1~表N之间的所有工作表的某一指定区域。如果工作表多,用这种效率高。
我们在“合并数据”工作表中A2单元格输入函数公式:
=VSTACK(河北:广东!A2:B5)
这样书写的好处是:假设我们有50个工作表(本例中只有3个分表),我们只需要用“河北:广东!”代表包括起始工作表“河北”与末尾工作表“广东”之间的所有工作表。再加上区域A2:B5,就可以轻松表示需要合并的所有工作表中的A2:B5区域了。
此时返回结果会包含很多0值,原因就是每个分表的行数是不确定的,所以合并的区域的行数要根据实际情况尽可能的大一些,以尽可能覆盖所有需要合并的数据,但是分表多出的空行,合并表中会以0值显示。
我们可以删除0值。
先将公式产生的结果数据全部选中后复制,原位置选择性粘贴为数值,目的是去掉公式,保留值。
最后,选中A列,快捷键Ctrl+F,调出“查找”对话框,查找0值,勾选“单元格匹配”,点击“全部查找”,快捷键Ctrl+A全选所有查找出来的0值后,关闭“查找”对话框,在任意一个查找出来的0值单元格上右击鼠标,点击“删除-整行”,即可完成操作。
回顾关键内容,善用图片表达,学会建立联系,拓展深度广度,浓缩关键概念,应用到行动中,善于归纳总结,尝试进行分享。
〖往期知识点精彩链接点击阅读〗