Excel里已知平均数,反推,求前面的6个随机数,要求于平均数相差0.1以内,保留两位小数,数据内容比较多
发布网友
发布时间:2022-04-26 04:26
我来回答
共1个回答
热心网友
时间:2023-10-06 03:42
这个需要用VBA来解决
代码如下:
Sub 随机数()
n = Range("a1")
Randomize
10:
For i = 1 To 6
a = Int(Rnd() * n * 2 * 100) / 100
Range("a" & i + 1) = a
Next
Range("a8") = "=round(average(a2:a7),2)"
If Abs(Range("a8") - n) > 0.1 Then GoTo 10
End Sub
追问我是要求A2到A7这六个数之间相差0.1,这个可以么?谢谢
追答
那就用下面代码吧
Sub 随机数2()
Sheets("sheet2").Select
n = Range("a1")
n1 = n - 0.1: n2 = n + 0.1
Randomize
10:
For i = 1 To 6
a = Int((Rnd() * (n2 - n1) + n1) * 100) / 100
Range("a" & i + 1) = a
Next
Range("a8") = "=round(average(a2:a7),2)"
'判断重复
For i = 2 To 6
For j = i + 1 To 7
If Range("a" & i) = Range("a" & j) Then GoTo 10
Next
Next
'判断误差是否大于0.1
If Application.Max(Range("a2:a7")) - Application.Min(Range("a2:a7")) > 0.1 Then GoTo 10
End Sub