Excel甘特图怎么做?用日期数据画横道图
用开始日期和持续天数,在Excel里通过堆叠条形图画出横道图(甘特图)的完整方法,包括数据整理、图表设置、坐标调整和做完后的核对要点。
很多人手里有一份项目进度表,列着任务名称、开始日期和需要的天数,想把它变成一张一眼能看出先后和重叠关系的时间线。这种图叫甘特图,也叫横道图。Excel 本身没有单独做甘特图的功能,但只要数据格式对,用堆叠条形图就能画出来,而且日期改了,图会跟着变。
这篇文章写给需要做项目排期、论文实验进度、活动筹备表或工作计划的读者。你会看到怎么把日期整理成适合作图的结构,怎么一步步设置图表,以及画完后哪些地方容易出错。整个方法只用 Excel 自带的图表功能,不需要安装插件或写代码。
怎么用日期数据做甘特图?一句话结论
堆叠条形图的思路是:把每个任务拆成两段,前一段是“空白”,长度等于开始日期距离起点的天数;后一段是“色块”,长度等于持续天数。把空白段隐藏,就只剩下一段段错开的横条,这就是横道图。下表按你的实际情况给出做法。
| 你的情况 | 推荐做法 | 原因 |
|---|---|---|
| 表里已有开始日期和持续天数 | 直接用这两列作图数据 | 不需要额外计算,步骤较少 |
| 表里是开始日期和结束日期 | 先加一列“持续天数”,结束日期减开始日期 | 堆叠条形图需要的是长度,不是终点 |
| 日期是文本,比如“2024.3.1”格式不统一 | 先统一转成日期格式,再作图 | 文本日期不能参与计算,图会全部错位 |
| 任务很多,要经常更新 | 把数据区域转为表格,并用公式算持续天数 | 新增任务时图表范围可以自动扩展 |
| 只想给一个人看,不需要反复修改 | 手动画完即可,重点放在版式和颜色 | 一次性图表没必要花太多时间搭结构 |
开始之前:先确认这几点
动手前先检查数据,很多“图画不对”的问题都出在这一步。
- 日期是不是真正的日期。 在单元格里输入日期后,如果它靠右对齐,通常是日期;如果靠左,多半是文本。文本日期在作图时会被当成 0 或被忽略,横条会整体错位。
- 任务名称是否互不重复,顺序是否清楚。 甘特图的纵轴就是任务名称,名称重复会让人分不清;表格的先后顺序也就是图里从上到下的顺序,建议提前排好。
- 持续天数的口径是否统一。 有的人把结束当天算在内,有的人不算。定好口径后,所有任务用同一种算法,例如“结束日期减开始日期再加 1”,否则横条长短会不一致。
- 项目的起止范围。 横坐标要覆盖早开始和晚结束的日期。先找出这两个日期,后面设置刻度时就有了依据。
- 是否有需要显示的里程碑或完成比例。 普通横道图只显示时间。如果还要标出进度,可以另加一列“已完成天数”,再用颜色区分,但这会让图表设置复杂一些,建议在基础版本做好之后再加。
在 Excel 里用堆叠条形图画横道图的步骤
- 整理数据区域。 第一列是任务名称,第二列是开始日期,第三列是持续天数。三列之间不要留空列,并确保表头清楚,例如“任务”“开始日期”“持续天数”。
- 计算持续天数(如有需要)。 如果原表只有结束日期,在新列中用结束日期减去开始日期,再视口径决定是否加 1,然后把结果设为数字格式。
- 选中数据并插入堆叠条形图。 框选任务、开始日期、持续天数三列的数据,在插入图表的功能里找到条形图类别,再选择其中的堆叠条形图类型。此时图里会出现两种颜色的横条,第一种是开始日期对应的段,第二种是持续天数对应的段。
- 隐藏开始日期那一段。 单击图中代表开始日期的那一组横条,将其填充设为无填充,边框也设为无。这样它仍然占据位置,但看不见,只剩下持续天数的色块。
- 调整纵轴顺序。 条形图默认把第一行任务放在图的底部。打开纵轴(类别轴)的设置,勾选逆序排列类别的选项,任务顺序就会和表格一致,从上到下排列。
- 设置横坐标的起止范围。 横坐标刻度默认是序列号数字,不是日期。在坐标轴设置中,把小值设为项目早开始日期对应的序列号,把大值设为晚结束日期对应的序列号,再把数字格式改为日期,刻度就会显示成“3/1”这样的形式。
- 美化与收尾。 删除不需要的图例,给图加上标题,将持续天数的颜色设为统一的主色。如果任务较多,可以适当增加图表高度,让每个横条都有足够空间。
做完后逐项核对
图画好后不要急着交付,逐项检查一遍。
| 检查项 | 怎么看 | 有问题怎么办 |
|---|---|---|
| 横条位置是否正确 | 找一个任务,对照表格里的开始日期看它的左端位置 | 检查开始日期是否为文本格式,转换后重新作图 |
| 横条长度是否正确 | 对照持续天数,看横条的右端是否对应正确的结束日期 | 检查持续天数列的公式和口径,是否需要加 1 |
| 任务顺序是否与表格一致 | 看上面一行是否是表格第一项 | 打开纵轴设置,确认逆序排列类别的选项已勾选 |
| 横坐标范围是否覆盖全部任务 | 看左和右的刻度,是否包含早开始和晚结束 | 调整小值和大值,必要时改为更大的刻度单位 |
| 隐藏段是否真的不可见 | 看开始日期那段是否还有颜色或边框 | 单独选中该系列,将填充和边框都设为无 |
| 数据修改后图是否同步 | 改一个开始日期,看横条是否移动 | 如果范围没有扩展,检查图表引用的数据区域 |
📊 核心对比
做横道图常见的三种方式各有侧重,可以根据需要选择。
| 方式 | 适合场景 | 主要优点 | 主要局限 |
|---|---|---|---|
| 堆叠条形图 | 任务不多,需要用日期自动生成时间线 | 数据改动后图会更新,不需要手工拖动 | 进度、里程碑等附加信息需要额外设置 |
| 单元格填色 | 任务较多,想在表格内直接看到时间分布 | 不用设置图表,用条件格式就能完成 | 格子粒度固定,精细到小时的排期不方便 |
| 手动绘制形状 | 只做一次性的展示稿 | 外观自由,可以加箭头和标注 | 日期变化后要手动修改,容易出现误差 |
❓ 常见问题(FAQ)
1. 横坐标显示的是一串数字,不是日期,怎么办?
这是因为 Excel 日期本质上是序列号。在坐标轴的数字格式里选择日期格式,并确认小值和大值是日期对应的数字,刻度就会正常显示。
2. 任务顺序和表格相反,下面的任务反而在上面?
这是条形图的默认行为。打开纵轴的类别设置,勾选逆序排列类别的选项即可。注意此时横坐标可能会跑到图的上方,需要再把横坐标的位置调整回底部。
3. 我的日期是从网页或 PDF 里复制来的,图画不出来,怎么办?
从网页复制的日期常常带有隐藏格式,粘贴后会变成文本。可以先把日期列统一设为日期格式,再重新输入或使用分列功能转换,然后再作图。如果原始进度表只是 PDF 文件,可以用桌面客户端的 PDF 编辑器导出为 Excel,再按上面的步骤处理。
4. 有没有办法在图上显示今天的位置?
普通堆叠条形图不直接支持这个功能。常见做法是另外添加一个辅助系列,把它做成一条竖线。这需要一定的图表设置经验,如果只是临时查看,可以在表格里单独标注今天的日期,或者每次打开时手动确认。
5. 表格里有英文任务名,想换成中文,图会不会跟着变?
图表会引用单元格的内容,改了任务名称,图中的纵轴标签也会随之更新。如果是把整份表格从英文翻译成中文,可以先用文档翻译功能处理 Excel 文件,再检查任务名称和日期是否保持原样。机器翻译的结果,特别是专业术语,建议逐条核对。
📝 总结
Excel 做甘特图的关键,是把开始日期和持续天数整理成干净的数字和日期格式,再用堆叠条形图把开始段隐藏,只留下持续段。整理数据、设置逆序和横坐标范围这三件事做对,大多数横道图就能正常呈现。之后只要更新日期,图表也会跟着更新,适合需要反复调整排期的场景。


