excel总数固定随机区间数值分配怎么做? 80
首先要说的是,Excel的随机数函数rand和randbetween所生产的随机数是正态分布的,也就是所产生的随机数的平均值与随机数上下限平均值是接近的,数据量越大,两个平均值越接近。
所以你要求36个数,在120~280之间,总和为8640,是很难一次直接通过一个公式得到期望的结果的。因为120与280的平均值是200,而36个数字总和为8640,其平均值为240,差距很大。
再说随机函数,在Excel中随机数函数称为易失性函数,简言之,就是函数得到的结果会在一定的条件下,如工作表中有任何的操作、编辑等操作,数据都会发生变化。而生成的随机数达到要求后,一般要求固定下来吧。那就得用到Excel的循环引用——直接或间接引用单元格本身。这里就是在生成的随机数满足要求后,单元格直接引用单元格本身,即已有的数据,从而保持不变。要循环引用,就得在Excel的选项中的公式选项卡内,把“启用迭代计算”打上对勾后确定。
本问题的基础方法,如图中的A列,选择A1:A36,输入公式:
=IF(ABS(SUM(A$1:A$36)-8640)>0,RANDBETWEEN(120,280),A1)
按同时按Ctrl+Enter2个键,一次完成公式输入(也可以先只输入A1的公式后下拉)
因为如前面据说的原因,36个数的和(A37)并没有达到预期的结果。如果有耐心,一直按F9,直到A37=8640后,再按F9不发生变化。但估计很难得到结果。
图中C列,把随机数的下限修改为200,这样200和280的平均值等于36数的平均值,输入完公式立即得到一组结果。
既要得到结果,又希望随机数的范围(上下限)不变,目前想到的办法只有一个折衷的办法,36个数中一小部分范围为120~280,另一部分把下限加大,如200。这样把平均值向36个数的平均值靠近。如图中的E列,E1:E10取范围120~280,E11:E36取范围200~280。只要数次F9即固定下来了。
2019-06-16 · 百度认证:云南新华电脑职业培训学校官方账号
其余13个公式为: =if(rand()>0.3,randbetween(36,43),randbetween(48,50))
大概应该是这个意思。