ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 这样的高难度成绩分析可能只有求助老师们了

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-7-20 14:35 | 显示全部楼层 |阅读模式
本帖最后由 辛玛 于 2020-7-21 10:19 编辑

今年我新接手了区教学工作管理,需要对区各学校的成绩进行分析,为尽快完成好,求助各位老师帮助。
原始数据:1,三个成绩表,包括学校、班级、学生姓名、各科成绩。
                2,一个教师数据表,包括学校、班级、科目、任教老师姓名
分析:
一,求出各年级各科的及格分、优秀分、关爱分。
   1,科目及格分:年级科目排名第X名的分数。X=与考人数*60%.
   2,科目优秀分:年级科目排名第Y名的分数。y=与考人数*20%.
   3,科目关爱分:年级科目排名第Z名的分数。Z=与考人数*80%.
   4,总分关爱分:年级各科总分排名第Z名的分数。Z=与考人数*80%.

二,求出(各年级)(各班)(各科)的平均分、及格率、关爱率、三率合计,排名,任教老师
1,班级科目平均分=本班本科总分/全班人数
2,班级科目及格率=本班本科及格人数/全班人数*100%。
3,班级科目关爱率=本班本科关爱人数/全班人数*100%。
4,三率合计:平均分*0.4+及格率*0.4+关爱率
5,排名,根所三率合计对各科成绩排名。
6,插入本班本科目的任教老师姓名。
三,求出(各年级)(各班)的平均分、全科合格率、优秀率、关爱率、四率合计,排名。
1,班级平均分=全班各科成绩总分/全班人数/科目数
2,全科合格率=所有考试科目全部及格的人数/全班人数*100%
3,优秀率:七年级:语文、数学、英语三科均优秀的人数/全班人数*100%
                   八、九年级:语文、数学、英语、物理四科均优秀的人数/全班人数*100%
4,关爱率=本班总分关爱人数/全班人数*100%
5,四率合计:班级平均分*0.3+全科合格率*0.3+优秀率*0.2+关爱率
6,排名,根据四率合计进行排名。
四,求出(各校)(各年级)的平均分、全科合格率、优秀率、关爱率、四率合计,学校总成绩,学校排名。
1,年级平均分=年级各科成绩总分/年级总人数/科目数
2,全科合格率=所有考试科目年级全部及格的人数/年级总人数*100%
3,优秀率:七年级:语文、数学、英语三科均优秀的年级人数/年级总人数*100%
                   八、九年级:语文、数学、英语、物理四科均优秀的年级人数/年级总人数*100%
4,关爱率=年级关爱人数/年级总人数*100%
5,四率合计:年级平均分*0.3+全科合格率*0.3+优秀率*0.2+关爱率
6,学校总成绩:各年级的四率合计平均分。
7,学校排名,学校总成绩进行排名。
五,教师排名:

成绩分析.rar

179.25 KB, 下载次数: 42

TA的精华主题

TA的得分主题

发表于 2020-7-21 22:17 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
整理了一下表格顺序。

成绩分析.rar

374.54 KB, 下载次数: 112

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-7-20 15:33 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-7-20 15:35 | 显示全部楼层
我也觉得你这代码的工作量得找个人有偿服务了

TA的精华主题

TA的得分主题

发表于 2020-7-20 16:05 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-7-20 16:36 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-7-20 17:07 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
写个最简单的各科三分统计,这个没有考虑学生缺考的问题。楼主的问题确实复杂,我算是抛个砖吧。
  1. Sub test()
  2.   Dim r%, i%
  3.   Dim arr, brr
  4.   Dim d As Object
  5.   Application.ScreenUpdating = False
  6.   Application.DisplayAlerts = False
  7.   Set d = CreateObject("scripting.dictionary")
  8.   For Each ws In Worksheets(Array("七年级", "八年级", "九年级"))
  9.     With ws
  10.       r = .Cells(.Rows.Count, 1).End(xlUp).Row
  11.       c = .Cells(2, .Columns.Count).End(xlToLeft).Column
  12.       arr = .Range("a2").Resize(r - 1, c)
  13.       ReDim Preserve arr(1 To UBound(arr), 1 To UBound(arr, 2) + 1)
  14.       arr(1, UBound(arr, 2)) = "全科"
  15.       For i = 2 To UBound(arr)
  16.         For j = 5 To UBound(arr, 2) - 1
  17.           arr(i, j) = Val(arr(i, j))
  18.           arr(i, UBound(arr, 2)) = arr(i, UBound(arr, 2)) + arr(i, j)
  19.         Next
  20.       Next
  21.       ReDim brr(1 To 4, 1 To UBound(arr, 2) - 4)
  22.       For j = 5 To UBound(arr, 2)
  23.         brr(1, j - 4) = arr(1, j)
  24.         crr = Application.Index(arr, 0, j)
  25.         brr(2, j - 4) = Application.Large(Application.Index(arr, 0, j), Round((UBound(arr) - 1) * 0.6, 0))
  26.         brr(3, j - 4) = Application.Large(Application.Index(arr, 0, j), Round((UBound(arr) - 1) * 0.2, 0))
  27.         brr(4, j - 4) = Application.Large(Application.Index(arr, 0, j), Round((UBound(arr) - 1) * 0.8, 0))
  28.       Next
  29.       d(ws.Name) = brr
  30.     End With
  31.   Next
  32.   On Error Resume Next
  33.   Worksheets("各科三分").Delete
  34.   On Error GoTo 0
  35.   Set ws = Worksheets.Add(after:=Worksheets(Worksheets.Count))
  36.   With ws
  37.     .Name = "各科三分"
  38.     With .Range("a1")
  39.       .Value = "及格分、优秀分、关爱分取值"
  40.       .Resize(1, 12).Merge
  41.       With .Font
  42.         .Name = "微软雅黑"
  43.         .Size = 16
  44.       End With
  45.     End With
  46.     i1 = 2
  47.     For Each aa In d.keys
  48.       brr = d(aa)
  49.       .Cells(i1, 1).Resize(1, 2) = Array("年级", "项目")
  50.       With .Cells(i1 + 1, 1)
  51.         .Value = aa
  52.         .Resize(3, 1).Merge
  53.       End With
  54.       .Cells(i1 + 1, 2).Resize(3, 1) = [{"及格分";"优秀分";"关爱分"}]
  55.       .Cells(i1, 3).Resize(UBound(brr), UBound(brr, 2)) = brr
  56.       With .Cells(i1, 1).Resize(4, 2 + UBound(brr, 2))
  57.         .Borders.LineStyle = xlContinuous
  58.         .BorderAround LineStyle:=xlContinuous, Weight:=xlMedium
  59.       End With
  60.       i1 = i1 + 4
  61.     Next
  62.     With .UsedRange
  63.       .HorizontalAlignment = xlCenter
  64.       .VerticalAlignment = xlCenter
  65.     End With
  66.   End With
  67.   Application.ScreenUpdating = True
  68.   MsgBox "各科三分计算完毕!"
  69.   
  70. End Sub
复制代码

评分

5

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-7-20 17:08 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
抛砖引玉吧。

成绩分析.rar

325.82 KB, 下载次数: 51

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-7-20 17:29 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

辛苦chxw68老师了,

TA的精华主题

TA的得分主题

发表于 2020-7-20 18:07 来自手机 | 显示全部楼层
一个教师数据表,包括学校、班级、科目、任教老师姓
这个最好取消合并单元格,做成一维表

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-7-20 18:15 | 显示全部楼层
zpy2 发表于 2020-7-20 18:07
一个教师数据表,包括学校、班级、科目、任教老师姓
这个最好取消合并单元格,做成一维表

谢谢老师指教
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 07:51 , Processed in 0.051472 second(s), 19 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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