进度计算方式
进度数字有两种口径:按任务平均(默认,每个任务不论大小都算一票)和按任务权重(重要任务的一票更重)。本页把两种算法的计算过程逐步拆开讲清楚——看完你能自己手工验算任何项目的进度。
先分清三个量
| 量 | 谁说了算 | 举例 |
|---|---|---|
| 任务进度 | 你自己填:勾完成 = 100%,取消 = 0%,或手动选 0~100% | 支付模块做到 60% |
| 任务权重 | 你自己设(默认 1):表达「这个任务是普通任务的几倍重要」 | 支付模块设 5 = 抵 5 个普通任务 |
| 占比 | 系统自动算 = 任务权重 ÷ 总权重,不需要你维护 | 权重 5、总权重 7 → 占比 5/7 ≈ 71.4% |
权重不会改变任务自身的进度(做到 60% 就是 60%),它只决定这个进度对父任务「有多大的话语权」。两件事互不干扰。
方式一:按任务平均(默认)
父任务进度 = 直接子任务进度的算术平均——每个子任务一票,不论重要程度:
| 步骤 | 计算 |
|---|---|
| ① 把子任务进度相加 | 60 + 100 = 160 |
| ② 除以子任务个数 | 160 ÷ 2 = 80% |
优点是简单直观;缺点是「一个核心模块」和「一份文档」各占一票——9 个琐碎任务完成而核心没动,进度也会显示 90%,数字偏乐观。
方式二:按任务权重计算
父任务进度 = 子任务进度的加权平均——每个子任务按权重投票。以下用三个子任务(A 权重 5、B 权重 1、C 权重 1;A 已完成 100%,B、C 还是 0%)完整拆一遍:
第 1 步:算总权重(分母)
| 子任务 | 权重 |
|---|---|
| A·支付模块 | 5 |
| B·接口联调 | 1 |
| C·上线文档 | 1 |
| 总权重 Σ | 5 + 1 + 1 = 7 |
分母 7 就是「这三个任务的重要程度总合」,它也正是甘特图里父任务行权重列显示的数字(标着 Σ子)。它由系统自动求和,不需要任何人把它凑成 100。
第 2 步:算每个任务的占比
占比 = 自己的权重 ÷ 总权重。一句话理解本质:按权重计算,就是按「所有权百分比」分配进度——把总权重想成公司总股本、每个任务的权重想成持股数,占比就是持股比例;父任务进度 = 所有股东按持股比例汇报各自完成度后的汇总结果。
| 子任务 | 计算 | 占比 | 含义 |
|---|---|---|---|
| A(权重 5) | 5 ÷ 7 | ≈ 71.4% | 对父进度有七成话语权 |
| B(权重 1) | 1 ÷ 7 | ≈ 14.3% | 一成半话语权 |
| C(权重 1) | 1 ÷ 7 | ≈ 14.3% | 一成半话语权 |
| 合计 | 7 ÷ 7 = 100% | 话语权永远恰好分完 | |
第 3 步:进度 × 占比,再相加
| 子任务 | 自身进度 | 占比 | 贡献给父任务的进度 |
|---|---|---|---|
| A | 100% | 5/7 | 5/7 × 100 = 71.43 |
| B | 0% | 1/7 | 1/7 × 0 = 0 |
| C | 0% | 1/7 | 1/7 × 0 = 0 |
| 父任务进度 | 71.43 → 四舍五入 71% | ||
这就是公式 父任务进度 = 5/7×100 + 1/7×0 + 1/7×0 = 71% 的全部含义:分母 7 是总权重,分子是「每个任务的进度 × 它的话语权」。写成一行等价公式就是 (5×100 + 1×0 + 1×0) ÷ 7 = 500 ÷ 7 ≈ 71。
换几个数字再练一次(两兄弟 5:2)
| 子任务 | 进度 | 权重 | 贡献 |
|---|---|---|---|
| 支付模块 | 60% | 5 | 5×60 = 300 |
| UI 模块 | 100% | 2 | 2×100 = 200 |
| 父任务「核心开发」 | (300+200) ÷ (5+2) = 500 ÷ 7 ≈ 71% | ||
多层任务怎么算:父任务带着「子树总权重」上楼
上面的例子只算了一层。任务有多层嵌套时,规则是:父任务先在自己的子任务里算出进度,再以「子树总权重」作为自己的权重,参与更上一层的计算(与 Microsoft Project、Jira 的汇总方式一致)。完整两层算例:
| 任务 | 层数 | 进度 | 权重 | 说明 |
|---|---|---|---|---|
| 需求调研 | 1 | 100% | 1 | 叶子任务 |
| 核心开发 | 1 | 71% | 7(=5+2) | 父任务:进度、权重都由上表算出 |
| 上线文档 | 1 | 0% | 1 | 叶子任务 |
| 项目总进度 | (1×100 + 7×71 + 1×0) ÷ (1+7+1) = 597 ÷ 9 ≈ 66% | |||
注意「核心开发」的权重不再是 1 而是 7——它肚子里装着 5+2 的重要程度,上楼投票时按整个子树的分量投。这就是加权模式能体现「一个大阶段比一件小事重要」的原理。
同一棵树在平均模式下的结果:核心开发 = (60+100)÷2 = 80%,项目 = (100+80+0)÷3 = 60%。对比加权模式的 71% / 66%:次要的上线文档在平均模式占 1/3 话语权,在加权模式只占 1/9——这正是两种口径的差别。
开启与切换
- 进入 项目设置 → 其他设置,找到进度计算;
- 选择「按任务数量平均(默认)」或「按任务权重计算」,保存;
- 切换保存后系统立即按新方式重新计算全项目进度,并提示计算结果;随时可切回,切回即还原(已设置的权重会保留,下次再切回加权模式继续生效);
- 选择权重方式后,甘特图表格在「工作日.」与「进度%」之间出现权重列,任务弹窗与侧滑详情也会出现权重输入框。
在哪里设置权重
- 甘特图权重列:直接点单元格输入数字(和改进度的方式完全一样),支持小数(如 0.5、2.5);
- 任务弹窗 / 侧滑详情:进度输入旁的权重输入框(数字输入带上下箭头,可 0.5 一档微调或直接输入);
- 父任务行不可编辑:显示灰色「Σ子」数字,由子任务权重自动合计——想改父任务的分量,去改它的子任务。
权重取值 0~100:1 = 普通任务(默认,全部为 1 时结果与平均模式相同);3~10 = 核心任务;0 = 不参与进度计算(适合纯跟踪型任务,它再没完成也不拖累父进度,父进度满 100% 时它也不会被自动完成)。
常见疑问
全部子任务完成后,父任务会正好 100% 吗?会,精确等于 100%。因为分母就是总权重:全部完成时分子 = 5×100 + 2×100 = 700,分母 = 5+2 = 7,700÷7 = 100。无论权重怎么设(99:1 也一样),占比合计恒为 100%,全部完成必然归满——这也是权重不用凑成 100 的原因。
改了一个任务的权重,别的任务的权重数字会变吗?不会。你只改了那一个任务的数字,兄弟任务的权重值原样不动;系统会自动重新分配「话语权」:把 A 从 1 改成 5 后,三人占比自动从各 1/3 变为 5/7、1/7、1/7——不需要逐个调整,新增/删除任务同理。
切换计算方式后进度数字会变吗?任务没有嵌套(全是一层子任务)且都没设过权重:数字不变。有嵌套:数字会变为「所有叶子任务等权」的口径(每层内部先加权,再按子树分量向上汇总)——保存时的提示会展示重算后的新进度,切回平均模式即还原。
权重不是百分比:设 100 不代表「完成了 100%」,只代表「顶 100 个普通任务的重要程度」。日常用 1/2/3/5/8 这类小数字就足够表达轻重了。也请注意:父任务进度到 100% 的条件是所有权重 > 0 的子任务全部完成——权重再高也不能一票决定完成。
该用哪种方式?任务轻重差不多(日常协作、流程性工作)→ 默认平均即可。项目里核心模块与琐碎任务混杂、进度数字要用来向上汇报或判断风险 → 开启权重,让「重要的没做完」如实压低进度,而不是被杂事灌水。