在管理大型建筑项目合同和变更的MS Access 2007应用程序中,我需要创建代表一段时间内合同价值的贝尔曲线。
例如,一份价值5亿美元的合约有效期为40个月,我需要一条贝尔曲线来将合约价值分配到这40个月内。这个想法是为合同有效期内的现金流预测提供一个起点。
使用VBA时,我曾想过要创建“每月”值,并将它们存储在一个临时表中,以便稍后在报表图表中使用。然而,我被困在试图找出一个算法。
任何关于我如何解决这个问题的建议都将不胜感激。
发布于 2014-08-17 10:44:54
您将需要从Excel借用的=NORMSDIST()函数,如下所示:
Public Function Normsdist(X As Double) As Double
Normsdist = Excel.WorksheetFunction.Normsdist(X)
End Function需要一些统计知识才能使用此函数在x个周期内分配现金流,假设为标准正态分布。我创建了一个Excel工作表来演示如何使用此函数,并将其发布在这里:
Normal Distribution of a cash flow sample .XLSX
如果出于某种原因,您不喜欢使用Excel函数,您可以提取任何统计数据文本或搜索生成一系列正常值的公式。在您的案例中,您希望将现金流分布在每个尾部的三个标准差上。因此,总共有六(6)个标准差。将40个月除以6个标准差,每个数据点(月)的标准差为6/40 = 0.15。按照您的建议,使用for/next/step或类似的循环将其生成到一个临时表中,并用柱形图表示它(如上面的Excel示例所示)。只需进行一些VBA编码,即可将此变量设置为用户提供的月数和总合同。
标准正态分布的平均值为0,标准差为1。如果您想要更平坦的钟形曲线,可以使用NormDist函数,其中可以指定平均值和st。dev.
https://stackoverflow.com/questions/25105873
复制相似问题