乐于分享
好东西不私藏

Excel条件格式做甘特图,进度条自动变色

Excel条件格式做甘特图,进度条自动变色

先说结论

不用插件、不用VBA,纯Excel条件格式就能做出带颜色分区的甘特图。核心就三步:设置日期行 → 建立条件格式规则 → 用公式让进度条随完成率自动变色

这个甘特图长什么样

先说效果:横轴是日期,纵轴是任务,每个任务一行彩色条。条的长短代表工期,颜色根据完成率自动变化——未开始灰色、进行中蓝色、已完成绿色、延期红色。

全程不需要画任何图形,纯粹靠单元格填充色实现。

第一步:搭建日期骨架表

新建一个表,结构如下

A列:任务名称
B列:开始日期
C列:结束日期
D列:完成率(百分比)
E列起:日期列,从项目最早开始日期到最晚结束日期,每个日期占一列

比如项目从6月1日到6月30日,E1到AH1分别填6/1、6/2……6/30。

建议日期列用数字格式简化显示,选中E1到AH1,右键设置单元格格式为 M/D,只显示月/日。

任务数据填完后,表的基本骨架就搭好了。

第二步:用公式标记任务区间

这是关键一步。我们需要在日期行的每个单元格里用公式判断:这个日期是否在该任务的工期范围内?

选中所有任务行对应的日期区域(不含标题行),比如E2到AH10。

然后在条件格式中用自定义公式。在选中区域的情况下,打开开始 → 条件格式 → 新建规则 → 使用公式确定要设置格式的单元格

输入这个公式:

=AND(E$1>=$B2, E$1<=$C2)

解释一下:

  1. E$1 是当前列的日期($1锁定行,拖动时行不变)
  2. $B2 是当前任务的开始日期($B锁定列)
  3. $C2 是当前任务的结束日期
  4. AND确保日期在开始和结束之间

设置格式:填充色选浅蓝色。

应用后,每个任务的工期区间会自动显示蓝色填充。

第三步:根据完成率自动变色

单色不够直观。加上完成率的颜色分层:

规则1:已完成(绿色)

在同样的区域新建条件格式规则,公式:

=AND(E$1>=$B2, E$1<=$C2, E$1<($B2+($C2-$B2+1)*$D2), $D2>=1)

格式:填充绿色

逻辑是:如果完成率≥100%,且日期在工期范围内,显示绿色。

规则2:进行中(蓝色)

这条其实就是第一步的规则,保持不变。

规则3:延期(红色)

公式:=AND(E$1>=$B2, E$1<=$C2, E$1>($B2+($C2-$B2+1)*$D2), $D2<1)

格式:填充红色

逻辑:日期超过了当前进度应该到的位置,但完成率还不到100%,说明延期了。

规则4:未开始(灰色)

公式:=AND(E$1>=$B2, E$1<=$C2, E$1>($B2+($C2-$B2+1)*$D2), $D2=0)

格式:填充浅灰色

注意规则的优先级顺序。

在条件格式管理器中,红色和绿色的规则要排在蓝色之前,这样才能正确覆盖。

第四步:微调让图表更好看

几个小优化能让甘特图更像样:

隐藏网格线:视图 → 取消勾选网格线,让填充色更干净。
加边框:选中日期区域,加浅灰细边框,让任务条边界更清晰。
日期列宽统一:选中所有日期列,统一列宽为3.5左右,太宽条会断开,太窄看不清。
冻结窗格:冻结A到D列和第1行,滚动日期时任务名和完成率始终可见。
隔行着色:给A到D列的数据区域加交替行颜色,方便对照任务和对应的条。

动态效果:改完成率颜色跟着变

这个甘特图最大的优点是完全动态

当你修改某个任务的完成率时,颜色条会自动更新:

  1. 把完成率从50%改成100%,蓝色条全部变绿
  2. 把完成率从80%降到30%,部分条变成红色(延期)
  3. 新增任务填入日期后,条自动出现
不需要任何手动操作,所有变化都是实时的。

适用场景和局限

适合中小型项目的简单进度跟踪,比如部门周计划、活动筹备、小型开发项目。

局限也很明显:

  1. 不支持任务间的依赖关系(A完成后B才开始那种)
  2. 日期列多了表会很宽,超过两个月建议拆分
  3. 不能鼠标拖拽调整工期(那是专业甘特图软件的事)

但如果你只是想在Excel里快速看一眼项目进度,这个方案比装插件快多了。

整体操作清单

  1. 建表:任务名、开始日期、结束日期、完成率 + 日期列
  2. 选中日期区域,加条件格式公式 =AND(E$1>=$B2, E$1<=$C2)
  3. 新增完成率规则(绿/红/灰),注意优先级
  4. 隐藏网格线、调列宽、冻结窗格
  5. 修改完成率,验证颜色自动变化
整个过程不超过10分钟,但效果比想象中好得多。