ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[Excel 函数与公式] [第113期]满园春色关得住:花草按指定数量随机分布.[已结]

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-10-10 22:16 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
[ 本帖最后由 willin2000 于 2015-11-30 18:59 编辑 ]\n\n[ 本帖最后由 willin2000 于 2015-11-30 18:58 编辑 ]\n\n
1.截止日期:2015年11月30日.
2.只有楼主和回帖者能看到自己的帖子内容.答题
3.答题直接回复(公式或附件)即可,
4.回复第一行请写"我的答案是:",以方便查阅.
5.如果没注明哪个是最终答案,则以最后的公式为准(即使前面有更好的答案).
没有特殊说明的话,普通公式,数组右拉下拉公式,区域公式都是可以的. 本题也是可以的.

通知:
取消原答题要求中的03版限制!!!,  即取消答题要求3.
但如使用了03版不能用的函数,公式长度不能超过268个字符,否则不得分.



特别提醒:

1.答题要求4就是当A,B列有更多行时,比如到A23等等,修改你公式里的参数或常数,公式还能得出正确结果.
2.附加题没有03版限制,即可以使用07版函数.











单选投票, 共有 12 人参与投票 查看投票参与人

投票已经结束

75.00% (9)
8.33% (1)
8.33% (1)
8.33% (1)
0.00% (0)
您所在的用户组没有投票权限

本帖子中包含更多资源

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

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-10-11 18:28 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 willin2000 于 2015-10-19 14:54 编辑

我的答案是:

143字符
03版本:数组公式,写在F1,右拉下拉
  1. =INDEX($A:$A,SMALL(9*($B$2:$B4-COUNTIF(F2:F$8,$A$2:$A4)-COUNTIF(G:Q,$A$2:$A4)<COLUMN($A:DA))+ROW($2:4),INT(RAND()*(ROW()+7*COLUMN()-42))+1))&""
复制代码


07版本:区域数组公式
=INDEX(A:A,LOOKUP(MOD(SMALL(RANDBETWEEN(0^ROW(1:77),99)/1%+ROW(1:77),ROW()+7*COLUMN()-42),100)-1,MMULT(N(ROW(1:4)>COLUMN(A:C)),B2:B4),ROW(2:5)))&""
COLUMN(A:C)可以化为{1,2,3}
143字符
  1. =INDEX(A:A,LOOKUP(MOD(SMALL(RANDBETWEEN(0^ROW(1:77),99)/1%+ROW(1:77),ROW()+7*COLUMN()-42),100)-1,MMULT(N(ROW(1:4)>COLUMN(A:C)),B2:B4),ROW(2:5)))&""
复制代码


75字符,附加题的公式
  1. =MMULT(IFERROR(SMALL(RANDBETWEEN({0;0},15),{0,1;1,2;2,3}),{0,15}),{-1;1})+5
复制代码

85字符,通用易改就这个
  1. =MMULT(IFERROR(SMALL(RANDBETWEEN(0^ROW(1:2),15),ROW(1:3)-{1,0}),{0,15}),{-1;1})+5
复制代码

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-10-12 16:35 | 显示全部楼层
本帖最后由 wcymiss 于 2015-10-15 08:28 编辑

我的答案是:
主题:
03版本单元格右拉下拉公式:(142字符)
  1. =INDEX($A:$A,SMALL(($B$2:$B4-COUNTIF($E1:E1,$A$2:$A4)-COUNTIF($F2:P$8,$A$2:$A4)<COLUMN($A:BY))*9+ROW($2:4),RAND()*(ROW()*11+6-COLUMN())+1))&""
复制代码

07版本的区域数组公式:(128字符)
  1. =INDEX(A:A,SMALL((B2:B4<COLUMN(A:BX))*5+{2;3;4},MOD(SMALL(RANDBETWEEN(1^ROW(1:77),99)*99+ROW(1:77),ROW()*11-COLUMN()+6),99)))&""
复制代码

附加题:(61字符)B2:B4区域数组;
  1. =MMULT(N(RANDBETWEEN(COLUMN(A:O)^0,3)={1;2;3}),ROW(1:15)^0)+5
复制代码

评分

5

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-10-13 09:15 | 显示全部楼层
本帖最后由 丢丢表格 于 2015-11-26 21:19 编辑
  1. 250字   F1=LOOKUP(RAND()*(ROW()*11+COLUMN()-16),MMULT(N(COLUMN($A:$D)<ROW($2:$5)),SUMIF($A:$A,$A$1:$A$4,$B:$B)-COUNTIF($F2:$P$8,$A$1:$A$4)-COUNTIF(G1:$Q1,$A$1:$A$4))/(TEXT($B$2:$B$5,"0;;9")-COUNTIF($F2:$P$8,$A$2:$A$5)-COUNTIF(G1:$Q1,$A$2:$A$5)>0),$A$2:$A$5)&""
复制代码
  1. 186字  F1=INDEX($A:$A,SMALL(--MID(REPT(RIGHT(100+ROW($2:$4),2),$B$2:$B$4-COUNTIF($F2:$P$8,$A$2:$A$4)-COUNTIF(G1:$Q1,$A$2:$A$4))&REPT(9,999),COLUMN(1:1)*2-1,2),1+RAND()*(ROW()*11+COLUMN()-16)))&""
复制代码
  1. 答案  147字  =INDEX($A:$A,SMALL(($B$2:$B$4-COUNTIF($F2:$P$8,$A$2:$A$4)-COUNTIF(G1:$Q1,$A$2:$A$4)<COLUMN(1:1))*99+ROW($2:$4),1+RAND()*(ROW()*11+COLUMN()-16)))&""
复制代码


   要是 A  列用正常的字母就好解些。。。

B2   58字
  1. 答案 =IF(A2=$A$4,30-SUM(B$1:B1),INT(5+(15-SUM(B$1:B1))*RAND()))
复制代码

评分

8

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-10-13 13:49 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 象山海鲜 于 2015-11-11 00:24 编辑

主题    138字符
  1. =INDEX($A:$A,SMALL(($B$2:$B4-COUNTIF(F2:F8,$A$2:$A4)-COUNTIF($E:E,$A$2:$A4)<COLUMN(1:1))/1%+ROW($2:4),(112-COLUMN()*7+ROW())*RAND()+1))&""
复制代码
***********************************
2015-10-16 12:00  更新
取消2003版限制
132字符
区域数组公式:
  1. =INDEX(A:A,SMALL((B2:B4<COLUMN(1:1))/1%+ROW(2:4),RIGHT(SMALL(RANDBETWEEN(1,9^9+ROW(1:77)%)/1%+ROW(1:77),COLUMN()*7+ROW()-42),2)))&""
复制代码
附加题
48字符
B2:b4区域数组公式:
  1. =FREQUENCY(RANDBETWEEN(0,14+ROW(1:15)%),{4,9})+5
复制代码

*************************************************
2015-11-711 0:21 更新
答案为:
区域数组公式  130字符
  1. =INDEX(A:A,SMALL((B2:B4<COLUMN(1:1))/1%+ROW(2:4),RIGHT(SMALL(RANDBETWEEN(ROW(1:77)%,9^9)/1%+ROW(1:77),COLUMN()*7+ROW()-42),2)))&""
复制代码
附加题
区域数组公式  47字符
  1. =FREQUENCY(RANDBETWEEN(ROW(1:15)%,15),{5,10})+5
复制代码








评分

9

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-10-13 14:42 | 显示全部楼层
本帖最后由 willin2000 于 2015-10-15 23:27 编辑

法1:INDEX(A:A,RIGHT(SMALL(RANDBETWEEN((ROW()+COLUMN())^0,77)*10+SMALL(IF(B2:B4>=COLUMN(A:BY),{2;3;4},9),ROW()*11+COLUMN()-16),ROW()*11+COLUMN()-16)))&""
简化下:
INDEX(A:A,RIGHT((SMALL(RANDBETWEEN(ROW(1:77)^0,77)*10+SMALL((B2:B4<COLUMN(A:BY))*5+{2;3;4},ROW(1:77)),ROW()*11+COLUMN()-16))))&""

再简:INDEX(A:A,RIGHT((SMALL(RANDBETWEEN(ROW(1:77)^0,77)+SMALL((B2:B4<COLUMN(A:BY))*5+{2;3;4},ROW(1:77))%,ROW()*11+COLUMN()-16))))&""
最终:
  1. INDEX(A:A,RIGHT(SMALL(RANDBETWEEN(ROW(1:77)^0,77)+SMALL(5^(B2:B4<COLUMN(1:1))+{1;2;3},ROW(1:77))%,ROW()+7*COLUMN()-42)))&""
复制代码

附加:MMULT(N(RANDBETWEEN(COLUMN(A:O)^0,3)={1;2;3}),ROW(1:15)^0)+5





评分

9

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-10-13 17:52 | 显示全部楼层
本帖最后由 willin2000 于 2015-11-27 13:21 编辑
  1. =INDEX(MID(REPT(A3,B3)&REPT(A2,B2)&REPT(A4,B4),ROW(1:77),1),RIGHT(SMALL(RANDBETWEEN(1,99+0*ROW(1:77))/1%+ROW(1:77),ROW(1:7)+(COLUMN(A:K)-1)*7),2))
复制代码


露个脸 混个脸熟{:soso_e106:}

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-10-14 09:52 | 显示全部楼层
本帖最后由 cmxxccxx 于 2015-10-16 09:45 编辑

F1数组右拉下拉
  1. =INDEX($A:$A,SMALL((COLUMN($A:$BY)>$B$2:$B$4-COUNTIF(INDIRECT("R[-"&ROW()-(ROW()>1)&"]C6:R[-1]C16",),$A$2:$A$4)-COUNTIF($E1:E1,$A$2:$A$4))/1%+ROW($2:$4),INT(RAND()*(94-ROW()*11-COLUMN()))+1))&""
复制代码
补充:压缩到181=INDEX($A:$A,SMALL((COLUMN(1:1)>$B$2:$B$4-IF(ROW()>1,COUNTIF(OFFSET($F$1,,,ROW()-1,11),$A$2:$A$4))-COUNTIF($E1:E1,$A$2:$A$4))/1%+ROW($2:$4),INT(RAND()*(94-ROW()*11-COLUMN()))+1))&""


附加:
B2下拉
  1. =IF(ROW()>3,30-SUM(B$1:B1),RANDBETWEEN(5,MIN(20,25-SUM(B$1:B1))))
复制代码
或B2:b4区域数组
  1. =FREQUENCY(RANDBETWEEN(1,15*ROW(1:15)^0),{5,10})+5
复制代码



本帖子中包含更多资源

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

x

评分

6

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-10-15 09:07 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2015-10-15 10:03 | 显示全部楼层
本帖最后由 chunlin1wang 于 2015-10-20 09:43 编辑

我的答案
  1. =OFFSET($A$1,MATCH(INT(RAND()*(120-ROW()-COLUMN()*7)),MMULT(N(ROW($1:$4)>COLUMN($A:$C)),$B$2:$B$4-COUNTIF($E$1:E$7,$A$2:$A$4)-COUNTIF(INDIRECT("R[-"&ROW()-(ROW()>1)&"]c:R[-1]c",),$A$2:$A$4))),)&""
复制代码

非03版
  1. =OFFSET($A$1,MATCH(INT(RAND()*(120-ROW()-COLUMN()*7)),MMULT(N(ROW($1:$4)>COLUMN($A:$C)),$B$2:$B$4-COUNTIF($E$1:E$7,$A$2:$A$4)-IFERROR(COUNTIF(OFFSET(F$1,,,ROW()-1),$A$2:$A$4),))),)&""
复制代码

B2
  1. =RANDBETWEEN(5+(25-SUM(B$1:B1))*(ROW()=4),10-SUM(B$1:B1)+ROW()*5)
复制代码

评分

5

查看全部评分

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

本版积分规则

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

GMT+8, 2024-5-2 02:17 , Processed in 0.049814 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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