参考这个分配
1、两列数据
1列:人名,分物数量
A 9
B 10
C 1
用下面宏生成随机生成9个A,10个B,1个C,对应其它列20件东西可以
百度经验:Excel指定文本按指定次数随机排序显示
假设原数据在A1:A20
B1为A分配的数量
B2为B分配的数量
C1输入公式
=rand()
向下填充至C20
D1输入公式
=IF(RANK(C1,C$1:C$20)<=B$1,"A",IF(RANK(C1,C$1:C$20)<=B$1+B$2,"B","C"))
向下填充至D20
D1:D20
就是分配情况
B1:B2的分配数量可以根据需要修改
我试了一下,可以部分达到你的要求,把这20件东西放在A1:A20中,如东西1、东西2、……东西20,在B1中输入“=RAND()”,在C1中输入“=RANK(B1,$B$1:$B$20)”,再选中B1:C1,用选中区域右下角的自动填充柄往下拖动到20行,这样就会在B列中随机出现数字,再在C列中对这些数字进行排序,如果A要取9个,就取前9名的,B取10个,就取10-19名的,其它归C,
在B1输入公式:
=RANDBETWEEN(1,$A$1/14) ,下拉B1到B14;
见图一
由于A1为350,B1:B14每个单元格都限制在25,也就是350/14的值,所以每单元格都是25的话,总和也不会超过350。
说明:B1:B14单元格的值将会随机变化,当按下F9键,就会刷新数据,在表格其他部位输入数据后也会变化,如需要固定,可复制B1:B14,选择性粘贴为:值。