分享

这才是拆分表格最完美的方法

 L罗乐 2017-06-22

最近发现有好多小伙伴都在问怎么将一个表快速地拆分成多个。其实这个操作起来非常简单,只需要用数据透视表的“显示报表筛选页”就可以快速完成,这是最简单、高效的方法。看到这里有小伙伴肯定要点“返回”按钮了,因为已经掌握了嘛!不过呢,你要是觉得李老师也是“普通青年”,那你就错了,不看到最后你永远不知道你会得到什么!阿甘有句著名的哲言,一起欣赏一下。

Life is like a box of chocolates, you never know what you are gonna get.

如下是一份数据表,我们需要按照产品,把对应的数据显示到不同的工作表中。

我们还是先讲一下用数据透视表怎么分页吧。

Step 1、插入数据透视表

插入数据透视表,将“产品”字段放到“筛选”区域,将其他所有需要的字段都放到“行”区域,如果是数值型字段,也可以放到“值”区域。


2、显示报表筛选页

选中数据透视表上任意一个单元格,点击【分析】选项卡,在“数据透视表”的“选项”下拉菜单中点击“显示报表筛选页”。

在弹出的对话框中选中需要按照哪个字段拆分。如果在“筛选”区域添加了多个字段,这里都会列出来,我们只要选中拆分依据的那个字段就可以了。


咻咻咻~几秒钟就可以创建数个工作表,并且每个工作表里面显示的内容和工作表标签指示的内容是一致的。也就是说,每个数据透视表都做好了筛选来显示不同的内容。

是不是超级简单?

说实话,对有些同学来讲,这个可能还不够完美,这是因为

  • “产品”这个字段没有体现在数据表中,而是在筛选页中;

  • 生成的是数据透视表,而不是表格。

 

搬过来小板凳,坐好了,李老师开始放大招了~

下面我们用VBA结合SQL查询的方式来实现拆分。

两种方法,你喜欢哪一种?

还有的小伙伴会用字典的方法实现拆分。但是我用之前文章中提到的超过20万行的数据来拆分,使用VBA SQL法不用一分钟就搞定,使用VBA代码法则估计要花费几十分钟才可以。我测试了一下,过了二十几分钟,字典法才运行到57000多行。不是因为我的电脑慢哦,Intel的4核I7处理器,8G内存,所以不是电脑的事儿,应该是代码的效率问题。如果实际应用中的数据没有这么多,也可以考虑字典法。

字典方法的实现思路

1、用循环检查分类字段中的项是否在字典中存在,如果不存在该项就添加新项目,值等于该行单元格区域(作为对象来赋值);如果存在该项就用Union方法联合该项对象和新的单元格区域。

2、遍历字典,循环创建工作表,将字典内容输出到新工作表中。

附字典法的代码,供学习参考。


另外,如果你想把拆分后的每个工作表单独保存为一个工作簿文件,请参考以下内容。

拆分、合并文件,so easy!


--End--

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多