可以用楼下的伪随机。最好还是用VBA解决。
B1=INT(RAND()*$A$1+300)
C1=INT(RAND()*(5000-B1)+300
D1=INT(RAND()*(5000-B1-C1)+300
E1=5000-SUM(B1:D1)
首先要确定分解为几个数
其次是这几个数的取值范围
然后把N-1个数用随机数rand()*范围差+基数
最后一个数用A1-前面的N-1个数的总和
B1=RAND()*(A1-1200)+300;
C1=RAND()*(A1-B1-900)+300;
D1=RAND()*(A1-B1-C1-600)+300;
E1=A1-B1-C1-D1