写在前面:
永恒君之前分享的VBA实例仅仅只是一个入门用的参照工具,可能不一定完全适合具体的实际情况。有基础的朋友可以参照其中的功能实现的代码进行自定义的修改,新手也可以直观的体会一下VBA的好处。
一般而言,简单的说明来意或者把具体需求描述一下,永恒君都会非常的乐意帮忙。或者是直接交个朋友,大家一起交流也可以。
但是不希望是这样的:
1、一直问“在不在”,就是不说明来意。
2、直接扔一堆文件、图片、代码给我,问怎么没用,哪里有错误。
这样的问题只会阻碍相互之间的理解,增加沟通的时间成本,希望理解!
上周和一位小伙伴交流了Excel数据处理的问题,和大家分享一下。
这位小伙伴看了永恒君的文章Excel VBA 实例(14) – 依据指定单元格的值,复制并插入相同数量的行
他碰到的问题和这个有点类似,就和我交流了一下。他的问题大体是这样的:
原始数据表如图,abcd表示四种设备的数量。
实现的效果如下图:
具体而言就是这样的:
1、每一行只显示一种设备的数量,如第一行有b、d两种设备,则拆分成两行,然后数量依次填入对应单元格。
2、这个设备有多少数量,就显示多少行。
这个情况确实和实例(14)有点类似,但是更为复杂一些。实例(14)只有单列的数据情况,而这次要考虑多列的数据。
因为当时我没有太多时间,就和这位伙伴交流了一下大致要实现的思路:
遍历每行,1、如果行的和大于0,则进行拆分;2、每个设备数量大于1,进行拆分;
这位小伙伴也非常厉害,很快就写出了实现的代码,并和我做了分享交流。
但同时也提到了一个效率问题,和我交流了一下有没有优化的方法。
这个时候我想到了用python,借助pandas库来处理这个问题,下面是核心代码:
处理同样的数据,VBA大约花了10s,python用了2s左右,而且都是没有进行过算法优化处理。
感谢这位伙伴的交流,让彼此又学到了新的知识!
如果你对这个python实例感兴趣,可以在公号内回复「单行」自取试用!
微信公众号:永恒君的百宝箱
个人博客:www.yhjbox.com
转载请注明:永恒君的百宝箱 » Excel如何将数据逐一拆分成单行?