首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事

excel将一个数随机分配各组,需要能够方便批量大量处理相关数据?

发布网友 发布时间: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刷新数据。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com