数据整理之按科目提取每个人的成绩

文摘   教育   2024-09-09 19:50   广东  
今天来看一个小练习,如图所示,将每个人的成绩提取出来做成D1单元格所在区域表格形式。

下面来看看代码吧

Sub test()Dim arr, brr, crr, dic As Object, i, m, nSet dic = CreateObject("scripting.dictionary")arr = Range("A1").CurrentRegion.Value  '数据赋值到数组brr = Range("D1").CurrentRegion.Value
For i = 2 To UBound(arr) '装入字典 crr = Split(arr(i, 2), " ") For m = 0 To UBound(crr) dic(arr(i, 1) & Split(crr(m), ":")(0)) = Split(crr(m), ":")(1) Next mNext i
For m = 2 To UBound(brr) '数据输出 For n = 2 To UBound(brr, 2) If dic.exists(brr(m, 1) & brr(1, n)) Then brr(m, n) = dic(brr(m, 1) & brr(1, n)) End If Next nNext mRange("D1").CurrentRegion.Value = brrEnd Sub
第4行:将数据源区域装入数组
第5行:将结果区域装入数组
第7-12行:使用Split将数据进行拆分,将每个人的姓名与科目作为key值,成绩作为item,装入字典
第14-20行:循环结果区域数组,将字典里的数据导出
第21行:将结果区域数组导出到区域

效果展示:

好了,本期教程就到这里啦,走过路过的点个关注分享一下吧,谢谢啦

求关注-求星标-求点赞-求看-求分享
最近创建了一个VBA学习交流群,如有需要进群可以添加微信 jaresfzz

Excel应用教程
主要提供Excel vba,函数,图表,数据透视表,pq,Js等教程
 最新文章