ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[Excel 函数与公式] [第92期]随机九宫格[已总结]

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2013-3-6 10:01 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 delete_007 于 2013-5-3 16:25 编辑

一、说明:
  1、A1:I9单元格区域由9个九宫格够成。
  2、将1到9共九个数字,随机填入9个九宫格内。
  3、数字在每个九宫格内的位置也是随机的。
  4、把9个九宫格按位置叠合后,必须形成一个填充完整的九宫格。
  5、做到数字与位置的绝对随机。
  6、模拟结果(见下图)非唯一结果,仅供参考理解题意。

二、要求:
  函数作答,一个公式完成,不允许使用辅助区或VBA。

三、答题规则:
  1、贴出A1内的公式、区域数组公式或内存数组公式皆可。
  2、开贴根据汇总情况评分,精彩答案外加技术分1分奖励。


已总结,见13楼。http://club.excelhome.net/forum.php?mod=redirect&goto=findpost&ptid=988907&pid=6903068

模拟结果一:

模拟结果二:

模拟结果三:




本帖子中包含更多资源

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

x

点评

开始!竞赛期间 2013-3-26至2013-4-30  发表于 2013-3-26 12:18

评分

6

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-3-26 12:46 | 显示全部楼层
本帖最后由 delete_007 于 2013-3-26 12:48 编辑
  1. =TEXT(RIGHT(SMALL(RANDBETWEEN(1,9*ROW()^0)+ROW()%,MOD(COLUMN()-1,3)+MOD(ROW()*3-2,9))),"[="&RIGHT(SMALL(RANDBETWEEN(1,9*ROW()^0)+ROW()%,INT(ROW()/3-1%)*3+INT(COLUMN(C:K)/3)))&"];")
复制代码
预设答案:180字符。

TA的精华主题

TA的得分主题

发表于 2013-3-26 15:38 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 ddhhyy16 于 2013-3-27 09:14 编辑

{:soso_e154:}=SUM(SUBTOTAL(9,OFFSET(A1,{0,3,6},{0;3;6},1,1)))

本帖子中包含更多资源

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

x

TA的精华主题

TA的得分主题

发表于 2013-3-27 11:18 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 悟空师弟 于 2013-3-31 15:08 编辑

158字符,献丑了:
  1. =TEXT(MOD(SMALL(RANDBETWEEN(1,ROW(1:9)^0+9)/1%+ROW(1:9),INT(ROW(1:9)/3.1)*3+INT(COLUMN(C:K)/3)),100),"[="&MOD(MOD(COLUMN(A:I),3)+MOD(ROW(1:9),3)*3,9)+1&"]0;")
复制代码


简化一下:151
  1. =TEXT(MOD(SMALL(RANDBETWEEN(1,ROW(1:9)^0+9)/1%+ROW(1:9),INT(ROW(1:9)/3.1)*3+INT(COLUMN(C:K)/3)),100),"[="&MOD(COLUMN(A:I),3)+MOD(ROW(1:9),3)*3+1&"]0;")
复制代码

148:(随机率小有不均)
  1. =TEXT(MOD(SMALL(RANDBETWEEN(1,ROW(9:17))/1%+ROW(1:9),INT(ROW(1:9)/3.1)*3+INT(COLUMN(C:K)/3)),100),"[="&MOD(COLUMN(A:I),3)+MOD(ROW(1:9),3)*3+1&"]0;")
复制代码

有点晕,上面的公式的确随机率都不够……要206:
  1. '=TEXT(MOD(SMALL(RANDBETWEEN(1,ROW(1:9)^0+9)*10+ROW(1:9),INT(ROW(1:9)/3.1)*3+INT(COLUMN(C:K)/3)),10),"[="&MOD(SMALL(RANDBETWEEN(1,ROW(1:9)^0+9)*10+ROW(1:9),MOD(COLUMN(A:I),3)+MOD(ROW(3:11),3)*3+1),10)&"]0;")
复制代码

200:(随机率小有不均 )
  1. =TEXT(MOD(SMALL(RANDBETWEEN(1,ROW(9:17))*10+ROW(1:9),INT(ROW(1:9)/3.1)*3+INT(COLUMN(C:K)/3)),10),"[="&MOD(SMALL(RANDBETWEEN(1,ROW(9:17))*10+ROW(1:9),MOD(COLUMN(A:I),3)+MOD(ROW(3:11),3)*3+1),10)&"]0;")
复制代码



再简一个:205:
  1. =TEXT(MOD(SMALL(RANDBETWEEN(1,ROW(1:9)^0+9)*10+ROW(1:9),INT(ROW(1:9)/3.1)*3+INT(COLUMN(C:K)/3)),10),"[="&MOD(SMALL(RANDBETWEEN(1,ROW(1:9)^0+9)*10+ROW(1:9),MOD(COLUMN(A:I),3)+MOD(ROW(1:9),3)*3+1),10)&"]0;")
复制代码
199:(随机率小有不均)
  1. =TEXT(MOD(SMALL(RANDBETWEEN(1,ROW(9:17))*10+ROW(1:9),INT(ROW(1:9)/3.1)*3+INT(COLUMN(C:K)/3)),10),"[="&MOD(SMALL(RANDBETWEEN(1,ROW(9:17))*10+ROW(1:9),MOD(COLUMN(A:I),3)+MOD(ROW(1:9),3)*3+1),10)&"]0;")
复制代码



继续简:
178字符:
  1. =TEXT(RIGHT(SMALL(RANDBETWEEN(ROW()^0,9)+ROW()%,INT(ROW(3:11)/3+{0,0,0,3,3,3,6,6,6}))),"[="&RIGHT(SMALL(RANDBETWEEN(ROW()^0,9)+ROW()%,{3,6,9,3,6,9,3,6,9}-MOD(ROW(1:9),3)))&"]0;")
复制代码

157字符:(随机情况有些呆板)
  1. =TEXT(RIGHT(SMALL(RANDBETWEEN(ROW()^0,9)+ROW()%,INT(ROW(3:11)/3+{0,0,0,3,3,3,6,6,6}))),"[="&MOD({3,6,9,3,6,9,3,6,9}-MOD(ROW(),3)+RANDBETWEEN(1,9),9)+1&"]0;")
复制代码




点评

不完全满足位置随机的要求。  发表于 2013-3-27 11:55

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-3-29 08:33 | 显示全部楼层
  1. =TEXT(RIGHT(SMALL(RANDBETWEEN(1,ROW(9:17))+ROW(1:9)%,INT(ROW(3:11)/3+{0,0,0,3,3,3,6,6,6}))),"[="&RIGHT(SMALL(RANDBETWEEN(1,ROW(9:17))+ROW(1:9)%,MOD(ROW(1:9),3)+{1,4,7,1,4,7,1,4,7}))&"]0;")
复制代码
先占位,日后在想。

补充内容 (2013-4-20 10:36):
感觉上面的公式 有频率的限制。。修改下  绝对的随机
175字符
=TEXT(RIGHT(SMALL(RANDBETWEEN(ROW()*0,9)+ROW()%,MOD(ROW(),3)+{1,4,7,1,4,7,1,4,7})),"[="&RIGHT(SMALL(RANDBETWEEN(ROW()*0,9)+ROW()%,INT(ROW(3:11

点评

请不要重复占楼,评分见后面的回帖。  发表于 2013-5-2 07:18

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-5-2 07:16 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
==================答题截止==================
评分及总结见附件,如有意见或建议,敬请批评指正。

本帖子中包含更多资源

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

x

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-4-12 16:50 | 显示全部楼层
本帖最后由 羽希 于 2013-4-18 11:40 编辑

不限制07吧?


本帖子中包含更多资源

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

x

点评

不限制07版函数。  发表于 2013-4-12 16:51

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-4-14 09:46 | 显示全部楼层
本帖最后由 ykqrs 于 2013-4-15 14:41 编辑

=iIFERROR(INDEX({1;2;3}*3-{2,1,0},MATCH(,0/(ROW()={1;5;9}),),MATCH(,0/(COLUMN()={1,5,9}),)),"")
这几天尽想这格格了,这回差不多了
=IF(AND(OR(COLUMN()={1,5,9}),OR(ROW()={1,5,9})),LARGE(ISERROR(RANK(ROW($1:$9),OFFSET($A1,,,,COLUMN()-1)))*ISERROR(RANK(ROW($1:$9),OFFSET($A$1,,,ROW()-1,9)))*ROW($1:$9),INT(RAND()*(10-((COLUMN()+3)/4+ROW()-(ROW()+3)/4))+1)),"")

点评

不满足随机性要求。  发表于 2013-4-14 16:18

TA的精华主题

TA的得分主题

发表于 2013-4-19 09:50 | 显示全部楼层
本帖最后由 sunya_0529 于 2013-4-22 18:47 编辑

好久没有参加竞赛了,赞助一下——
  1. =TEXT(INDEX(RIGHT(SMALL(MID(RANDBETWEEN(10^8,10^9),ROW($1:$9),1)+ROW($1:$9)%,ROW($1:$9)))&RIGHT(SMALL(MID(RANDBETWEEN(10^8,10^9),ROW($1:$9),1)+ROW($1:$9)%,ROW($1:$9))),ROUNDUP(COLUMN()/3,0)+INT((ROW()-1)/3)*3)-((TEXT(MOD(COLUMN(),3),"#;;3")+TEXT(MOD(ROW(),3),"#;;3")*3-3)&0),"[<] ;[<10];")
复制代码
2013/04/22 18:46
由于是多单元格数组公式,不用拖拉复制,因此上面的公式中的$可以去掉,可以省不少字符,却又不影响效果——
  1. =TEXT(INDEX(RIGHT(SMALL(MID(RANDBETWEEN(10^8,10^9),ROW(1:9),1)+ROW(1:9)%,ROW(1:9)))&RIGHT(SMALL(MID(RANDBETWEEN(10^8,10^9),ROW(1:9),1)+ROW(1:9)%,ROW(1:9))),ROUNDUP(COLUMN()/3,0)+INT((ROW()-1)/3)*3)-((TEXT(MOD(COLUMN(),3),"#;;3")+TEXT(MOD(ROW(),3),"#;;3")*3-3)&0),"[<] ;[<10];")
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-4-20 10:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 顺⑦.zì繎。 于 2013-4-21 07:15 编辑
顺⑦.zì繎。 发表于 2013-3-29 08:33
先占位,日后在想。

补充内容 (2013-4-20 10:36):
173字符
  1. =TEXT(RIGHT(SMALL(RANDBETWEEN(ROW()*0,9)+ROW()%,MOD(ROW(),3)+{1,4,7,1,4,7,1,4,7})),"[="&RIGHT(SMALL(RANDBETWEEN(ROW()*0,9)+ROW()%,INT(ROW()/3.1+{1,1,1,4,4,4,7,7,7})))&"]0;")
复制代码

靠。。玩的不转。居然重新跟帖了。。郁闷。。
  1. =TEXT(RIGHT(SMALL(RANDBETWEEN(ROW()*0,9)+ROW()%,MOD(ROW(),3)+{1,4,7,1,4,7,1,4,7})),"[="&RIGHT(SMALL(RANDBETWEEN(ROW()*0,9)+ROW()%,INT(ROW(3:11)/3+{0,0,0,3,3,3,6,6,6})))&"]0;")
复制代码

评分

2

查看全部评分

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

本版积分规则

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

GMT+8, 2024-11-21 18:39 , Processed in 0.048922 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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