excel怎么生成总和是100的5个随机数(随机数范围5-40)?

想每天生成总和为100的5个随机数,同时这5个随机数要在5-40这个范围内,如
5、13、19、24、39 ;
12、25、33、8、22
非常感谢

用RAND()函数/RANDBETWEEN()函数和简单公式来生成这5个随机数即可。具体做法:


一、生成的随机数含小数

1. åœ¨å•å…ƒæ ¼ä¸­è¾“å…¥=RAND(),回车后单元格即可返回一个随机数字,其范围大于0小于1。这是生成给定范围内的随机数字的基础。


2. ç”Ÿæˆåˆ¶å®šèŒƒå›´çš„随机数的公式是:=A+RAND()*(B-A),其中A为给定数字最小范围,B是给定的最大范围。要生成大于5小于40的随机数字,因为(40-5)*RAND()返回结果是0到35之间,加上范围的下限5就返回了5到40之间的数字。


3. ç”¨ä¸Šæ•°å…¬å¼ç”Ÿæˆå‰2个数,第3个数的上限则要计算后确定,即为40与(100—随机数1-随机数2)中的小者。第4个数的上限同样要计算后确定,即为40与(100—随机数1-随机数2-随机数3)中的小者。第5个数等于100与其余四个随机数的差。


二、生成随机整数:用RANDBETWEEN()函数,该函数生成大于等于1小于等于100的随机整数。语法:=RANDBETWEEN(范围下限整数,范围上限整数),结果返回包含上下限在内的整数。第1、2个随机数直接生成,其余随机数的生成上限如一之3。

    A1=randbetween(5,40)

    B1=randbetween(5,40)

    C1=randbetween(5,min(40,(100-sum(a1:b1))))

    D1=randbetween(5,min(40,(100-sum(a1:c1))))

    E1=100-sum(a1:d1)

  其实完整的算法中还要考虑前三个数的和小于等于20(后两个数必须同为40或有一个要大于40)、前四个数小于60而第5个数要大于40等问题。严格的做法是要加入if判断和条件调整。太复杂了!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-02-12

A1:D1都输入公式:

=RANDBETWEEN(5,40)

E1输入公式:

=100-SUM(A1:D1)

F1输入公式:

=AND(E1>=5,E1<=40)

每按一次F9键,如果F1单元格显示TRUE,则A1:E1的5个数即所求的。
或选定A1:F1,下拉。
则F列为TRUE的那一行的A列到E列的5个数即所求的。

第2个回答  2015-02-12
A1输入
=ROUND(RAND()*35+5,0)
回车;
A2输入
=ROUND(RAND()*(MIN(75-SUM(A$1:A1)+ROW()*5,40)-5)+5,0)
回车并向下填充到A3;
A4输入
=ROUND(RAND()*(MIN(75-SUM(A$1:A3)+ROW()*5,40)-MAX((60-SUM(A$1:A3)),5))+MAX(60-SUM(A$1:A3),5),0)
回车;
A5输入
=100-SUM(A1:A4)
回车。
按F9可更新数值。
第3个回答  2015-02-12
可都是要整数?
重点提示:
这个可以 用规划求解的方式 来做
比如 在A1:A5 区域内是你要求的数据
A6 输入公式 =sum(a1:a5) (B6 输入你要得到的和值 可选)
然后 对 A6 进行规划求解

设定可变单元格 为A1:A5
添加条件 整数、大于等于5 小于等于40 ……本回答被网友采纳
相似回答