excel学习库

excel表格_excel函数公式大全_execl从入门到精通

excel根据固定个数和固定和生成随机数,VBA来帮你!

每当需要在Excel中生成一组特定条件下的随机数时,很多人可能会觉得手足无措。

你可能曾经遇到过这样的情况:项目需要你生成一组10个数字,它们的总和必须精确为100

手工计算和生成这样的数值是件相当繁琐的事情,更别提还要确保每次生成的数值都是随机的了。

那么,有没有一种方法能够轻松应对这个问题呢?答案是肯定的!

今天,让我们一起探索如何利用Excel的强大功能,轻松实现这一目标。

Excel中实现根据固定个数和固定和生成随机数,并没有对应的内置函数可以引用,但我们可以通过使用VBA来实现这个效果。

01 直接生成所需随机数

1.启动VBA编辑器。打开Excel表格,并按下Alt + F11组合键,打开VBA编辑器。

2. 插入新模块。在VBA编辑器中,依次点击菜单栏中的【插入】—【模块】,或者右击任意模块,选择“插入”,再选择“模块”,这两种方式都可以快速插入一个新的代码模块。

3. 编写VBA代码。在新插入的模块中编写以下VBA代码来实现生成随机数的功能:

Sub GenerateRandomNumbers()

Dim count As Integer

Dim total As Integer

Dim sum As Double

Dim i As Integer

'指定生成随机数的个数和总和值

count = 10

total = 100

'生成随机数序列

Randomize

For i = 1 To count

Cells(i, 1) = Int((total - sum) * Rnd) + 1

sum = sum + Cells(i, 1)

Next i

'确保最后一个数值使总和达到目标值

Cells(count, 1) = total - sum

End Sub

4. 运行VBA宏。在VBA编辑器中,按下 F5键或点击工具栏中的运行按钮,执行这个宏。

5. 查看生成的随机数。回到Excel表格中,我们将看到生成的符合要求的10个随机数序列被填入第一列中。

倘若觉得生成的随机数不满意,可再次按下F5键重新生成随机数。

02 VBA自定义函数

使用VBA自定义函数在Excel中生成符合固定个数和固定和要求的随机数,可以让这个功能更加灵活和便于重复使用。

1.进入VBA编辑器。打开Excel表格,按下 Alt + F11组合键,打开VBA编辑器。

2. 插入新模块。在VBA编辑器中,依次点击菜单栏中的 【插入】—【模块】,插入一个新的代码模块。

3. 编写VBA自定义函数。在新插入的模块中编写以下VBA代码来创建自定义函数。

Function GetSJNumbers(count As Integer, total As Double) As Variant

Dim result() As Double

Dim sum As Double

Dim i As Integer, j As Integer

ReDim result(1 To count)

' 生成随机数序列

Randomize

For i = 1 To count

result(i) = Int((total - sum) * Rnd) + 1

sum = sum + result(i)

Next i

' 确保最后一个数值使总和达到目标值

result(count) = total - sum

' 将结果数组转置

Dim transposedResult() As Double

ReDim transposedResult(1 To UBound(result), 1 To 1)

For j = 1 To UBound(result)

transposedResult(j, 1) = result(j)

Next j

GetSJNumbers = transposedResult

End Function

4. 保存并关闭VBA编辑器。在VBA编辑器中,保存代码并关闭编辑器窗口,回到Excel表格界面。

5. Excel中使用自定义函数。现在我们可以在任何Excel单元格中使用这个自定义函数了。

例如,在单元格中输入类似于 = GetSJNumbers (10, 100),按下回车键,Excel会自动计算并填入符合条件的随机数序列。

当然这个参数可以根据自己的需求更改哦,自定义函数更为灵活。

通过以上分享的两种方法,不仅可以轻松生成符合特定个数和总和的随机数,还能在工作中大显身手,提高效率。

不要害怕尝试新的功能和技巧,Excel的强大功能总能为你的工作带来更多便利和惊喜!

若有疑问,或者分享您的经验,欢迎在下方评论区留言交流哟~

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接