如何在Excel中从给定列表中生成随机值?

如何在Excel中从给定列表中生成随机值?

在Excel中随机生成一个数字并不难,但如果要在给定的列表中生成随机值,似乎就不那么容易了。在本文中,我们将探讨如何在Excel中从给定列表中生成随机值。

用Excel的RANDBETWEEN函数生成随机数字

在Excel中随机生成数字非常简单,只需要使用RANDBETWEEN函数。这个函数可以根据指定的最小值和最大值生成一个随机数。

使用方法如下:

=RANDBETWEEN(最小值,最大值)

例如,我们要在1到10之间生成随机数,可以用如下公式:

=RANDBETWEEN(1,10)

每次按下F9键,Excel都会生成一个随机数字。

用Excel的INDEX和RANDBETWEEN函数生成随机值

如果我们要从给定的列表中生成随机值,可以使用INDEX和RANDBETWEEN函数的组合,具体方法如下:

首先,将待选项输入到单独的列中。为了方便起见,我们称这列为“选项”。

然后,在另外一个单元格中输入以下公式:

=INDEX(选项,RANDBETWEEN(1,COUNTA(选项,1)))

其中,COUNTA函数会计算选项列表中的项数,RANDBETWEEN随机生成一个数值,该值在1和选项列表中的项数之间。

接着,我们需要让Excel每次都随机刷新单元格中的值。这可以通过将工作表的自动计算选项设置为手动来实现。

点击Excel窗口中的“文件选项”按钮,然后点击“公式”选项卡,在“工作簿计算”部分选择“手动”。

这样,每次想要生成一个新的随机值时,只需按下F9键即可。

以下是实际应用时的示例代码:

=INDEX(B4:B14,RANDBETWEEN(1,COUNTA(B4:B14,1)))

在这个例子中,选项列表存在于单元格B4到B14中,这些单元格被称为“选项列”。将以上公式输入到另外一个单元格中即可生成随机值。

用VBA实现自动刷新

我们可以使用VBA代码实现自动刷新Excel工作表。下面是一个简单的VBA例程,可以每10秒更新一次工作表:

Sub RefreshSheet()
'使Excel自动计算所有工作表
Application.CalculateFull
'Refresh every 10 seconds
Application.OnTime Now + TimeValue("00:00:10"), "RefreshSheet"
End Sub

代码的最后一行可以启用一个定时器,使Excel自动计算所有工作表,并每隔10秒更新一次工作表。这样,我们可以将定时器对象分配给一个公开变量S(Sub TimerRefreshSheet),以便我们稍后可以通过单击按钮或调用子程序来启用此功能:

Option Explicit
Public S As Object

Sub AutoRefreshStart()
Set S = New TimerRefreshSheet
End Sub

Sub AutoRefreshStop()
On Error Resume Next
Application.OnTime S.NextTick, "RefreshSheet", , False
End Sub

'功能:每10秒刷新Excel工作表
Class TimerRefreshSheet
Private Sub Class_Initialize()
'定于公共变量,需要重新计时计划任务
Application.OnTime Now + TimeValue("00:00:10"), "RefreshSheet"
End Sub

Private Sub Class_Terminate()
' TODO:释放计划任务
End Sub

Private Sub RefreshSheet()
' 使Excel自动计算所有工作表
Application.CalculateFull
' 下一个Tick
Application.OnTime Now + TimeValue("00:00:10"), "RefreshSheet"
End Sub

Private Function NextTick() As Date
NextTick =Application.OnTime(Now + TimeValue("00:00:10"), "RefreshSheet", , False)
End Function
End Class

结论

本文中我们介绍了如何在Excel中从给定列表中生成随机值。通过结合使用Excel函数和VBA代码,可以轻松地实现此功能。希望这些示例对你的工作有所帮助,快试试吧!

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

Excel 教程