我想创建一个excel页面,首先我在值0-9之间有四个随机数,可以根据需要更新。通过在四个单元格(例如A1-D1)中使用=RANDBETWEEN(0,9)
,这很容易。现在是一个棘手的部分我希望每个随机数在0到9之间达到某个值时停止,这样如果我不断更新公式,如果四个随机数单元格中的一个达到某个值,它将停在那个值,然后不再产生随机数。
因此,例如,如果我将A1设置为=RANDBETWEEN(0,9)
,我可以继续刷新该单元格,直到它变为5(或任何其他数字0-9),然后停止。
为实现这一点,我想说一下:
=IF(A1=5,5,RANDBETWEEN(0,9))
当然这不起作用,因为它是循环的。如何在Excel中实现此目的?
答案 0 :(得分:4)
在文件中 - >选项 - > FORMULA菜单,启用迭代计算。最大迭代次数为1
然后使用您建议的公式:
=IF(A1=5,5,RANDBETWEEN(0,9))
它等于5时会停止并停留在那里。
或者您可以使用与@ Gary'sStudent
类似的功能Function MyRandBetween(Strt As Long, Ed As Long, Sty As Long) As Long
Application.Volatile
If Application.Caller.Value = Sty Then
MyRandBetween = Sty
Exit Function
Else
MyRandBetween = Application.WorksheetFunction.RandBetween(Strt, Ed)
End If
End Function
然后你的公式将是
=MyRandBetween(0,9,5)
它将在5点停留并留在那里。否则它将随机选择一个数字。
答案 1 :(得分:1)
试试这个短宏:
Sub Leave5Alone()
With Range("A1")
If .Value = 5 Then
Else
.Value = Application.WorksheetFunction.RandBetween(1, 5)
End If
End With
End Sub
这可以很容易地扩展到任何范围的单元格和停止值。