ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] RANDBETWEEN函数

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-1-10 23:00 | 显示全部楼层

=MOD(LARGE(ABS(IF({1,1,0},{30,0}-RANDBETWEEN(ROW(1:3)*0,30),{0;0;81}-MMULT({1,0;0,1;1,1},RANDBETWEEN({25;26},30))))+RANDBETWEEN(X1:Z3+1,3)*99,ROW(1:9)),99)+70

题目;随机产生9个70到100之间的数值,使9个值的平均值为89。

操作:选中A1:A9单元格区域,在公式栏输入如下 公式,按下CTRL+SHIFT+ENTER,生成9个数

=MOD(LARGE(ABS(IF({1,1,0},{30,0}-RANDBETWEEN(ROW(1:3)*0,30),{0;0;81}-MMULT({1,0;0,1;1,1},RANDBETWEEN({25;26},30))))+RANDBETWEEN(X1:Z3+1,3)*99,ROW(1:9)),99)+70

1、计算公式 :RANDBETWEEN({25;26},30),随机生成一个数组,有两个数,第1个数值取值范围在25-30之间,第2个数值取值范围在26-30之间
=MOD(LARGE(ABS(IF({1,1,0},{30,0}-RANDBETWEEN(ROW(1:3)*0,30),{0;0;81}-MMULT({1,0;0,1;1,1},{28;26})))+RANDBETWEEN(X1:Z3+1,3)*99,ROW(1:9)),99)+70

2、计算公式:RANDBETWEEN(X1:Z3+1,3),
解释:RANDBETWEEN(X1,3),取值范围在0、1、2、3之间,RANDBETWEEN(X1+1,3),取值范围在1、2、3之间,RANDBETWEEN(X1:Z3+1,3),其中X1:Z3表示一个单元格区域,三行三列,这里生成二维数组,每个元素包含3个值,取值范围在1-3之间,如:{1,1,3;2,1,3;2,2,1}
=MOD(LARGE(ABS(IF({1,1,0},{30,0}-RANDBETWEEN(ROW(1:3)*0,30),{0;0;81}-MMULT({1,0;0,1;1,1},{28;26})))+{1,1,3;2,1,3;2,2,1}*99,ROW(1:9)),99)+70

3、计算数组{1,1,3;2,1,3;2,2,1}*99,,让每个值乘以99,得到新数组:{99,99,297;198,99,297;198,198,99},公式变为
=MOD(LARGE(ABS(IF({1,1,0},{30,0}-RANDBETWEEN(ROW(1:3)*0,30),{0;0;81}-MMULT({1,0;0,1;1,1},{28;26})))+{99,99,297;198,99,297;198,198,99},ROW(1:9)),99)+70

4、计算公式:MMULT({1,0;0,1;1,1},{28;26}),结果为:{28;26;54}
=MOD(LARGE(ABS(IF({1,1,0},{30,0}-RANDBETWEEN(ROW(1:3)*0,30),{0;0;81}-{28;26;54}))+{99,99,297;198,99,297;198,198,99},ROW(1:9)),99)+70

5、计算公式:ROW(1:3),生成数组:{1;2;3}
{1;2;3}*0,结果为数组:{0;0;0}

6、计算函数:RANDBETWEEN({0;0;0},30),生成一个数组,3个元素数值,数组随机生成0-30之间的数
=MOD(LARGE(ABS(IF({1,1,0},{30,0}-{11;28;24},{0;0;81}-{28;26;54}))+{99,99,297;198,99,297;198,198,99},ROW(1:9)),99)+70

7、计算数组:{30,0}-{11;28;24},结果 为:{19,-11;2,-28;6,-24},让第一个数组的每个元素分别与第二个数组的每个元素依次相减。得到一个新数组
=MOD(LARGE(ABS(IF({1,1,0},{19,-11;2,-28;6,-24},{0;0;81}-{28;26;54}))+{99,99,297;198,99,297;198,198,99},ROW(1:9)),99)+70

8、计算数组:{0;0;81}-{28;26;54},结果为:{-28;-26;27},同维度数组相减,每个
=MOD(LARGE(ABS(IF({1,1,0},{19,-11;2,-28;6,-24},{-28;-26;27}))+{99,99,297;198,99,297;198,198,99},ROW(1:9)),99)+70

9、计算if函数:IF({1,1,0},{19,-11;2,-28;6,-24},{-28;-26;27}),结果为:{19,-11,-28;2,-28,-26;6,-24,27}  ?不懂怎么计算的
=MOD(LARGE(ABS({19,-11,-28;2,-28,-26;6,-24,27})+{99,99,297;198,99,297;198,198,99},ROW(1:9)),99)+70

10、计算函数:ABS({19,-11,-28;2,-28,-26;6,-24,27}),取绝对值,结果为:{19,11,28;2,28,26;6,24,27}
=MOD(LARGE({19,11,28;2,28,26;6,24,27}+{99,99,297;198,99,297;198,198,99},ROW(1:9)),99)+70

11、计算ROW(1:9),结果为:{1;2;3;4;5;6;7;8;9}
=MOD(LARGE({19,11,28;2,28,26;6,24,27}+{99,99,297;198,99,297;198,198,99},{1;2;3;4;5;6;7;8;9}),99)+70

12、LARGE({19,11,28;2,28,26;6,24,27}+{99,99,297;198,99,297;198,198,99},{1;2;3;4;5;6;7;8;9}),结果为:{325;323;222;204;200;127;126;118;110}
=MOD({325;323;222;204;200;127;126;118;110},99)+70

13、计算mod函数:MOD({325;323;222;204;200;127;126;118;110},99),让数组每个值对 99取余数,结果为:{28;26;24;6;2;28;27;19;11}
={28;26;24;6;2;28;27;19;11}+70

14、数组与70相加,生成新数组:{98;96;94;76;72;98;97;89;81},这数组中每个数值将依次放到A1-A9单元格中

这个分析看不出来如何编写公式的思路。简单的来说就是题目要求:随机产生9个70到100之间的数值,使9个值的平均值为89。

比如如果修改成20个随机数,范围在60-80,平均值是75,不知道如何更改。有点点猜想,但肯定不对。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-1-11 09:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
痛痛痛痛 发表于 2024-1-10 23:00
=MOD(LARGE(ABS(IF({1,1,0},{30,0}-RANDBETWEEN(ROW(1:3)*0,30),{0;0;81}-MMULT({1,0;0,1;1,1},RANDBETWE ...

谢谢你的参与,一般来说,遇到这个题目首先要判断,题目究竟对不对
我上次遇到一个说:
随机产生3个60-100的数,均值在89.
这就明显是错误的题目(要求),因为你3*89-100-100=67,也就是最低也要67才行,60是根本取不到的。
接下来就是算,算的过程就跟你分析的一样的,每个要求都有不同的算法。
不过有一个好的方法是单随机数法,借助一个随机数就能很简单的满足要求。
上面的内容我有说明的,你可以看看。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-16 13:27 , Processed in 0.029742 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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