php 能让拆分的表格循环吗,这才是拆分表格最完美的方法

这篇博客介绍了如何利用Excel的数据透视表功能快速拆分表格,通过显示报表筛选页可以一键完成多个工作表的创建。此外,还探讨了使用VBA结合SQL查询的方式,以更高效地实现数据拆分。对于大数据量的拆分,VBA SQL方法比字典方法更为迅速。文中提供了VBA代码示例,并提及了如果需要将拆分后的每个工作表保存为独立的工作簿文件的操作方法。
摘要由CSDN通过智能技术生成

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

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

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

102482303_1

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

Step 1、插入数据透视表

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

102482303_2

2、显示报表筛选页

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

102482303_3

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

102482303_4

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

102482303_5

是不是超级简单?

说实话,对有些同学来讲,这个可能还不够完美,这是因为“产品”这个字段没有体现在数据表中,而是在筛选页中;

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

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

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

102482303_6

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

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

字典方法的实现思路

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

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

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

102482303_7

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

--End--

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值