如何在Excel中生成介于-100到100之间的n个随机数,总和为零?

时间:2019-04-05 18:28:14

标签: excel

如何在Excel中生成介于-100到100之间的n个随机数,总和为零?就像我想要的 100 -50 -50 30 -30

基本上为零的随机数

2 个答案:

答案 0 :(得分:1)

Razvan在链接线程中的回答非常好。否则,我不确定是否有字面上的答案,但是为了娱乐,请尝试一下...

在单元格A1:T50中输入此公式:

=RANDBETWEEN(-100,100)

将此总和公式输入到单元格U51中:

=SUM(A1:T50)

现在确保您可以看到单元格U51。使用下面的宏(并保存所有其他工作)保存文件并调用宏,确保您保持工作表处于活动状态(请勿切换至其他软件):

Sub sumZero()
    Application.Calculation = xlCalculationAutomatic
    Do While Range("U51").Value <> 0
        Range("U51").Formula = "=SUM(A1:T50)"
    Loop
End Sub

我的低功耗笔记本电脑需要5秒钟到3分钟的时间才能得出一组随机选择的数据,总和为零。

答案 1 :(得分:1)

在单元格 B1 中输入公式:

=SUM(A:A)

运行此简短宏:

Sub dural()
    Dim N As Long, A As Range
    Set A = Range("A:A")

    N = Application.InputBox(Prompt:="Enter number of samples", Type:=1)
    A.Clear
    Range("A1:A" & N - 1).Formula = "=RandBetween(-100, 100)"

    Do While Abs(Range("B1")) > 100
        Calculate
    Loop

    A.Value = A.Value
    Range("A" & N).Value = -Range("B1").Value
End Sub

宏将询问您所需的样品数量,然后在N A 列中填入N-1个样品。计算第N th 可使和为零。