ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 名次顺位排序法

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-8-11 16:59 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
EXCEL江湖 发表于 2014-8-10 21:04
谢谢香川群子多次帮助,我也要加强学习,争取也能象您一样帮助更多的人!

自定义数组函数
排名部分套用香川群子
  1. Function swsx(rng)
  2. Dim fen(), ptj(), mc()

  3. arr = rng
  4. ms = UBound(arr, 1)
  5. ps = UBound(arr, 2)
  6. ReDim fen(1 To ms, 1 To 2)
  7. ReDim mc(1 To ms, 1 To 1)

  8. For i = 1 To ms
  9.     ReDim ptj(1 To ms)
  10.     For j = 1 To ps
  11.         ptj(arr(i, j)) = ptj(arr(i, j)) + 1
  12.     Next
  13.     For j = 1 To ms
  14.         If ptj(j) > 0 Then
  15.             fen(i, 1) = fen(i, 1) + (2 ^ (ms - j)) * (2 ^ ptj(j))
  16.             fen(i, 2) = i
  17.         End If
  18.     Next
  19. Next

  20. '下面是香川改进冒泡算法排序
  21.     For i = 1 To ms
  22.         s = fen(i, 1): t = fen(i, 2)
  23.         For j = i + 1 To ms
  24.             If fen(j, 1) > s Then s = fen(j, 1): t = fen(j, 2): r = j
  25.         Next
  26.    
  27.         If r Then
  28.             fen(r, 1) = fen(i, 1): fen(i, 1) = s
  29.             fen(r, 2) = fen(i, 2): fen(i, 2) = t
  30.             r = 0
  31.         End If
  32.     Next
  33. '排序完成后 重新整理得到正确的名次结果
  34. For i = 1 To ms
  35.     mc(fen(i, 2), 1) = i
  36. Next

  37. swsx = mc

  38. End Function
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-8-11 17:27 | 显示全部楼层
感谢yjh_27的帮助!如何进行运用。
香川群子老师算法非常高深。刚研究了一会香川群子老师的代码,和我查阅的资料的另一个算法(日式顺位排名法)极度相似。

TA的精华主题

TA的得分主题

发表于 2014-8-11 17:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
EXCEL江湖 发表于 2014-8-11 17:27
感谢yjh_27的帮助!如何进行运用。
香川群子老师算法非常高深。刚研究了一会香川群子老师的代码,和我查阅 ...

参见附件。

单项顺位排序.rar

12.43 KB, 下载次数: 20

TA的精华主题

TA的得分主题

发表于 2014-8-11 17:52 | 显示全部楼层
EXCEL江湖 发表于 2014-8-11 17:27
感谢yjh_27的帮助!如何进行运用。
香川群子老师算法非常高深。刚研究了一会香川群子老师的代码,和我查阅 ...

我的评分简单
末名得1分,名次每前进1,翻1倍,倒2名 2分 , 倒3名 4分
每多1名裁判再翻1倍

TA的精华主题

TA的得分主题

发表于 2014-8-11 18:32 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
yjh_27 发表于 2014-8-11 17:52
我的评分简单
末名得1分,名次每前进1,翻1倍,倒2名 2分 , 倒3名 4分
每多1名裁判再翻1倍

呵呵,按你的规则排名结果不符合楼主规则的要求。

…………
规则我已经整理过了,见6楼。


TA的精华主题

TA的得分主题

 楼主| 发表于 2014-8-11 18:47 | 显示全部楼层
单项规则香川群子老师的非常准确,如果把单项成绩计入到总成绩,则规则又会有些变化,还请香川群子老师帮助!再次感谢!评分规则如附表! 成绩计算.rar (15.55 KB, 下载次数: 13)
在之前的单项规则上,处于并列成绩的计分为两成绩之和除2计入总成绩。

TA的精华主题

TA的得分主题

发表于 2014-8-12 14:59 | 显示全部楼层
严格按顺序位排序。

已处理并列名次。
如不处理  swsx = mc1 即可。

单项顺位排序.rar

22.05 KB, 下载次数: 17

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-8-12 15:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
感谢yjh_27老师的帮助,不知裁判人数增加和背号增加时有没考虑,另能否帮忙看下多项规则!一会回家了再测试!谢谢您的帮忙!

TA的精华主题

TA的得分主题

发表于 2014-8-12 15:24 | 显示全部楼层
EXCEL江湖 发表于 2014-8-11 18:47
单项规则香川群子老师的非常准确,如果把单项成绩计入到总成绩,则规则又会有些变化,还请香川群子老师帮助 ...

单项成绩  项目--5 排名 你确定吗?

26L附件计算为:
6
5
1.5
3
1.5
4

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-8-12 16:19 | 显示全部楼层
您的计算结果是对的,我的文件上错了,辛苦您了!万分感谢!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-9-19 09:22 , Processed in 0.033635 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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