发布网友 发布时间:2022-04-23 23:26
共5个回答
热心网友 时间:2023-10-13 15:15
你要的公式:
=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刷新数据。
追问可能是我表达的不是很清晰,我想要的随机效果是这些个数字就像一个班级李学生的考试成绩,有高、有底,有很高的也有很低的,不要全部集中在某一个很相近的区域~。谢谢热心网友 时间:2023-10-13 15:16
在C5中输入或复制粘贴下列公式
=RANDBETWEEN(INT(C$4/13*(1-0.5)),INT(C$4/13*(1+0.5)))
下拉填充,到C16
在C17中输入或复制粘贴下列公式
=C4-SUM(C5:C16)
选择C5:C17,右拉填充
热心网友 时间:2023-10-13 15:16
你到底是要随机还是在一定范围内呀,如果是纯随机,那肯定就会出现很大或者很小的数字呀
用vba运行下面的代码试试吧
Sub 随机()
Dim a() As Variant
Dim i As Integer, sumx As Long, sumy As Long, y As Integer
y = 3
Do
line:
ReDim a(0 To 13)
sumx = Cells(4, y).Value
sumy = sumx
a(0) = 0
i = 0
Do
i = i + 1
a(i) = Int((sumx - a(i - 1)) / (13 + 1 - i)) + Int(Rnd() * Int((sumx - a(i - 1)) / (13 + 1 - i)) * 0.4 - Int((sumx - a(i - 1)) / (13 + 1 - i)) * 0.2)
sumx = Int(sumx - a(i - 1))
Loop Until i = 12
If sumy - WorksheetFunction.Sum(a) < Int(sumy / 13 * 0.6) Or sumy - WorksheetFunction.Sum(a) > Int(sumy / 13 * 1.4) Then GoTo line
a(13) = sumy - WorksheetFunction.Sum(a)
For i = 1 To 13
Cells(i + 4, y) = a(i)
Next i
y = y + 1
Loop Until y > ActiveSheet.UsedRange.Columns.Count + 2
End Sub
热心网友 时间:2023-10-13 15:17
normdist函数和正态分布概率密度函数一样,是已知一个数x,求它发生的概率y。 但是,我们要的随机数,不是概率,所以这个似乎函数不适用。 我们要的刚好是反过来
热心网友 时间:2023-10-13 15:18
公式如下:
=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刷新数据。