A. excel将一个数随机分配各组,需要能够方便批量大量处理相关数据
你要的公式:
=MMULT(IFERROR(SMALL(RANDBETWEEN(-ROW(1:12),13),ROW(1:12)-{1,0}),{0,11}),{-2;2})+INT(C4/13)-1
数组公式,同时按下Ctrl+Shift+Enter结束输入。
按下F9刷新数据。
B. Excel表如何进行随机分组
随机分布那就使用随机函数RAND,构造两个辅助列来帮助生成随机数,我的示例是在PQ两列构造,你根据你的情况在空白列做就行。
辅助列1(生成随机数):=RAND()^2
辅助列2(随机数排名):=RANK(P2,P:P)
辅助列构建好了,那么剩下就简单了,就是把一维数组变成二维数组而已。直接在C2使用公式:
=INDEX($A:$A,OFFSET($Q$1,MOD(ROW(),4)+1+(COLUMN()-3)*4,)+1)
向下、向右填充C2:O5即可。
因为随机数做了平方,基本不可能出现重复,如果不幸中彩,按F9就可重新更新随机名单即可。
C. excel总数固定随机区间数值分配怎么做
首先要说的是,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即固定下来了。