Appearance
3.1 在 MS Project 中录入风险数据
阅读提示: 本章基于 Primavera Risk Analysis 与 MS Project 联合使用场景编写。菜单、按钮、字段名保留英文原文。
风险分析的起点不是软件,而是数据。本章教你如何在 MS Project 中为任务输入三点工期估算、工期相关性、概率分支和任务存在性。
添加 PRA 工具栏到 MS Project
不添加工具栏也能工作(直接用 MS Project 的 User Duration 字段),但建议安装——它能极大提升效率。
操作路径:在 Primavera Risk Analysis 中点击 File | Microsoft Project | Add Toolbar and Views to Project...,点击 Yes,启用宏后工具栏自动注册到 MS Project 的全局模板(Global.mpt)。
工具栏安装后会在 MS Project 界面顶部出现一排专用按钮:Duration Quick Risk、Progress Wizard、Open In PRA、Duration Inputs、Probabilistic & Cost Inputs、Criticality & Sensitivity Output、P50 Schedule、P80 Schedule 等。详见 3.9 工具栏集成。
打开示例项目
安装工具栏后,打开教程附带的例子文件:
| 步骤 | 操作 |
|---|---|
| 1 | 启动 MS Project |
| 2 | `File |
| 3 | 文件为只读,`File |
这是一个房屋翻新项目,包含 17 个任务:搭脚手架、拆除屋顶覆盖层、砌下层砖墙、砌上层砖墙、电气测试等。

输入三点工期估算
点击工具栏上的 Duration Inputs 按钮,MS Project 会切换到包含以下列的视图:
| 列名 | 含义 | 示例 |
|---|---|---|
| Min Dur | 最乐观工期(Minimum Duration) | 10d |
| Likely Dur | 最可能工期(Most Likely Duration) | 13d |
| Max Dur | 最悲观工期(Maximum Duration) | 20d |
| Duration Correlation | 工期相关性 | 见下文 |
| Duration Function | 分布函数 | 默认为三角分布 |
快捷操作:使用Duration Quick Risk 工具栏按钮,可以基于任务剩余工期按百分比自动批量填充三点估算值——省去逐行输入的麻烦。例如设置 Min=80%、Max=120%,系统自动为所有选中任务填充。
Duration Function 列用于指定非三角分布。例如输入 Uniform(2;10)` 表示均匀分布在 2 到 10 天之间。留空则默认使用三角分布。

PRA 三点估算存储在 MSP 的 User Duration 1、User Duration 2、User Duration 3 字段中。这些是 MSP 的内置自定义字段,无需额外配置。
工期相关性(Duration Correlation)
如果「砌下层砖墙」耗时很长,「砌上层砖墙」大概率也会耗时很长——因为同一个班组施工。工期相关性用来建模这种关联关系。
在 Duration Correlation 列中输入格式为 [Unique ID][Correlation%]。例如:
| 输入 | 含义 |
|---|---|
9[85%] | 85% 正相关于 Unique ID=9 的任务 |
这意味着在蒙特卡洛模拟中,两个任务的工期分布会以 85% 的强度同步变化。
![图:输入工期相关性 "9[85%]"](/assets/book03_page04_img09.jpeg)
注意: 相关性值范围是 0%~100%。85% 表示强烈正相关——一个任务延误时另一个几乎必然延误。相关性设置过高会导致 P80/P95 被人为放大,确认有真实的逻辑关联再设置。
概率分支(Probabilistic Branching)
点击 Probabilistic & Cost Inputs 按钮,切换到概率分支输入视图。
「电气测试」这个任务:80% 的概率一次通过,20% 的概率失败需要返工。概率分支用来建模这种「互斥路线」。
输入格式为 [UPID][概率%];[UPID][概率%]`,概率之和必须为 100%:
| 输入 | 含义 |
|---|---|
12[80%];11[20%] | 80% 走 Unique ID=12 的路径,20% 走 Unique ID=11 的路径 |
Unique ID 是 MSP 中每个任务的唯一编号(不同于行号),在任务信息中可查看。

任务存在性(Task Existence)
拆除屋顶覆盖层后,有 15% 的概率发现屋顶支撑腐烂需要更换。「屋顶支撑腐烂」这个任务有 15% 的概率出现。
在 % Existence 列直接输入概率值:

| 输入 | 含义 |
|---|---|
15 | 该任务有 15% 的概率存在 |
蒙特卡洛模拟时,这个任务在 15% 的迭代中出现并影响工期和成本;其余 85% 的迭代中它不存在,工期和成本贡献为零。
成本数据
每个任务在 MSP 中都有一个剩余成本(Remaining Cost)。PRA 会使用这个成本进行成本不确定性建模:
- 模拟中任务的成本会按照工期比例同步缩放(工期长则成本高)
- 概率性任务在它不存在的迭代中,剩余成本计为零
不需要额外操作——MSP 中已有的成本数据会自动带入 PRA。
实战案例:某住宅装修项目的风险数据录入
案例:深圳某精装住宅翻新项目
项目背景
深圳南山某 120m² 住宅精装翻新,设计工期 45 天(设计 3d + 拆除 2d + 水电改造 5d + 泥瓦 10d + 木工 8d + 油漆 8d + 安装收尾 5d + 验收 4d)。预算 ¥32 万。项目经理在 MSP 中建好计划后录入风险数据。
风险数据建模
| 任务 | Min | Likely | Max | 风险来源 |
|---|---|---|---|---|
| 拆除 | 1d | 2d | 5d | 原装修层厚,可能遇到混凝土 |
| 水电改造 | 3d | 5d | 9d | 老旧管线需更换全屋 |
| 泥瓦铺砖 | 7d | 10d | 18d | 瓷砖缺货、师傅排期冲突 |
| 油漆 | 5d | 8d | 14d | 连续阴雨天没法干 |
相关性设置:泥瓦 → 油漆 65%(瓦工延误连锁影响漆工进场);水电 → 泥瓦 50%(同班组连续施工)。
概率分支:验收场景——一次通过 70%,整改返工 30%(加 3d)。
录入结果
27 个任务的三点估算全部录入完毕,2 组相关性、1 个概率分支设置完成。数据录入耗时约 45 分钟——因为有 Duration Quick Risk 的批量操作,大部分任务只需微调即可。
本章小结
| 要点 | 一句话 |
|---|---|
| 工具栏 | File |
| 三点估算 | Min / Likely / Max 工期,Duration Function 可改分布类型 |
| 工期相关性 | [Unique ID][Correlation%] 格式,范围 0%~100%,确认真实关联再设 |
| 概率分支 | [UPID][概率%];[UPID][概率%] 格式,概率之和 = 100% |
| 任务存在性 | 直接在 % Existence 列输入百分比 |
| 成本 | MSP 剩余成本自动带入 PRA |
英文原版内容版权归 Oracle Corporation 所有。中文翻译、案例、习题由 计划工程师 独立创作。
