ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[Excel 函数与公式] [53期]一道排序函数练习题供大家练练手 -------已结

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-10-21 12:28 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
因为本人接下来两个星期将会很忙,没时间结题,所以提前了。对于大家的不满,完全理解,表示十二万分的歉意。
总结:  
   这次题目对字符数还是放的很宽的,只要不出错都能得3分,理论上最多40个单元格就足够了,所以只要在这些单元格内不出错都是正确的,syz105729913兄最可惜了。大家解题方法是通过构造二维数组,rongjun老师的答案最简洁,结合mmult函数还能简化些,这些大家交给解决了,我就不献丑了。我的答案
=INDEX(A:A,MOD(SMALL((20-COUNTIF(A:A,A$1:A$20))*10^4+COUNTIF(A:A,"<="&A$1:A$20)*100+TEXT({1,0,0}*ROW($1:$20)+(MATCH(A$1:A$20,A$1:A$20,)=ROW($1:$20))*(COUNTIF(A:A,A$1:A$20)>{"a",0,1})*99,"[=0]"&10^6-1),ROW()),100))&""
   这次题目其实改编自Et的测验题,对一些没见过此题的会员会不公平,在此表示歉意。起初这题只是好玩而已,当时发到函数版时,生意冷清,很快就沉下去了,在此多谢大理版主的鼎力支持,转到竞赛区,还得了两分技术分。前几天,帮一个同事做准考证时,发现了用处,题目原意是利用邮件合并打印,但是一张纸只能打印6个证,因此各个学校的人数是6的倍数才方便打印,否则有几张纸裁剪了,就用加空格的办法加到一个学校考生数是6的倍数,附件如下,有兴趣的家人,根据楼上的方法,当作课后练习。



[ 本帖最后由 冻豆腐 于 2009-10-21 16:32 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2009-10-21 12:36 | 显示全部楼层
呵呵,谢谢lz
rongjun老师的题目我也看到了,if({1,0,0}......)
慢慢学习
再次感谢

TA的精华主题

TA的得分主题

发表于 2009-10-21 13:01 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

回复 11楼 冻豆腐 的帖子

向以上各位学习。
初略看了一下
楼主的text({1,0,0}与Xcd的if({1,0,0}个人觉得耳目一新;chrisfang的第一个公式中的{0,1},if({1,0},配合的天衣无缝;rongjun的IF({1,0},-(COUNTIF(OFFSET(A1,,,ROW(1:20)),A1:A20)>2)*10^6-1,ROW(1:20))
尤其是countif前的-号,简直是神来之笔,可以省去很多判断的麻烦;jyhxr的前面几个也提供了也提供了一些很好的思路。
再次向以上诸位大师学习。

TA的精华主题

TA的得分主题

发表于 2009-10-22 07:34 | 显示全部楼层
=INDEX(A:A,RIGHT(LARGE(COUNTIF(A1:A20,A1:A20)*10^4+COUNTIF(A1:A20,">="&A1:A20)/1%+IF({1,0,0},ROW(1:20),IF(MATCH(A1:A20,A1:A20,)=ROW(1:20),IF(COUNTIF(A1:A20,A1:A20)>1,{0,0.99,0.99},{0,0.99,-999999}),-999999)),ROW()),2))&""
我的公式再加个9就正确了,真是一字之差差之万里

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-10-22 08:19 | 显示全部楼层

回复 14楼 syz105729913 的帖子

不要太介意,人总在错误中学习成长的。

TA的精华主题

TA的得分主题

发表于 2009-10-29 18:18 | 显示全部楼层
发了半个多月了,没解决!
占位学习!

[ 本帖最后由 fmlshq 于 2009-11-20 12:37 编辑 ]

TA的精华主题

TA的得分主题

发表于 2010-2-24 17:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
高手真多,受教了。

TA的精华主题

TA的得分主题

发表于 2010-1-18 13:29 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-2-26 13:21 | 显示全部楼层
看高手做题真爽,希望自己有一天也达到这个水平

TA的精华主题

TA的得分主题

发表于 2010-12-28 17:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
=INDEX(A:A,RIGHT(LARGE(IF({1,1,0},IF({1,0},1,COUNTIF(A:A,A$1:A$20)>1)*(MATCH(A$1:A$20,A:A,)=ROW($1:$20))*(COUNTIF(A:A,A$1:A$20)*10^9+COUNTIF(A:A,">="&A$1:A$20)*10^6)+4^8,COUNTIF(A:A,A$1:A$20)*10^9+COUNTIF(A:A,">="&A$1:A$20)*10^6+10^5+ROW($1:$20)),ROW()),5))&""
昨天刚学会的countif的文本比较,有人推荐上来看看这个的
公式纯粹是为了追求字符的,速度很慢~~~~
=INDEX(A:A,RIGHT(LARGE(IF({1,1,0},IF({1,0},1,COUNTIF(A$1:A$20,A$1:A$20)>1)*(MATCH(A$1:A$20,A$1:A$20,)=ROW($1:$20))*(COUNTIF(A$1:A$20,A$1:A$20)*10^9+COUNTIF(A$1:A$20,">="&A$1:A$20)*10^6)+4^8,COUNTIF(A$1:A$20,A$1:A$20)*10^9+COUNTIF(A$1:A$20,">="&A$1:A$20)*10^6+10^5+ROW($1:$20)),ROW()),5))&""
这个公式是没有全列引用的,速度就比较快了~~~
跟各位比起来,发觉构造能力还是很差啊~~~

[ 本帖最后由 鬼狐 于 2010-12-28 17:22 编辑 ]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-3 02:18 , Processed in 0.038443 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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