怎样在EXCEL中的数值固定除同一个位置的数值得出随机的结果?

比如a2填10000 b2填10d列随机出现10个不同数值(无小数点)总数等于10000b2填15就随机出现15个不同数值,总数等于10000再加个切换按钮 可以随机切换 点一下换一次 总数不变 只是换一下随机数值

本问题用公式是可实现的,但要用到循环引用,所以要启用迭代计算,具体方法如下:

    文件选项——公式,勾选“启用迭代计算”后确定。

    在C2中输入公式:

=IF(ROW()>B$2+1,"",ROW()-1)

下拉到若干单元格,如C50(以B2中可能的最大数值来决定,行数略大于可能的最大数即可)。

D2中输入公式:

=IF(B$2="","",IF(C2="","",IF(OR(D2="",SUM(D:D)<>A$2),RANDBETWEEN(1,A$2/B$2*2),D2)))

下拉到与C列一样的行数。

现在删除B2中的数据,填入新的数据,C列得到每个数的序号,D列得到对应的数据。

如图,E2中用求和公式验证:

E2=SUM(D:D)

PS:随机数按最大取A2按B2平均分后的2倍来考虑的,可自己修改最值的范围。但经测试,如果最大值就取A2,循环计算很难得到结果。

追问

非常感谢 就你的方法会用 比较简单
目前还有个问题 就是每次计算的总和都不一样
按10000算的话 左右误差范围在几百到一千多

追答

在选项中把循环次数设大些,最大:32767,B2填写新的数字后,如果E2中的和不等于A2,就按F9,多次按F9后,一般能够得到最后稳定的D列数据,且E2等于A2。如果多次按F9一直不能固定D列,就修改公式中randbetween中的取值范围,改到上限和下限距均值比较接近的数值。如B2中填写20,10000/20=500,那么上限在1000,下限在1,或上限在800,下限在300。总之范围越大,特别是上限与下限与均值的差相差太大时,就越难得到稳定的结果。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-05-11

假定笔数50以内,D2中输入:=A2-SUM(D3:D50)

D3中输入:=IF(ROW(1:1)>$B$2-1,"",INT(RAND()*$A$2/($B$2-1)*1.65)),然后下拉填充到你的最大笔数。

D2有负数出现时,F9刷新取值。

第2个回答  2018-05-11

新建一个宏,命名为M,可以设个快捷键,这样以后只要在表格中按快捷键就能直接生成随机数了,也不需要另放一个按钮,编辑宏,写入以下代码:

Sub M()

'Ctrl + m

Dim sum, n As Integer

Dim tmp As Integer

sum = Cells(2, 1)

n = Cells(2, 2)

For i = 1 To n

Cells(i + 1, 3) = i

Next i

For i = 1 To n - 1

tmp = Int((sum / (n - i) * Rnd))

sum = sum - tmp

Cells(i + 1, 4) = tmp

Next i

Cells(n + 1, 4) = sum

End Sub

第3个回答  2018-05-11
你说的那必须用代码来实现。
第4个回答  2018-05-11
vba可以完成。。。
相似回答