Excel - 初始值和最终值是已知的,如何在降序之间生成随机数?

时间:2015-08-21 13:19:11

标签: excel

在Excel中,我想生成1000行值,我只知道初始值和最终值。

例如,单元格a1 = 0.6,单元格a1000 = 0.2,我希望它们之间的值缓慢减少,只要它们不需要从每行减少相同的量(随机量)到另一行是否满足初始值和最终值,并且变化按降序排列?

任何想法我怎么能创建一个公式来实现这一目标?谢谢

2 个答案:

答案 0 :(得分:1)

虽然使用单个公式可以合理地完成此操作,但在两个数字之间复制了所有998行,我认为它不会给出所需的结果。相反,我会分三步完成:

  1. 使用公式计算这两个数字之间的随机数:
     =(RAND()*0.4)+0.2并从第2行复制到999
  2. 复制列A并在其顶部粘贴特殊>>值
  3. 按升序对列表进行排序。

答案 1 :(得分:1)

使用 Sheet1 中的数据,运行宏 dural

Sub dural()
  Dim v1 As Double, v1000 As Double
  v1 = Range("A1").Value
  v1000 = Range("A1000").Value
  Randomize
  For i = 2 To 999
    Cells(i, "A").Value = Rnd * (v1 - v1000) + v1000
  Next i

  Call SortData
End Sub

Sub SortData()
    Columns("A:A").Select
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A1"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet1").Sort
        .SetRange Range("A1:A1000")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

enter image description here