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

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

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