ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] RANDBETWEEN函数

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-12-27 23:06 | 显示全部楼层 |阅读模式
本帖最后由 世界客都 于 2023-12-30 22:59 编辑

标题-精选.jpg
前 言
  尊贵的各位论坛版主、各位老师:
  您们好!我翻看了以往很多有关随机的帖子,有些得到了解决,但仍有较大一部分问题并没有得到很好解决甚至没有解决,于是我把那些解决好了的跟多数没有解决好的帖子的问题收录下来,加以挑选实际案例,结合自己的思考,用低版本写出公式,再加以制作附件,供大家参考。
  题目均来自论坛实际案例,具有很强的实际应用价值。
  最后,很快也步入2024年龙年了,回望2023年,这一年确实也是过得比较艰辛,好在有论坛的各位版主、各位老师陪伴,让我得以充实度过这一年。
  在此,衷心的祝愿各位版主、各位老师在新的一年里,心想事成,万事如意,龙马精神,财运如虹贯日,家庭和谐美满,幸福安康常伴,快乐幸福无边,四季平安如意,龙年吉祥如意!
龙年背景.jpg
最后简单介绍一下RandBetween函数:
  此函数返回位于两个指定数之间的一个随机整数。 每次计算工作表时都将返回一个新的随机整数。
语法
RANDBETWEEN(bottom, top)
RANDBETWEEN 函数语法具有下列参数:
Bottom必需。 RANDBETWEEN 将返回的最小整数。
Top   必需。 RANDBETWEEN 将返回的最大整数。
例如:
例子1:=RANDBETWEEN(1,100)
介于 1 到 100 之间的一个随机数
例子2:=RANDBETWEEN(-1,1)
介于 -1 到 1 之间的一个随机数。
所有公式更新完毕,请下载此附件.zip (130.15 KB, 下载次数: 20)



补充内容 (2023-12-30 23:16):
结语:最后非常感激cinlo跟绊成ρìи两位老师,附件的一部分公式的核心思路源自2位老师。
当然,还有其他非常多的老师在学习路上给予我支持,我一并向他们致谢,谢谢您们。

评分

18

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-1-1 17:13 | 显示全部楼层
本帖最后由 世界客都 于 2024-1-2 11:48 编辑

各位,以后我会不定期在此收录一些好的关于随机的案例
因为主题帖无法再编辑,我就通过回帖的方式不断新增题目。
今天2024年1月1日元旦我又发现了一个好的案例,通过思考,我解决了它!
3344.png 【世界客都精选真实案例】随机产生一些数使其有一定间隔.zip (14.35 KB, 下载次数: 7)
  1. =MOD(SMALL(RANDBETWEEN(ROW(1:30)^0,999)*1000+LARGE(MOD(SMALL(RANDBETWEEN(ROW(1:113)^0,999)*1000+ROW(88:200),ROW(1:30)),500),ROW(1:30))-ROW(1:30)*3+3,ROW(1:30)),500)
复制代码
这个公式对于新手来说理解起来可能会有点吃力哈



TA的精华主题

TA的得分主题

 楼主| 发表于 2024-1-4 19:53 | 显示全部楼层
今天是2024年1月4日,我发现借助一个随机数可以简单的实现一些较难的问题。

单随机数法:
单随机数法.png
  1. =MOD(SMALL(RANDBETWEEN({1,1,1},999)*1000+ABS({0,0,267}-MMULT((100+F1)*{1,0}-RANDBETWEEN(F1,100),{1,0,1;0,-1,-1})),{1,2,3}),500)
复制代码
单随机数法.zip (9.95 KB, 下载次数: 3)

TA的精华主题

TA的得分主题

发表于 2023-12-28 22:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
老师太有心了,我的公式并不完美,不如一起来学习研究梅州老师!

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-12-29 13:30 | 显示全部楼层
本帖最后由 cinlo 于 2023-12-29 16:51 编辑

20个0-5加起来是14-30之间,新函数就比较完美了
  1. =LET(t,RANDBETWEEN(14,30),REDUCE(,RANDBETWEEN(-Y1:Y20,5),LAMBDA(x,y,VSTACK(x,OR(SUM(x)<14,SUM(y,x)<=t)*y))))
复制代码

虽然可以写成这样,省一些字符,但结果就比较偏向于靠近30了
  1. =REDUCE(,RANDBETWEEN(-Y1:Y20,5),LAMBDA(x,y,VSTACK(x,OR(SUM(x)<14,SUM(y,x)<=RANDBETWEEN(14,30))*y)))
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-12-29 14:38 | 显示全部楼层
上面公式还是不完美,需要重新排序:
  1. =SORTBY(LET(t,RANDBETWEEN(14,30),REDUCE(,RANDBETWEEN(-Y1:Y20,5),LAMBDA(x,y,VSTACK(x,OR(SUM(x)<14,SUM(y,x)<=t)*y)))),RANDARRAY(20))
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-12-29 16:44 | 显示全部楼层
抄了一下果神的公式:有点卡,可能我没学到家!
  1. =TAKE(LET(t,RANDBETWEEN(14,30),REDUCE(0,A1:A99999,LAMBDA(x,y,LET(s,RANDBETWEEN(-Z1:Z20,5),IF(SUM(s)=t,VSTACK(x,s),x))))),-20)
复制代码

TA的精华主题

TA的得分主题

发表于 2023-12-29 16:57 | 显示全部楼层
=REDUCE(,1:1,LAMBDA(x,y,LET(t,RANDARRAY(20,,0,5,1),n,RANDBETWEEN(14,30),IF(SUM(t)=n,t,x))))

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-12-29 23:02 | 显示全部楼层
用果神的姿势:
1-100取20个之和为800
  1. =REDUCE(0,A1:A9999,LAMBDA(x,y,LET(s,RANDBETWEEN(Z1:Z20+1,100),IF(SUM(s)=800,s,x))))
复制代码

70-100取9个,平均值为89
  1. =REDUCE(0,1:1,LAMBDA(x,y,LET(s,RANDBETWEEN(-Z1:Z9,30),IF(SUM(s)=171,s,x))))+70
复制代码

TA的精华主题

TA的得分主题

发表于 2023-12-30 08:22 | 显示全部楼层
老师看来很期盼龙年,还2个多月呢。

评分

1

查看全部评分

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

本版积分规则

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

GMT+8, 2024-5-19 17:10 , Processed in 0.044715 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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