【问题标题】:Summing randomly generated values in Excel在 Excel 中对随机生成的值求和
【发布时间】:2015-05-20 09:43:47
【问题描述】:

我试图从一个短列表中随机选择值,对它们求和,然后多次迭代该过程。到目前为止,我认为我成功地生成了这些值:

Work so far

				0.4855981	0	0	FALSE
	Price			0.337666609	0	0	FALSE
1	$29.74 			0.808816075	0	0	FALSE
2	$0.85 			0.906751484	0	0	FALSE
3	$38.24 			0.10572928	1	4	17
4	$17 			0.957321497	0	0	FALSE
5	$25.50 			0.644195743	0	0	FALSE
6	$18.70 			0.133302328	0	0	FALSE
7	$29.75 			0.907771163	0	0	FALSE
8	$14.45 			0.156311546	0	0	FALSE
9	$30.60 			0.871958447	0	0	FALSE
10	$26.34 			0.0790938	1	14	24.65
11	$11.05 			0.696383544	0	0	FALSE
12	$124.95 		0.080728462	1	3	38.24
13	$9.35 			0.03717127	1	10	26.34
14	$24.65 			0.970430159	0	0	FALSE
15	$41.65 			0.814402286	0	0	FALSE
				0.462967917	0	0	FALSE
				0.646432058	0	0	FALSE
				0.49384003	0	0	FALSE
				0.381349746	0	0	FALSE
				0.129594937	0	0	FALSE
				0.576582174	0	0	FALSE
				0.37483142	0	0	FALSE
							
						Total	106.23

在任何一组中,都有 24 次尝试从价目表中选择一个项目。我所做的是随机生成一个数字,如果它小于 0.125(每次尝试从价目表中获取值的机会为 1/8),那么我生成一个介于 1 到 15 之间的随机数,然后通过 vlookup 获取价格。

但是我想多次迭代这个过程,所以说在 100 次中,每次尝试由 24 次组成,我返回的平均值是多少。每次更新随机数时,我都找不到一种简单地将数字添加到自身的方法,而且我的 VBA 非常有限——我正在考虑一个循环,它有一个单击按钮来刷新数字。伪代码,因为我对VBA知之甚少:

for 1=1:100
  clickbutton() #to refresh
  grandtotal=grandtotal+total
end

averagevalue=grandtotal/i

我知道这看起来很简单,但我没有运气搜索如何使用单击按钮刷新,或者这是否是最好的方法。谢谢!

【问题讨论】:

    标签: vba excel random


    【解决方案1】:

    伪代码是一个很好的起点!如果您将工作表中的总单元格命名为“Total”,您应该能够运行以下代码,这是我对您的伪代码的看法:

    noRuns = 100
    grandTotal = 0
    For i = 1 to noRuns
        ActiveSheet.Calculate
        grandTotal = grandTotal + Range("Total").Value
    Next i
    MsgBox "The average value is " & grandTotal / noRuns 
    

    如果这不起作用,请尝试一下,让我知道你的进展情况。

    【讨论】:

      猜你喜欢
      • 2020-08-20
      • 1970-01-01
      • 2012-03-19
      • 2013-07-31
      • 2010-10-15
      • 2018-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多