求excel公式,设置一个总数,其他单元格根据总数自动凑和

比如,在A10单元格设置一个总数为5000,那么A1至A9根据总数自动凑数,凑够5000,还可以有2位小数点,这个公式怎么设置?最好能说详细公式的逻辑... 比如,在A10单元格设置一个总数为5000,那么A1至A9根据总数自动凑数,凑够5000,还可以有2位小数点,这个公式怎么设置?最好能说详细公式的逻辑 展开
 我来答
jokulboy
2019-07-12 · TA获得超过657个赞
知道小有建树答主
回答量:979
采纳率:59%
帮助的人:323万
展开全部

仅借用函数,没有绝对随机的方法可满足需求,除非添加VBA。

不过我们有相对随机的方法可以替代

A1输入

=ROUNDUP(RAND()*2*$A$10/9,2)

A2输入

=ROUNDUP(RAND()*2*($A$10-SUM(A$1:A1))/(9-ROW(A1)),2)

下拉至A8

A9输入

=A10-SUM(A1:A8)

每次都用5000-已经生成随机数之和,来生成新的随机数,直到9个数全部产生。

这里的随机数有个特点:

第1个数<(5000*1/9=1111.11)

第2个随机数<((5000-A1)/8)

以此类推。

故以上随机数不能直接按顺序分配给1-9个单位,那样第1个单位永远得不到大于1111的数;

但是如果将得到的9个随机数再随机排列一次,就可以使用了,符合随机概念。

下面解释函数

=ROUNDUP(RAND()*2*($A$10-SUM(A$1:A1))/(9-ROW(A1)),2)

1、$A$10-SUM(A$1:A1):5000-已经产生随机数的之和

2、RAND()*2:RAND()的意思就是产生0-1的随机数,此为随机数生成核心函数,因其平均值为0.5,所以再乘以2;

3、(9-ROW(A1)):ROW(A1)是A1单元格所在的行号,9-ROW(A1)即为还剩下多少个随机数需要产生;

4、ROUNDUP(XXX,2):XXX保留俩位小数,四舍五入。

以一个实际数子的产生,再解释一遍

我们假设已经产生3个数,且前面3个数之和为2000,在第4行产生第4个随机数。

1、得到5000-2000=3000,即剩下的数总和为3000;

2、9-ROW(A3)=6,还有6个数需要产生;

3、3000/6=500,6个数平均值为500;

4、500*RAND()*2,产生一个介于0-1000的随机数,这里再解释一下2这个数,如果我们不乘以2,那么每次产生的都是小于平均数的随机数(本次不乘以2就是产生小于500的数),那么最后的结果就是第9个数(A10-SUM(A1:A8))会偏大,且大于2500的概率异常,不满足随机属性。

5、ROUNDUP(500*RAND()*2,2),500*RAND()*2保留俩位小数,四舍五入。

以上就是随机数产生的相对公式及对应解释,若有疑问之处,欢迎沟通。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式