ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: yzyyyyyyy

[求助] 如何根据原始表中班级学科分总分折算分3项填充8项名次和序号以数组形式写入目标表

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-12-26 11:51 来自手机 | 显示全部楼层
yjh_27 发表于 2014-12-26 11:49
你定个规则,在分相同时再按什么排序(如姓名、其他分),否则就是随机的

按折算分,总分

TA的精华主题

TA的得分主题

发表于 2014-12-26 13:01 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
yzyyyyyyy 发表于 2014-12-26 11:51
按折算分,总分
  1. Sub aa()
  2. R = Range("a" & Rows.Count).End(xlUp).Row

  3. arr = Range("a2:f" & R)
  4. brr = YjhSort(arr, "1,2", "1,5", "R,-5;1;2")    '学科分班名
  5. Range("h2").Resize(UBound(brr), UBound(brr, 2)) = brr
  6. brr = YjhSort(arr, "1,2,2,2", "1,5,6,4", "R,-5;1;1")    '学科分班序
  7. Range("j2").Resize(UBound(brr), UBound(brr, 2)) = brr
  8. 'brr = YjhSort(arr, "1,2", "1,5", "R,-5;1;2,-5;1;1")    '学科分班名、学科分班序
  9. 'Range("L2").Resize(UBound(brr), UBound(brr, 2)) = brr

  10. brr = YjhSort(arr, "-1", "5", "R,0--5;1;12")     '学科分级名
  11. Range("i2").Resize(UBound(brr), UBound(brr, 2)) = brr
  12. brr = YjhSort(arr, "-1,-1,-1", "5,6,4", "R,0--5;1;11")     '学科分级序
  13. Range("k2").Resize(UBound(brr), UBound(brr, 2)) = brr

  14. brr = YjhSort(arr, "1,2", "1,5", "R,5;1;2")    '学科分班倒名
  15. Range("L2").Resize(UBound(brr), UBound(brr, 2)) = brr
  16. brr = YjhSort(arr, "1,2,1,1", "1,5,6,4", "R,5;1;1")    '学科分班倒序
  17. Range("n2").Resize(UBound(brr), UBound(brr, 2)) = brr
  18. 'brr = YjhSort(arr, "1,2", "1,5", "R,5;1;2,5;1;1")    '学科分班倒名、学科分班倒序
  19. 'Range("L2").Resize(UBound(brr), UBound(brr, 2)) = brr

  20. brr = YjhSort(arr, "1", "5", "R,0-5;1;12")     '学科分级倒名
  21. Range("m2").Resize(UBound(brr), UBound(brr, 2)) = brr
  22. brr = YjhSort(arr, "1,1,1", "5,6,4", "R,0-5;1;11")     '学科分级倒序
  23. Range("o2").Resize(UBound(brr), UBound(brr, 2)) = brr

  24. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-12-26 16:48 | 显示全部楼层
yjh_27 发表于 2014-12-26 13:01

感谢大师热心帮助。能否将原始表6列变为目标表30列,
1、以数组形式一次写入目标表30列 。或6列变为30列,或30列变为30列。
2、学科分,总分,折算分分3次写入。或6列变为30列,或30列变为30列。

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-12-29 16:04 | 显示全部楼层
yjh_27 发表于 2014-12-26 13:01

大师,又测试了一下。学科分班名,学科分级名,学科分班倒名,学科分级倒名,都正确,学科分班名序,学科分级名序,学科分班倒名序,学科分级倒名序均不正确。

TA的精华主题

TA的得分主题

发表于 2014-12-29 20:53 | 显示全部楼层
yzyyyyyyy 发表于 2014-12-29 16:04
大师,又测试了一下。学科分班名,学科分级名,学科分班倒名,学科分级倒名,都正确,学科分班名序,学科 ...

1  学科分班名序,学科分班倒名序,不正确已改正
2  与你结果不一致,是因为 学科分,折算分,总分 都一致时“随机”引起
  1. Sub aa()
  2. R = Range("a" & Rows.Count).End(xlUp).Row

  3. arr = Range("a2:f" & R)
  4. brr = YjhSort(arr, "1,2", "1,5", "R,-5;1;2")    '学科分班名
  5. Range("h2").Resize(UBound(brr), UBound(brr, 2)) = brr
  6. brr = YjhSort(arr, "1,2,2,2", "1,5,6,4", "R,0-5;1;1")    '学科分班序
  7. Range("j2").Resize(UBound(brr), UBound(brr, 2)) = brr

  8. brr = YjhSort(arr, "-1", "5", "R,0--5;1;12")     '学科分级名
  9. Range("i2").Resize(UBound(brr), UBound(brr, 2)) = brr
  10. brr = YjhSort(arr, "-1,-1,-1", "5,6,4", "R,0--5;1;11")     '学科分级序
  11. Range("k2").Resize(UBound(brr), UBound(brr, 2)) = brr

  12. brr = YjhSort(arr, "1,2", "1,5", "R,5;1;2")    '学科分班倒名
  13. Range("L2").Resize(UBound(brr), UBound(brr, 2)) = brr
  14. brr = YjhSort(arr, "1,1,1,1", "1,5,6,4", "R,0-5;1;1")    '学科分班倒序
  15. Range("n2").Resize(UBound(brr), UBound(brr, 2)) = brr

  16. brr = YjhSort(arr, "1", "5", "R,0-5;1;12")     '学科分级倒名
  17. Range("m2").Resize(UBound(brr), UBound(brr, 2)) = brr
  18. brr = YjhSort(arr, "1,1,1", "5,6,4", "R,0-5;1;11")     '学科分级倒序
  19. Range("o2").Resize(UBound(brr), UBound(brr, 2)) = brr

  20. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2014-12-30 10:21 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
班 级  总 分  学科分   折算分   倒 序
 6   131   51  13151   6
 6   112   51  11251   7
 
 15  142   51  14251   5
 15  123   51  12351   6

学科分〔由低而高〕排序,依您如上的模擬,学科分相同時,〔总分〕反而〔高的〕排在前面,為何?
另,為何強制以数组來寫排序,而不使用EXCEL基本的排序搭配公式?

有收到訊息,但因要求以数組寫成,難度太高,只能看看,幫不上忙!
 

TA的精华主题

TA的得分主题

发表于 2014-12-30 10:34 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
関于〔折算分〕= 总分*100+学科分
例一:
总 分  学科分   折算分
219  119  22019
220   19  22019
此兩者〔折算分〕相同,是否合理?
 
例二:
总 分  学科分   折算分
219  119  22019
220   15  22015
〔总分〕高的,反而〔折算分〕較低,是否合理?

若改成:总分*1000+学科分 是否更加合理?
总 分  学科分   折算分
219  119  219119
220   19  220019
220   15  220015

 


TA的精华主题

TA的得分主题

 楼主| 发表于 2014-12-30 10:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
准提部林 发表于 2014-12-30 10:34
関于〔折算分〕= 总分*100+学科分
例一:
总 分  学科分   折算分

确实是总分*1000+学科分,更合理

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-1-4 09:57 | 显示全部楼层
再次求助,原始表变目标表

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-1-7 15:21 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 yzyyyyyyy 于 2015-1-7 15:27 编辑
yjh_27 发表于 2014-12-29 20:53
1  学科分班名序,学科分班倒名序,不正确已改正
2  与你结果不一致,是因为 学科分,折算分,总分 都一 ...


大师,原始表中的数组arr为930行,6列,能否定义目标数组brr(),让数组brr()930行,30列。
原始表
1        班级
2        姓名
3        类型
4        总分
5        学科分
6        折算分

目标表
1        班级
2        姓名
3        类型
4        总分
5        学科分
6        折算分
7        学科分班名
8        学科分级名
9        学科分班序
10        学科分级序
11        学科分班倒名
12        学科分级倒名
13        学科分班倒序
14        学科分级倒序
15        总分班名
16        总分级名
17        总分班序
18        总分级序
19        总分班倒名
20        总分级倒名
21        总分班倒序
22        总分级倒序
23        折算分班名
24        折算分级名
25        折算分班序
26        折算分级序
27        折算分班倒名
28        折算分级倒名
29        折算分班倒序
30        折算分级倒序
然后再一次写入目标表
  1. Sub aa() '学科分
  2. R = Range("a" & Rows.Count).End(xlUp).Row
  3. arr = Range("a2:f" & R)
  4. brr = YjhSort(arr, "1,2", "1,5", "R,-5;1;2")    '学科分班名
  5. Range("h2").Resize(UBound(brr), UBound(brr, 2)) = brr
  6. brr = YjhSort(arr, "1,2,2,2", "1,5,6,4", "R,0-5;1;1")    '学科分班序
  7. Range("j2").Resize(UBound(brr), UBound(brr, 2)) = brr
  8. brr = YjhSort(arr, "-1", "5", "R,0-5;1;12")     '学科分级名
  9. Range("i2").Resize(UBound(brr), UBound(brr, 2)) = brr
  10. brr = YjhSort(arr, "-1,-1,-1", "5,6,4", "R,0-5;1;11")     '学科分级序
  11. Range("k2").Resize(UBound(brr), UBound(brr, 2)) = brr
  12. brr = YjhSort(arr, "1,2", "1,5", "R,5;1;2")    '学科分班倒名
  13. Range("L2").Resize(UBound(brr), UBound(brr, 2)) = brr
  14. brr = YjhSort(arr, "1,1,1,1", "1,5,6,4", "R,0-5;1;1")    '学科分班倒序
  15. Range("n2").Resize(UBound(brr), UBound(brr, 2)) = brr
  16. brr = YjhSort(arr, "1", "5", "R,0-5;1;12")     '学科分级倒名
  17. Range("m2").Resize(UBound(brr), UBound(brr, 2)) = brr
  18. brr = YjhSort(arr, "1,1,1", "5,6,4", "R,0-5;1;11")     '学科分级倒序
  19. Range("o2").Resize(UBound(brr), UBound(brr, 2)) = brr
  20. End Sub
  21. Sub aa1() '总分
  22. R = Range("a" & Rows.Count).End(xlUp).Row
  23. arr = Range("a2:f" & R)
  24. brr = YjhSort(arr, "1,2", "1,4", "R,-4;1;2")    '学科分班名
  25. Range("h2").Resize(UBound(brr), UBound(brr, 2)) = brr
  26. brr = YjhSort(arr, "1,2,2,2", "1,4,6,4", "R,0-4;1;1")    '学科分班序
  27. Range("j2").Resize(UBound(brr), UBound(brr, 2)) = brr
  28. brr = YjhSort(arr, "-1", "4", "R,0-4;1;12")     '学科分级名
  29. Range("i2").Resize(UBound(brr), UBound(brr, 2)) = brr
  30. brr = YjhSort(arr, "-1,-1,-1", "4,6,4", "R,0-4;1;11")     '学科分级序
  31. Range("k2").Resize(UBound(brr), UBound(brr, 2)) = brr
  32. brr = YjhSort(arr, "1,2", "1,4", "R,4;1;2")    '学科分班倒名
  33. Range("L2").Resize(UBound(brr), UBound(brr, 2)) = brr
  34. brr = YjhSort(arr, "1,1,1,1", "1,4,6,4", "R,0-4;1;1")    '学科分班倒序
  35. Range("n2").Resize(UBound(brr), UBound(brr, 2)) = brr
  36. brr = YjhSort(arr, "1", "4", "R,0-4;1;12")     '学科分级倒名
  37. Range("m2").Resize(UBound(brr), UBound(brr, 2)) = brr
  38. brr = YjhSort(arr, "1,1,1", "4,6,4", "R,0-4;1;11")     '学科分级倒序
  39. Range("o2").Resize(UBound(brr), UBound(brr, 2)) = brr
  40. End Sub
  41. Sub aa2() '折算分
  42. R = Range("a" & Rows.Count).End(xlUp).Row
  43. arr = Range("a2:f" & R)
  44. brr = YjhSort(arr, "1,2", "1,6", "R,-6;1;2")    '学科分班名
  45. Range("h2").Resize(UBound(brr), UBound(brr, 2)) = brr
  46. brr = YjhSort(arr, "1,2,2,2", "1,6,6,6", "R,0-6;1;1")    '学科分班序
  47. Range("j2").Resize(UBound(brr), UBound(brr, 2)) = brr
  48. brr = YjhSort(arr, "-1", "6", "R,0-6;1;12")     '学科分级名
  49. Range("i2").Resize(UBound(brr), UBound(brr, 2)) = brr
  50. brr = YjhSort(arr, "-1,-1,-1", "6,6,6", "R,0-6;1;11")     '学科分级序
  51. Range("k2").Resize(UBound(brr), UBound(brr, 2)) = brr
  52. brr = YjhSort(arr, "1,2", "1,6", "R,6;1;2")    '学科分班倒名
  53. Range("L2").Resize(UBound(brr), UBound(brr, 2)) = brr
  54. brr = YjhSort(arr, "1,1,1,1", "1,6,6,6", "R,0-6;1;1")    '学科分班倒序
  55. Range("n2").Resize(UBound(brr), UBound(brr, 2)) = brr
  56. brr = YjhSort(arr, "1", "6", "R,0-6;1;12")     '学科分级倒名
  57. Range("m2").Resize(UBound(brr), UBound(brr, 2)) = brr
  58. brr = YjhSort(arr, "1,1,1", "6,6,6", "R,0-6;1;11")     '学科分级倒序
  59. Range("o2").Resize(UBound(brr), UBound(brr, 2)) = brr
  60. End Sub
复制代码
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-26 15:30 , Processed in 0.040865 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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