# Excel Copilot 甘特图：按前置任务与工作日重算，节假日改动后检查固定里程碑

12项任务含2个不可移动里程碑，起点10月19日，10月23日为本题假日。原生WORKDAY.INTL重算与独立DAG结果一致，T01增加至12日后M01保持11月5日并报CONFLICT。

## 文件身份

所有人物、组织、数值为原创虚构教学资料。作者本地原生参考不代表目标SaaS实测；本题未登录目标账号、购买权益、调用付费API、发送评论/邀请或写主日历。

## 七步操作

1. 先拒绝循环与未知前置

检查12项稳定ID、工期与前置边，先用验证器拒绝循环和未知前置ID。

2. 固定起点、工作日与里程碑

向Copilot固定起点、周末代码、假日及固定里程碑，要求原生公式而非静态日期。

3. 按最晚前置计算开始结束

为工期任务设结束日WORKDAY.INTL(开始,工期-1)，后继从最晚前置结束后的工作日开始；里程碑零工期单独处理。

4. 用公式和条件格式做甘特

用真实日期列和条件格式生成甘特，不允许只画图片，保存公式源。

5. 独立抽查跨周末与假日

独立重算基线，抽查一项跨周末、一项跨假日和两项里程碑。

6. 增加工期后检查冲突

在副本增加上游工期和一条假日，检查全部受影响后继传播；固定日不移动，冲突单独报错。

7. 保存基线、变更和可重算公式

交付两版原生表、日期差异和无环检验；重开重算后日期与参考一致。

## 独立验证

在复制的目录运行 `python3 -B verify.py`。需要Python3，PDF验证依赖pypdf、原生表格只读检查依赖openpyxl，文档用标准库读取OOXML。教材的本地HTML查看器直接在浏览器打开，不需要连接第三方服务。

## 原生文件

- gantt-reference.xlsx
- schedule-input.xlsx

## 验收

- 原生公式仍存在，非硬编码日期；前置结束与下一工作日规则一致。
- 工期/假日变更后只有依赖范围日期变化，周末和假日不计入工期。
- 固定里程碑不被自动延后，超期与循环两项负例能明确拒绝/报告。

## 账户与功能依据

- Microsoft：Copilot in Excel 原生编辑能力 https://support.microsoft.com/en-gb/excel/copilot/get-started-with-copilot-in-excel
- Microsoft：WORKDAY.INTL https://support.microsoft.com/en-us/excel/functions/workday-intl-function
