ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[Excel 函数与公式] [第79期]按部门随机选取啦啦队队员(已总结)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-7-25 14:52 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
194字符:
=INDEX(T(OFFSET(B$1,LARGE(ISNA(MATCH(A$2:A$31,IF(COUNTIF(D$1:D1,B$2:B$31),A$2:A$31),))*ROW($1:$30),ROW($1:$30)),)),RANDBETWEEN(1,30-SUM(COUNTIF(A$2:A$31,IF(COUNTIF(D$1:D1,B$2:B$31),A$2:A$31)))))
165字符:
=INDEX(B:B,SMALL(ISNA(MATCH(A$2:A$31,IF(COUNTIF(D$1:D1,B$2:B$31),A$2:A$31),))*ROW($2:$31),RANDBETWEEN(SUM(COUNTIF(A:A,IF(COUNTIF(D$1:D1,B$2:B$31),A$2:A$31)))+1,30)))
159字符(删几个$符):
=INDEX(B:B,SMALL(ISNA(MATCH(A$2:A31,IF(COUNTIF(D$1:D1,B$2:B31),A$2:A31),))*ROW($2:31),RANDBETWEEN(SUM(COUNTIF(A:A,IF(COUNTIF(D$1:D1,B$2:B31),A$2:A31)))+1,30)))

[ 本帖最后由 fjrlgj 于 2011-7-29 13:36 编辑 ]

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-7-25 20:31 | 显示全部楼层
157字符:
=INDEX(B:B,LARGE(ISNA(MATCH(A$2:A$32,IF(COUNTIF(D$1:D1,B$2:B32),A$2:A32),))*ROW($2:$32),RAND()*(30-SUM(COUNTIF(A:A,IF(COUNTIF(D$1:D1,B$2:B31),A$2:A31))))+1))

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-7-26 03:49 | 显示全部楼层
先搞个 246个字符含等号
D2
  1. =INDEX(B:B,LARGE((MMULT(TRANSPOSE(N(T(INDIRECT("A"&COUNTIF(D$1:D1,B$2:B$31)*ROW($1:$30)+1))=TRANSPOSE(A$2:A$31))),ROW($1:$30))=0)*ROW($2:$31),INT(1+RAND()*(30-SUM(N(T(INDIRECT("A"&COUNTIF(D$1:D1,B$2:B$31)*ROW($1:$30)+1))=TRANSPOSE(A$2:A$31)))))))
复制代码
第二关228字符,好险
  1. =INDEX(B:B,LARGE((MMULT(TRANSPOSE(N(T(OFFSET(A$1,COUNTIF(D$1:D1,B$2:B$31)*ROW($1:$30),))=TRANSPOSE(A$2:A$31))),ROW($1:$30))=0)*ROW($2:$31),INT(1+RAND()*(30-COUNT(0/(T(OFFSET(A$1,MATCH(D$1:D1,B$2:B31,),))=TRANSPOSE(A$2:A31)))))))
复制代码
换一种思路246字符长度没什么进展
  1. =INDEX(B:B,LARGE(IF(MATCH(A$1:$A$31,A$1:A$31,)=LARGE((MATCH(A$1:A$31,A$1:A$31,)=ROW($1:$31))*ROW($1:$31),ROW(A1)),ROW($1:$31)),INT(1+RAND()*COUNT(0/(MATCH(A$1:A$31,A$1:A$31,)=LARGE((MATCH(A$1:A$31,A$1:A$31,)=ROW($1:$31))*ROW($1:$31),ROW(A1)))))))
复制代码

[ 本帖最后由 jianbing 于 2011-7-27 02:14 编辑 ]

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-7-26 08:09 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
=INDEX(B:B,MOD(SMALL(COLUMN(A:F)*10^6+IF(A2:A31=T(OFFSET(A1,LARGE((MATCH(A2:A31,A2:A31,)=ROW(1:30))*ROW(1:30),COLUMN(A:F)),)),MID(SUBSTITUTE(RAND()&RAND()&RAND(),"0.",),ROW(1:30),1)*10^4+ROW(2:31),99999),(ROW(1:6)-1)*30+1),10^4))

[ 本帖最后由 hopeson2010 于 2011-7-26 10:19 编辑 ]

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-7-26 11:36 | 显示全部楼层
230字符,思路一:
=INDEX(B:B,SMALL(IF(A$2:A$31=INDEX(A:A,SMALL(IF(MATCH(A$2:A$31,A$2:A$31,)=ROW($1:$30),ROW($2:$31)),ROW(A1))),ROW($2:$31)),INT(RAND()*COUNTIF(A:A,INDEX(A:A,SMALL(IF(MATCH(A$2:A$31,A$2:A$31,)=ROW($1:$30),ROW($2:$31)),ROW(A1)))))+1))
简化为220字符
=INDEX(B:B,SMALL(IF(A$2:A$31=INDEX(A:A,SMALL(IF(MATCH(A$2:A$31,A:A,)=ROW($2:$31),ROW($2:$31)),ROW(A1))),ROW($2:$31)),INT(RAND()*COUNTIF(A:A,INDEX(A:A,SMALL(IF(MATCH(A$2:A$31,A:A,)=ROW($2:$31),ROW($2:$31)),ROW(A1)))))+1))
+++++++++
另外的方法出现的几率不相等,
195字符:(个人感觉 出错几率很小可以忽略不计)
=INDEX(B:B,RIGHT(MAX(((1+MID(SUBSTITUTE(RAND()&RAND()&RAND(),"0.",),ROW($1:$30),1))*(A$2:A$31=INDEX(A:A,SMALL(IF(MATCH(A$2:A$31,A$2:A$31,)=ROW($1:$30),ROW($2:$31)),ROW(A1)))))/1%+ROW($2:$31)),2))

[ 本帖最后由 wangyuhu 于 2011-8-10 11:59 编辑 ]

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-7-27 11:34 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
  1. =INDEX(B:B,SMALL(IF(A$2:A$31=INDEX(A:A,SMALL(IF(MATCH(A$2:A$31,A$2:A$31,)=ROW($1:$30),ROW($2:$31),32),ROW(A1))),ROW($2:$31),32),RANDBETWEEN(1,COUNTIF(A$2:A$31,INDEX(A:A,SMALL(IF(MATCH(A$2:A$31,A$2:A$31,)=ROW($1:$30),ROW($2:$31),32),ROW(A1)))))))
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-7-27 21:41 | 显示全部楼层
公式一(230):
D2=INDEX(B:B,LARGE((MATCH(A$2:A$31,A$2:A$31,)=LARGE((MATCH(A$2:A$31,A$2:A$31,)=ROW($1:$30))*ROW($1:$30),ROW(A1)))*ROW($2:$31),INT(1+RAND()*COUNTIF(A:A,INDEX(A:A,LARGE((MATCH(A$2:A$31,A$2:A$31,)=ROW($1:$30))*ROW($2:$31),ROW(A1)))))))
公式二(224):
D2=INDEX(B:B,LARGE((A$2:A$31=INDEX(A:A,LARGE((MATCH(A$2:A$31,A$2:A$31,)=ROW($1:$30))*ROW($2:$31),ROW(A1))))*ROW($2:$31),INT(1+RAND()*COUNTIF(A:A,INDEX(A:A,LARGE((MATCH(A$2:A$31,A$2:A$31,)=ROW($1:$30))*ROW($2:$31),ROW(A1)))))))
公式三(197):
D2=INDEX(B:B,RIGHT(LARGE(MATCH(A$2:A$31,A$2:A$31,)/1%+ROW($2:$31),1-TRUNC(SUM(-TEXT(MATCH(A$2:A$31,A$2:A$31,)-LARGE((MATCH(A$2:A$31,A$2:A$31,)=ROW($1:$30))*ROW($1:$30),ROW(A1)),"1;!0;"&RAND())))),2))
公式四(172),公式的正确性有待审核:
D2=INDEX(B:B,RIGHT(LARGE((MATCH(A$2:A$31,A$2:A$31,)=ROW($1:$30))*ROW($2:$31)*10^9+(A$2:A$31=TRANSPOSE(A$2:A$31))*(MID(COLUMN(B:AE)*RAND(),4,6)&COLUMN(CX:EA)),ROW()*30-59),2))
公式五(159),公式的正确性有待审核:
D2=INDEX(B:B,RIGHT(MAX(IF(A$2:A$31=INDEX(A:A,LARGE((MATCH(A$2:A$31,A$2:A$31,)=ROW($1:$30))*ROW($2:$31),ROW(A1))),MID(ROW($2:$31)*RAND(),4,9)/1%+ROW($2:$31))),2))

[ 本帖最后由 wddn 于 2011-8-3 11:50 编辑 ]

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-7-28 08:17 | 显示全部楼层
字符数:228
  1. =INDEX(B:B,LARGE((INDEX(A:A,LARGE((MATCH(A$2:A$31,A$2:A$31,)=ROW($1:$30))*ROW($2:$31),ROW(A1)))=A$2:A$31)*ROW($2:$31),INT(RAND()*SUM(N(INDEX(A:A,LARGE((MATCH(A$2:A$31,A$2:A$31,)=ROW($1:$30))*ROW($2:$31),ROW(A1)))=A$2:A$31))+1)))
复制代码

[ 本帖最后由 草民1982111 于 2011-7-30 11:31 编辑 ]

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-7-28 08:58 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
D2
  1. =INDEX(B:B,LARGE(IF(A$2:A$31=INDEX(A:A,LARGE((MATCH(A$2:A$31,A$2:A$31,)=ROW($1:$30))*ROW($2:$31),ROW(A1))),ROW($2:$31)),RANDBETWEEN(1,COUNTIF(A:A,INDEX(A:A,LARGE((MATCH(A$2:A$31,A$2:A$31,)=ROW($1:$30))*ROW($2:$31),ROW(A1)))))))
复制代码
數組 下拉

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-7-30 08:55 | 显示全部楼层
=INDEX(B:B,RIGHT(LARGE(COUNTIF(A$2:A$31,A$2:A$31)/1%%+MATCH(A$2:A$31,A:A,)/1%+ROW($2:$31),INT(RAND()*LARGE(IF(MATCH(A$2:A$31,A:A,)=ROW($2:$31),COUNTIF(A$2:A$31,A$2:A$31),0),ROW(1:1))+1)+SUM(LARGE(IF(MATCH(A$2:A$31,A:A,)=ROW($2:$31),COUNTIF(A$2:A$31,A$2:A$31),0),MOD(5+ROW($1:1),7)+1))),2))
数组公式

评分

1

查看全部评分

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

本版积分规则

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

GMT+8, 2024-4-16 15:11 , Processed in 0.051149 second(s), 22 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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