ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[Excel 函数与公式] [开_149]中国式评分排名问题(已总结)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2014-11-20 18:19 | 显示全部楼层
G24数组
=COUNT(1/FREQUENCY(MAX((B$10:B$34=F24)*C$10:C$34)+ROW(A:A),MOD(LOOKUP((A$10:A$34+1)*200-1,SMALL(C$10:C$34+MATCH(B$10:B$34,B$10:B$34,)*200,A$10:A$34)),200)))
下拉
因为兼容性提示说引用整列可能报错,不行就下面这个吧,多几个字
=COUNT(1/FREQUENCY(MAX((B$10:B$34=F30)*C$10:C$34)+ROW($1:$150),MOD(LOOKUP((A$10:A$34+1)*200-1,SMALL(C$10:C$34+MATCH(B$10:B$34,B$10:B$34,)*200,A$10:A$34)),200)))

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-11-21 11:03 | 显示全部楼层
本帖最后由 ykqrs 于 2014-11-21 16:06 编辑
  1. =MATCH(MAX((B$10:B$34=F24)*C$10:C$34),LARGE(IF(FREQUENCY(MOD(LARGE((B$10:B$34=TRANSPOSE(B$10:B$34))*C$10:C$34+COLUMN(A:Y)*1000,A$10:A$34*25-24),1000),ROW($1:$151)-1),ROW($1:$152)-1,),A$10:A$34),)
复制代码
太难,占位


35行可用,再省几个,没掉下180,玩不了了,累计用时将近4小时。。。
  1. =MATCH(MAX((B$10:B$34=F24)*C$10:C$34),LARGE((FREQUENCY(MOD(LARGE((B$10:B$34=TRANSPOSE(B$10:B$34))*C$10:C$34+COLUMN(A:Y)*1000,A$10:A$34*25-24),1000),C$10:C$34)>0)*C$10:C$35,A$10:A$34),)
复制代码

就这么地吧,头痛

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-11-21 11:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 jsxjd 于 2014-11-21 11:58 编辑

常规思路,去重顺序排列,182 Chars:
  1. =MATCH(MAX((B$10:B$34=F24)*C$10:C$34),LARGE((FREQUENCY(MOD(LARGE(200*COLUMN(A:Y)+(B$10:B$34=TRANSPOSE(B$10:B$34))*C$10:C$34,A$10:A$34*25-24),200),C$10:C$34)>0)*C$10:C$35,A$10:A$34),)
复制代码
对上述公式“精雕细琢”的结果是166 Chars,而且似乎已经没有潜力了:
  1. =SUM(N(FREQUENCY(MOD(LARGE(200*COLUMN(A:Y)+(B$10:B$34=TRANSPOSE(B$10:B$34))*C$10:C$34,A$10:A$34*25-24),200),C$10:C$34)*(C$10:C$35>=MAX((B$10:B$34=F24)*C$10:C$34))>0))
复制代码
不得不改变思路,158 Chars,没有引用第 35 行
  1. =SUM(N(FREQUENCY(MOD(LARGE(200*COLUMN(A:Y)+(B$10:B$34=TRANSPOSE(B$10:B$34))*C$10:C$34,A$10:A$34*25-24),200)-MAX((B$10:B$34=F24)*C$10:C$34),COLUMN(A:EU)-1)>0))
复制代码

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-11-21 23:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 aoe1981 于 2014-11-24 10:08 编辑

现在恰好160字符了,只是不能够向下拖拽公式的,因为都是相对引用了……不知算不算取巧,不过这个您可没有事先明确要求哦!
  1. =SUM(N(FREQUENCY((MMULT((B10:B34=TRANSPOSE(B10:B34))*(C10:C34<=TRANSPOSE(C10:C34)),A10:A34^0)=1)*C10:C34,ROW(INDIRECT(MAX((B10:B34=F24)*C10:C34)+1&":151")))>0))
复制代码
单元格数组公式。如果加上绝对引用的话,是176字符:
  1. =SUM(N(FREQUENCY((MMULT((B$10:B$34=TRANSPOSE(B$10:B$34))*(C$10:C$34<=TRANSPOSE(C$10:C$34)),A$10:A$34^0)=1)*C$10:C$34,ROW(INDIRECT(MAX((B$10:B$34=F24)*C$10:C$34)+1&":150")))>0))
复制代码
该思路下可能到极限了……再要缩的话,估计得重新寻找思路了……





思路决定出路,换个思路,果然短了许多:
  1. =COUNT(MATCH(ROW($1:151)+MAX((B$10:B$34=F24)*C$10:C$34)-1,MOD(SMALL((B$10:B$34=TRANSPOSE(B$10:B$34))*C$10:C$34+COLUMN(A:Y)*1000,A$10:A$34*25),1000),))
复制代码

这个现在恰好是160字符(部分沿用第一条思路):
  1. =COUNT(MATCH(ROW($1:151)+MAX((B$10:B$34=F24)*C$10:C$34)-1,(MMULT((B$10:B$34=TRANSPOSE(B$10:B$34))*(C$10:C$34<=TRANSPOSE(C$10:C$34)),A$10:A$34^0)=1)*C$10:C$34,))
复制代码

最后一条还可以少两个字符:
  1. =COUNT(MATCH(ROW($1:151)+MAX((B$10:B34=F24)*C$10:C34)-1,(MMULT((B$10:B$34=TRANSPOSE(B$10:B$34))*(C$10:C$34<=TRANSPOSE(C$10:C$34)),A$10:A$34^0)=1)*C$10:C$34,))
复制代码


评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-11-22 14:43 | 显示全部楼层
本帖最后由 CY7CY7CY7 于 2014-11-24 13:26 编辑

=SUM(N(FREQUENCY(--(TEXT(LOG10(MMULT(COLUMN(A:Y)^0,10^((B$10:B$34=TRANSPOSE(B$10:B$34))*C$10:C$34)))-MAX((F24=B$10:B$34)*C$10:C$34),"0;!0")),ROW($1:$151)-1)>0))
一夜没睡着~~~
=COUNT(1/FREQUENCY(--TEXT(LOG(MMULT(COLUMN(A:Y)^0,(B$10:B$34=TRANSPOSE(B$10:B$34))*9^C$10:C$34),9)-MAX((F24=B$10:B$34)*C$10:C$34),"0;!0"),ROW(A:A)-1))
瘦身到150字节,再想估计我就要内存溢出了



补充内容 (2014-11-27 11:44):
=COUNT(1/MATCH(ROW(A:A)-1,--TEXT(LOG(MMULT(COLUMN(A:Y)^0,(B$10:B$34=TRANSPOSE(B$10:B$34))*9^C$10:C$34),9)-MAX((F24=B$10:B$34)*C$10:C$34),"0;!0"),))
147字节,做这道题学习了FREQUENCY,最后还是没用上

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-11-22 16:38 | 显示全部楼层
本帖最后由 delete_007 于 2014-11-23 09:21 编辑
  1. =COUNT(MATCH(ROW(A:A),RIGHT(LOOKUP(CODE(B$10:B$34)+1,SMALL(CODE(B$10:B$34)+C$10:C$34%%,ROW(A:A)))/1%%,3)-MAX((F23=B$10:B34)*C$10:C34),),)
复制代码
137字符。CODE函数遇到同姓人员会出错。换下面的方法,可以避免。
  1. =COUNT(MATCH(ROW(A:A),RIGHT(SMALL((B$10:B$34=TRANSPOSE(B$10:B$34))*C$10:C$34+COLUMN(A:Y)/1%%,ROW(A:A)*25),3)-MAX((B$10:B34=F23)*C$10:C34),),)
复制代码
这个需要141字符。


评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-11-22 16:44 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
惭愧,只能用自定义函数做了个。
就算是支持老师下吧!

星光--再议中国式排名_1.rar

33.58 KB, 下载次数: 20

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-11-24 15:41 | 显示全部楼层
好难的题,凑合一下:
  1. =SUM(N(MAX((B$10:B$34=F24)*C$10:C$34)<(FREQUENCY(A$10:A$35,MATCH(B$10:B$34,B$10:B$34,)+0.15-C$10:C$34%%)*FREQUENCY(C$10:C$34,C$10:C$34)>0)*C$10:C$35))+1
复制代码
,下拉公式

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-11-24 15:45 | 显示全部楼层
好久没来了,这么难的题才1分,应该是正式竞赛题哦!:)。先想了个臭长的。坐等高手!

含等号152字符
G24=COUNT(MATCH(MAX((B$10:B$34=F24)*C$10:C$34)+COLUMN(A:ET)-1,MOD(SMALL((TRANSPOSE(B$10:B$34)=B$10:B$34)*C$10:C$34+COLUMN(A:Y)/1%%,ROW($1:$25)*25),10^4),))

星光--再议中国式排名zm0115.zip (28.7 KB, 下载次数: 17)

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-11-24 21:09 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
都不会写公式了,好歹凑了个。还不晓得符不符合题目要求:
  1. =COUNT(MATCH(ROW($1:$150),MOD(SMALL((B$10:B$34=TRANSPOSE(B$10:B$34))*C$10:C$34+COLUMN(A:Y)*200,A$10:A$34*25),200)-MAX((B$10:B$34=F24)*C$10:C$34),))+1
复制代码

点评

w姐出手了,又有妙招,论坛热闹了。  发表于 2014-11-25 16:04

评分

2

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 03:45 , Processed in 0.057630 second(s), 21 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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