Excel – 初始值和最终值是已知的,如何以降序生成随机数?
在Excel中,我想要生成1000行的值,我只知道初始值和最终值。
例如,单元格a1 = 0.6,单元格a1000 = 0.2,我希望中间的值在不需要从每行到另一行减less相同数量(随机数量)的缓慢减less,只要它满足初始最终的价值和变化是从大到小的顺序?
任何想法我怎么能创造一个公式来实现这一目标? 谢谢
尽pipe用一个公式可以做到这一点,但是在这两个数字之间的所有998行都被复制下来,我不认为它会给出所需的结果。 相反,我会做三个步骤:
- 使用公式计算这两个数字之间的随机数:
=(RAND()*0.4)+0.2
,从第2行复制到999 - 复制列
A
并将特殊值>>值复制到其顶部 - 按升序对列表进行sorting。
使用Sheet1中的数据运行macrosdural :
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