计算钟形曲线值



在管理大型建筑项目合同和变更的MS Access 2007应用程序中,我需要创建一个代表合同价值的钟形曲线,在一段时间内。

例如,一个5亿美元的合同运行40个月,我需要一个钟形曲线来分配这40个月的合同价值。这个想法是为合同有效期内的现金流预测提供一个起点。

使用VBA,我曾想过创建"每月"值并将它们存储在临时表中,以便稍后在报表图表中使用。然而,我一直在努力找出一个算法。

如果您有什么建议,我将不胜感激。

您将需要从Excel中借用=NORMSDIST()函数,如下所示:

Public Function Normsdist(X As Double) As Double
Normsdist = Excel.WorksheetFunction.Normsdist(X)
End Function

需要一些统计学知识来使用这个函数来分配x个期间的现金流量,假设是标准正态分布。我创建了一个Excel表格来演示如何使用这个函数,并张贴在这里:

现金流量样本的正态分布。xlsx

如果出于某种原因您不喜欢使用Excel函数,您可以提取任何统计文本或搜索生成一系列正常值的公式。在你的例子中,你想把现金流分布在每个尾部的三个标准差上。总共是6个标准差。将40个月除以6个标准差,每个数据点(月)等于6/40 = 0.15个标准差。使用for/next/step或类似的循环将其生成临时表,如您所建议的,并使用柱状图绘制它(如上面的Excel示例所示)。将只需要一点VBA编码,使此变量为用户提供的月数和总合同。

标准正态分布的均值为0,标准差为1。如果你想要一个更平坦的钟形曲线,你可以使用NormDist函数,在这里你可以指定平均值和st。

最新更新