我想知道是否有人可以在Excel中解决一个简单的查询问题。基本上,我想要从数组中获得一个随机生成的字符串。
我使用的公式是:
=INDEX({"Day","Night","Mixed"},RANDBETWEEN(1,3))
这个可以运行,但是每当我在不同的工作表之间切换时,所选值会改变而不是固定的。有没有任何想法?
我想知道是否有人可以在Excel中解决一个简单的查询问题。基本上,我想要从数组中获得一个随机生成的字符串。
我使用的公式是:
=INDEX({"Day","Night","Mixed"},RANDBETWEEN(1,3))
请进入选项->公式->启用迭代计算
然后在B1中使用这样的公式:
=IF(A1="","",IF(B1="",INDEX({"Day","Night","Mixed"},RANDBETWEEN(1,3)),B1)
您可以使用自引用的UDF,类似以下代码:
Function RandInArray(MyString As String, ByRef Target As Range)
Dim MyArr As Variant
If Target.Text = 0 Then
MyArr = Split(MyString, ",")
RandInArray = MyArr(Application.WorksheetFunction.RandBetween(LBound(MyArr), UBound(MyArr)))
Else
RandInArray = Target.Value
End If
End Function
=RandInArray("Day,Night,Mixed",B1)
注意它自己引用了B1。