乐于分享
好东西不私藏

P6和Excel如何搭配使用?这几个技巧让效率翻倍

P6和Excel如何搭配使用?这几个技巧让效率翻倍

P6和Excel,计划工程师桌面上最常用的两个工具。

但大部分人用它们的方式是:在P6里排计划,把结果导出到Excel做报表。这没错,但只发挥了10%的潜力。

P6和Excel的真正关系,不是"导出再处理",而是各司其职、数据互通、互相增强

一、数据清洗:Excel是P6的最好伴侣

场景:批量修改作业属性

P6的Activity Table里,批量修改同一列的数据很容易(选中列→右键→Fill Down)。但如果你要基于复杂逻辑批量修改,P6就力不从心了。

比如:把某个WBS下所有Duration > 10天的作业,Priority改为"High",同时给它们统一加上某种Note?P6里要一个个手动改。

正确做法:导出 → Excel处理 → 导入

  1. 从P6导出Activity Table(XLS格式),包含Activity ID、Activity Name、Duration、WBS、Priority等字段
  2. 在Excel里用公式批量计算新值:=IF(AND(WBS="xxx",Duration>10),"High",Priority)
  3. 把处理后的Excel另存为CSV(逗号分隔)
  4. 在P6里用Import Wizard(项目管理→导入/导出)导入更新后的作业属性

关键技巧:Import的时候映射要对

P6字段
Excel列
注意事项
Activity ID
必须包含,作为匹配键
Project ID也要包含,否则导入时会找不到项目
Duration
数值,单位:小时
P6内部以小时存Duration,导入时注意单位换算(1天=8小时)
Start / Finish
日期格式
如果作业是"进行中",导入Start/Finish会覆盖实际日期,要小心

重要提醒:导入前一定要备份当前项目(Export to XER)。导入操作是不可逆的,一旦数据搞乱了,只能从备份恢复。


二、报表生成:P6做数据,Excel做展示

P6的报表为什么不好用?

P6内置了Report Wizard,可以生成各种报表。但用过的人都知道:

  • 格式调整很痛苦
    :P6的Report Writer界面像1995年的产品,调个列宽要半天
  • 图表能力几乎为零
    :想做个折线图展示SPI趋势?P6做不到
  • 跨项目汇总困难
    :你有10个子项目,想做一个合并的进度汇总表?P6 Report做起来很费劲

解决方法:P6负责"出数据",Excel负责"做报表"。

标准流程

  1. 在P6里设计好需要的字段
    (Activity ID, Name, Original Duration, Remaining Duration, % Complete, Start, Finish, Total Float, WBS...)
  2. 导出为Excel(XLS)
    ——不要用CSV,XLS格式保留更多格式信息
  3. 在Excel里用数据透视表做汇总
    :按WBS层级汇总完成率、按责任人汇总剩余工期、按月份汇总计划完成产值
  4. 用Excel图表展示趋势
    :S曲线(计划vs实际完成产值)、关键路径变化趋势、资源直方图
  5. 保存为模板
    :第一次做麻烦,第二次开始只要刷新数据就行

实战案例:某EPC项目,业主要求每周提交"按WBS汇总的进度完成率报表"。P6 Report Wizard做这个报表需要2小时(调格式+生成+导出PDF)。改成"P6导出→Excel数据透视表模板"之后,每次更新只需要10分钟(刷数据→刷新透视表→另存为PDF)。

更高级:用Power Query自动化

如果你经常要从P6导出同类数据,可以更进一步:用Excel Power Query设置自动刷新

  1. 第一次手动导出P6数据,保存为一个固定的Excel文件(比如 P6_Export_Weekly.xlsx
  2. 新建一个Excel文件,用 Power Query → 从文件 → 从工作簿,连接到上面的文件
  3. 在Power Query里做好所有数据处理逻辑(筛选、分组、计算新列)
  4. 以后每次只需要在P6里覆盖导出到同一个文件,然后在报表Excel里点"刷新全部",数据就自动更新了

这套方法的本质:把"数据处理逻辑"和"原始数据"分离。P6只负责产生最新数据,Excel负责把数据变成报表。

P6 vs Excel 报表能力对比

任务
P6
Excel
排程计算
✅ 强项
❌ 做不了
数据透视汇总
❌ 弱
✅ 强项
图表展示
❌ 几乎没有
✅ 强项
跨项目汇总
△ 可以但麻烦
✅ 强项
格式精细调整
❌ 很痛苦
✅ 强项

三、现金流预测:P6+Excel组合拳

为什么P6做现金流不够用?

P6有时间维度、有成本维度,但偏偏没有付款规则引擎

  • P6知道什么时间、什么作业、花了多少钱(计划)
  • 但P6不知道进度款付80%、保留金扣10%、审批后30天付款这些规则
  • 所以P6算出来的"成本时间序列" ≠ "现金流量时间序列"

解决方法:P6出数据,Excel加付款规则,输出现金流预测。

标准流程

  1. P6导出
    :Activity Table + Resource Assignment,按月汇总得到"计划成本发生时间序列"
  2. Excel里加付款规则
    • 收入端:进度款 = 完成产值 × 付款比例(通常80%),滞后审批周期天数到账
    • 支出端:材料预付款(PO金额的30%,订单确认后付) + 到货付款(65%) + 保留金(5%,质保期满后付)
  3. 计算净现金流
    :每月净现金流 = 当月应收 - 当月应付
  4. 累计净现金流
    :判断资金缺口最大的月份,提前准备流动资金

进阶:用Excel Scenario Manager做敏感性分析

现金流预测的最大问题是"假设太多"——业主付款周期真的是30天吗?会不会拖到45天?

在Excel里用Scenario Manager(方案管理器),设置"乐观方案"(付款周期30天)、"中性方案"(45天)、"悲观方案"(60天),一键切换看资金缺口变化。这比P6里调来调去高效得多。


四、数据分析:Excel补充P6的分析短板

P6的分析能力为什么不够?

P6有Global Change、Filter、Group and Sort,能做不少数据分析。但遇到以下场景就尴尬了:

分析需求
P6能做到吗?
Excel呢?
按多个维度交叉分析(WBS × 责任人 × 优先级)
△ Filter可以,但不直观
✅ 数据透视表,秒出
找出"Duration异常长"的同类型作业
△ 可以用Filter,但要手动比对
✅ 条件格式+标准差分析,自动标红
历史进度更新数据分析(过去10周的更新是否合理?)
❌ P6不保留历史快照
✅ 导出多次快照后对比分析
资源效率分析(计划工时 vs 实耗工时)
△ 有Resource Assignment报表
✅ Excel效率曲线更直观

实战技巧:用Excel做P6数据的"异常检测"

计划工程师经常要审查别人提交的进度更新是否合理。一个实用技巧:

检测% Complete更新是否异常

把最近4周的P6进度导出(包含Activity ID, Data Date, % Complete),在Excel里计算:

=本周%Complete - 上周%Complete → 得到"本周进度增量"

然后看:

  • 增量 > 15% 的作业
    :是不是"突击填报"?实际没做那么多,为了赶报告数字好看
  • 增量 = 0% 且已超开始日期的作业
    :是不是"瞒报"?实际延误了但不填
  • 增量突然从0跳到100%
    :是不是把多个周的进度揉在一周里填报了?

这套分析P6做不了,Excel几行公式就搞定。


五、自动化:用VBA打通P6和Excel

P6有API,但大部分人不知道怎么用

Oracle提供了P6 Web Services APIP6 Integration API。理论上可以写程序直接读写P6数据,不需要手工导出导入。

但大部分计划工程师不是程序员,写不了API调用代码。

退而求其次的方案:用VBA自动化"导出 → 处理 → 导入"流程。

实用场景:半自动化工作流

注意:P6 Professional(桌面版)没有直接暴露COM接口给VBA调用。但可以通过间接方式实现半自动化:

  1. 在P6里设置好"导出模板"(Export Template),每次点一下就能导出到固定路径
  2. 用Excel VBA的 Workbook_Open 事件,自动打开那个导出文件、处理数据、刷新报表
  3. 每次的工作流变成:P6点一下导出 → 打开Excel → 自动刷新所有报表

更现代的替代方案:Power Automate + P6 REST API

如果你用的是P6 EPPM(Web版),它有REST API。可以用Microsoft Power Automate

  1. 设置一个定时触发器(比如每周一早上8点)
  2. 调用P6 REST API,获取上周的进度数据
  3. 将数据写入Excel Online的一个表格里
  4. 触发Excel Online计算,生成PDF报表
  5. 自动将PDF报表作为附件发送给相关人

这套流程完全不需要人工介入,适合周期性报表的自动化。


六、总结

场景
正确做法
批量修改作业属性
P6导出 → Excel公式处理 → Import回P6(记得先备份XER)
周期性报表
P6导出数据 → Excel数据透视表/图表模板 → 刷新数据
现金流预测
P6出计划成本时间序列 → Excel加付款规则 → 净现金流预测
进度数据异常检测
导出多期P6快照 → Excel对比分析 → 找出异常更新模式
高度自动化
P6 EPPM + REST API + Power Automate(或VBA半自动化)

P6 + Excel 搭配使