1

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

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

使用 VBA,我曾想过创建“每月”值并将它们存储在临时表中,以供以后在报告图表中使用。但是,我一直在尝试制定算法。

任何关于我如何解决这个问题的建议将不胜感激。

4

1 回答 1

0

您将需要从 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。开发。

于 2014-08-17T02:44:54.060 回答