ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 436|回复: 9

[求助] 学校质量分析表

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-4-12 15:11 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
求助:能否用vba实现,根据总表拆分班级成绩表(4个班级),根据总表成绩和任课教师得出质量分析数据里的所以内容。谢谢!

质量分析表.7z

12.62 KB, 下载次数: 24

TA的精华主题

TA的得分主题

发表于 2023-4-12 15:27 | 显示全部楼层
口径是什么呀?

TA的精华主题

TA的得分主题

发表于 2023-4-12 16:33 | 显示全部楼层
各个科目总分多少,及格分多少,你总得说明吧。

TA的精华主题

TA的得分主题

发表于 2023-4-12 16:36 | 显示全部楼层
质量分析表格很特别!一般都不是这样设计的。

TA的精华主题

TA的得分主题

发表于 2023-4-12 19:42 | 显示全部楼层
这表弄得太繁琐了,用JS先写一点,用WPS2022打开使用
  1. //统计班级排名、全校排名
  2. function statistical_ranking() {
  3.   let sht1 = Sheets('总表')
  4.   let arr = sht1.Range('A1').CurrentRegion.Value2;
  5.   arr.shift();

  6.   //按第二列班级汇总
  7.   const classes = {};
  8.   summary_column(arr, 1, (e) => {
  9.     for (let i in e) {
  10.       let arr = e[i].map(i => [i[0], i[16]]); //提取考号、总分成绩
  11.       alike_ranking(classes, arr) //统计各班排名
  12.     }

  13.   });

  14.   const school = {};
  15.   let brr = arr.map(i => [i[0], i[16]]);
  16.   alike_ranking(school, brr); //统计全校排名


  17.   //写入班级排名、全校排名
  18.   let rng = sht1.Range('R2').Resize(arr.length, 2);
  19.   rng.Value2 = arr.map(i => [classes[i[0]], school[i[0]]]);

  20.   write_summary()
  21.   alert('统计完成');

  22. }

  23. //写入质量分析表
  24. function write_summary() {
  25.   let sht1 = Sheets('总表')
  26.   let sht2 = Sheets('质量分析')
  27.   let arr = sht1.Range('A1').CurrentRegion.Value2;
  28.   arr.shift();

  29.   //班级平均分
  30.   let brr = [];
  31.   summary_column(arr, 1, (e) => {
  32.     for (let i in e) {
  33.       let arr = e[i]
  34.       let x = 0 //班级总分
  35.       arr.forEach(i => x += i[16])

  36.       let y = Math.floor((x / arr.length) * 100) / 100; //班级平均分
  37.       brr.push([i, y])
  38.     }
  39.   })

  40.   const clss = {};
  41.   alike_ranking(clss, brr)

  42.   let data = brr.map(i => [i[0], i[1], clss[i[0]]])
  43.   sht2.Range('A8:C11').Value2 = data.sort()

  44. }

  45. //按某列汇总为对象{'班级': [二维数组]}
  46. function summary_column(arr = [], col = 0, callback = Function) {
  47.   const obj = {}
  48.   arr.forEach(i => {
  49.     let a = i[col]
  50.     if (obj[a]) return obj[a].push(i);
  51.     obj[a] = [i]
  52.   })
  53.   callback(obj)
  54.   return obj
  55. }

  56. //解决并列排名问题,arr[考号, 分数]
  57. function alike_ranking(obj = {}, arr = []) {
  58.   arr = arr.sort((x, y) => y[1] - x[1]) //降序排序

  59.   const brr = {}
  60.   let a = 1
  61.   arr.forEach(i => {
  62.     let x = i[0],
  63.       y = i[1]
  64.     if (brr[y]) {
  65.       obj[x] = brr[y]

  66.     } else {
  67.       obj[x] = a
  68.       brr[y] = a
  69.       a++
  70.     }

  71.   })
  72. }
复制代码

学校质量分析WPS.zip

21.18 KB, 下载次数: 11

TA的精华主题

TA的得分主题

发表于 2023-4-12 21:46 | 显示全部楼层
修改了一下统计表格式,供楼主参考。

质量分析表.rar

15.12 KB, 下载次数: 41

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-13 12:20 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-13 12:21 | 显示全部楼层
fengbao008 发表于 2023-4-12 16:33
各个科目总分多少,及格分多少,你总得说明吧。

总分和及格分在任课教师表里有体现。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-13 12:21 | 显示全部楼层
chxw68 发表于 2023-4-12 21:46
修改了一下统计表格式,供楼主参考。

谢谢!我学习一下。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-13 13:15 | 显示全部楼层
×××× 发表于 2023-4-13 12:20
总分在任课教师表里有

什么是口径?孤陋寡闻。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 15:41 , Processed in 0.040918 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表