需求提出
今天我们来看一个运动会比赛表的整理问题,现在有全校所有同学的报名比赛的统计,现在要整理成每个年级一个运动项目的独立的小表格,方便班主任老师观看每个同学的比赛项目。
原表一共有1000多行数据,之前用人工做的时候,函数公式加手工操作,用尽所有力气做一次就要两三天,痛定思痛,努力学了VBA后, vba代码写完后每次一秒之内就完成数据快速转换,解放了双手,当然有人会说,肯定要安排你更多工作,我显然没那么傻啊,我还是3天才交任务,自己省下来的时间去学习充电,努力考证!记住千万不要做的快就马上上交结果!那是傻子 干的事!
本案例知识点:
- VBA将学生号码的年级、性别、项目,装入字典并用固定的分隔符连接
- 循环字典中的每个组关键字 取出对应的行列号
如数据下图:
由于本文图片尺寸较大 请大家尽量收藏转发后 到电脑端大屏查看学习,效果更佳!
思路:
- 按年级、性别、项目分别筛选到多个数组;
- 每组按规定列数输出
下面我们讲一讲重难点
- 第一步:因为直接转换到结果有点困难,所有通过一个自定义函数:二维转一维将原始数据转为单行记录所有信息的表格样式,并存入数组brr,可以输出结果看看
第93-105行:将每一行的对应的基本信息和比赛项目,原行号存入结果数组
- 在上面一维表的结果上我们按每个年级写一个单组输出的自定义函数
下面是一个测试,可以看见一个年级的结果
其中:
第62行:计算出结果数组brr一共的行数
第65-67行:计算出一共的赛道数格式化第几道
第71-84行:循环原始数组转换后的一维表格arr,将对应的号码、姓名、班级存入结果数组
3、最后我们将前俩步,组合在一起,做出整体结果。
第6行:先将原始数据 转换为一维表格
第16-25行:将arr数组中的年级、性别、项目作为字典的key ,将其对应的行号存入字典
第26-38行:循环字典中的不同组的行号,输出
以上知识点在VBA175例 194多列求和通用解法 记录行号二次循环法深入讲解 详细讲解
案例文件代码请使用代码助手进行查看
案例文件下载地址
请关注微信公众号EXCEL880 公众号主页回复
好了,今天有关在Excel中统计表行列转换一维表的问题便介绍到这,大家赶紧实际操作练习一下吧,有不懂的问题可以留言问小编呦!感谢支持Excel880工作室,还请多多转发,持续关注我们呀!
特别推荐使用VBA代码助手,再也不怕记不住代码
最后,像大家推荐郑老师的VBA代码助手(下载地址vbayyds.com)
只需输入关键字,就能将收藏过的代码整个带出来,太赞了
比如上面代码中的字典 数组输出之类都只需要打几个字就出来
我上面的整段代码 也可以收藏起来 下次类似问题
输入 考勤 2个字 就可以调出完整代码了 然后tab键即可输入