首页指南 › Google 表格做甘特图:三种方法

Google 表格做甘特图:三种方法

Google 表格里做甘特图有三条路,差别比想象中大:一个图表技巧、一个原生的时间轴视图,以及一种完全不用图表的做法。

gantts.app 编辑部更新于 2026年7月19日3 分钟阅读

本页内容
  1. 先说一句:公式在哪都一样
  2. 方法一:堆积条形图
  3. 方法二:原生时间轴视图
  4. 一个完整算例:六项任务,然后来一次延误
  5. 方法三:条件格式
  6. 让图表更好读
  7. 哪种方法给你什么
  8. 各自适合什么场景,以及共同的局限
三种做法,按需求选择:
任务s关键路径今天Excel表格幻灯片浏览器

先说一句:公式在哪都一样

下面所有公式在中文界面的 Google 表格里函数名依然是英文——WORKDAYMAXSPARKLINE 照写,参数之间用半角逗号。国内访问 Google 表格需要相应的网络条件,很多团队实际用的是腾讯文档在线表格或飞书多维表格;这两者的堆积条形图做法、辅助列思路和下面完全一致,公式也基本可以直接搬,菜单名略有差别而已。

方法一:堆积条形图

原理与 Excel 相同,菜单不同。表里放任务、开始日期、结束日期三列,再加两列计算列——偏移量(本任务比项目最早日期晚几天)用 =B2-$B$2横条长度=C2-B2+1。那个 +1 是把结束当天也算进去;漏掉它,当天开始当天结束的任务长度为零,根本画不出横条。

两列都要用格式 › 数字 › 数字改成纯数字,这是最多人漏掉的一步——留成日期格式,表格会去画两个巨大的序列号,横条直接跑到右边界外面不见了。

  1. 按住 Ctrl 选中任务偏移量横条长度三列(A、D、E,不相邻的列要按住 Ctrl 点选)。
  2. 插入 › 图表,在右侧图表编辑器里把图表类型设为堆积条形图
  3. 自定义 › 系列里选中偏移量系列,把填充颜色设为。占位段消失,工期横条浮到正确位置。
  4. 自定义 › 纵轴里勾选反转轴顺序,第一项任务回到顶部。
  5. 给工期系列换色、加图表标题,把横轴整理成看得懂的日期或天数。

这是真正的图表对象,可以调整大小、改样式、复制进 Google 文档或幻灯片,也能下载成图片。但要加里程碑或按阶段分组,就意味着更多辅助列和更多手工维护——真实项目做到这一步,这种方法开始变得沉重。

周 1–8阶段 1任务 A任务 B阶段 2任务 C里程碑今天
不可见的占位段,就是把每条工期横条推到它开始日期上的那个东西。

方法二:原生时间轴视图

时间轴视图是在表格里拿到甘特图布局最快的路子,而且是内置的,一条公式都不用写。

  1. 把数据整理成一张简单的表,至少要有卡片标题开始日期结束日期(或工期)三列。可选的负责人、分组、完成度列会显示在卡片详情里。
  2. 连表头一起选中整个区域。
  3. 插入 › 时间轴,在对话框里确认数据区域后点创建
  4. 表格会新建一个时间轴标签页,在右侧设置面板里逐项映射:卡片标题开始日期结束日期卡片颜色分组依据

缩放可在天、周、月、季度、年之间切换,可以拖动滚屏,点卡片能跳回源数据那一行。做路线图确实好用。但要注意:时间轴是一个绑定源表的交互式视图,不是能当图片插进幻灯片的图表对象,也没有依赖关系连线和关键路径高亮。

一个完整算例:六项任务,然后来一次延误

辅助列讲起来容易,写错也容易,而且错得很不显眼。下面是一份带真实公式的小计划,然后改一个数——因为日期一动这张表会怎么样,是唯一有意义的检验。

这张表。一个教育机构官网重构项目,2026 年 3 月 2 日(周一)启动。第 1 行表头,任务在第 2—7 行。A 任务、B 开始、C 结束、D 工作日、E 偏移量、F 横条长度。法定节假日放在 H2:H5:清明补假 4 月 6 日,劳动节 5 月 1 日、5 月 4 日、5 月 5 日。只有 D 列是手工输入的:

  • C2 —— =WORKDAY(B2,D2-1,$H$2:$H$5)。表格里的 WORKDAY 和 Excel 一样,会替你跳过周末,第三个参数用来跳过节假日。那个 -1 不能省:WORKDAY 从开始日向前数,周一算起的五个工作日是 WORKDAY(周一,4),也就是周五。
  • B3 —— =WORKDAY(C2,1,$H$2:$H$5),前置任务结束之后的下一个工作日。整个文件里唯一会"重排"的东西就是它。
  • E2 —— =B2-$B$2,格式设为数字。第一项任务是 0。
  • F2 —— =C2-B2+1,格式设为数字。注意它不是 D2。D 是工作日,图表横轴是自然日,所以 10 个工作日的任务必须画成 12 格长。误把 D 拿去作图,每条横条都会提前结束,而旁边那张表读起来还完全正确。

向下填充,得到:

任务B — 开始C — 结束D — 工作日E — 偏移量F — 横条长度
2需求调研3 月 2 日(周一)3 月 13 日(周五)10012
3设计3 月 16 日(周一)3 月 27 日(周五)101412
4开发3 月 30 日(周一)4 月 27 日(周一)202829
5内容迁移4 月 28 日(周二)5 月 21 日(周四)155724
6测试5 月 22 日(周五)6 月 4 日(周四)108114
7上线6 月 5 日(周五)6 月 5 日(周五)1951

拿最后一行做校验:95 + 1 = 96,正好是 3 月 2 日到 6 月 5 日的完整跨度。如果末行的 E + F 不等于你预期的天数,说明上面某处的约定跑偏了。

顺带看第 4、5 行:20 个工作日画成 29 格,15 个工作日画成 24 格。多出来的不只是周末,还有清明和劳动节。H2:H5 空着的话,这两行都会提前完成,而误差一路传到上线日。调休上班的周六 WORKDAY 处理不了,只能把那项任务的工作日数手工减一天,并在旁边写一行注释说明为什么。

现在改一个数。设计超期三天:把 D3 从 10 改成 13。WORKDAY 链条重算,后面全跟着动——设计 4 月 1 日结束,开发 4 月 2 日至 4 月 30 日,内容迁移 5 月 6 日至 5 月 26 日,测试 5 月 27 日至 6 月 9 日,上线变成 6 月 10 日。两列辅助列自己跟着更新。这就是要用公式而不是硬敲日期的理由。

下面是不会跟着动的部分。

  1. 插入的行是空的。在设计和开发之间插入"客户评审":新的第 4 行没有任何公式,而原来的开发行——现在是第 5 行——仍然指着设计的结束日期。表格照样把图表区域扩大,于是那一空行在最左端画出一条零长度横条,看起来像渲染错误,而不像一处排程错误。
  2. 排序会毁掉整条链。按开始日期排一次序,每个相对引用都跟着它的新邻居走,悄悄从错误的行推导日期。没有警告,存盘关闭之后也撤销不回来。
  3. 第二个前置任务没地方放。如果测试同时要等开发和内容迁移,正确写法是 =WORKDAY(MAX(C4,C5),1,$H$2:$H$5)。它能跑。但图上看不到任何连线,而加一个五天的客户评审就变成 =WORKDAY(C3,1+5,$H$2:$H$5)——一个光秃秃的 5 埋在公式里,没有任何标注。

一个只有表格才有的捷径。如果你只想每行有一条横条、连图表对象都不要,在 G2 写下面这条再向下填充:=SPARKLINE({E2,F2},{"charttype","bar";"color1","white";"color2","#6c4cf1";"max",96})。它在单个单元格内部重现了同一个"透明占位段"的把戏,而因为 max 固定为项目总跨度 96 天,每一行共用同一条坐标轴。它比图表更扛得住插行和重新排序——但它仍然是一张画,不是一份进度计划。

方法三:条件格式

不用图表:顶部横排一行日期,一天一列或一周一列,左边保留任务和起止日期,选中整片网格后走格式 › 条件格式 › 自定义公式,写成 =AND(D$1>=$B2, D$1<=$C2),再选填充色。日期落在任务区间内的格子就自动上色。

混合引用是全部的机关:D$1 锁住行,让每一列去读自己那天的日期;$B2 锁住列,让每一行去读自己那项任务的起止日期。选中区域时要让左上角那个格子保持为活动单元格,因为公式是站在它的角度写的,其余格子按相对位置偏移。

再叠两条规则会好用很多,注意顺序——规则自上而下判断,第一个填充生效,所以横条那条必须排在最上面:=COUNTIF($H$2:$H$5,D$1)>0法定节假日涂成另一种浅色,=WEEKDAY(D$1,2)>5 把周末涂灰。WEEKDAY 的第二参数一定要写 2:它把周一编为 1、周日编为 7,>5 正好是周六周日;默认的 1 从周日起算,会涂错两天。调休上班的周六再单列一份日期,另加一条 COUNTIF 规则改回工作日底色即可。

结果是一张读起来像甘特图、并且就活在表格里的网格,改日期立刻重绘,打印也干净,插入行的容忍度比图表高。三个月以内很实用,超过一个季度列数太多就难以阅读了;里程碑和进度仍然要手写规则,而且它同样对依赖关系一无所知。

让图表更好读

几个小调整对三种做法都有效:加一列阶段并按它排序,或用时间轴视图的"分组依据"聚合相关任务;加一列完成百分比,在堆积条形图里把工期拆成"已完成"和"剩余"两段;把工期为零的里程碑换成对比色。

完成 → 开始ABB 等待 A开始 → 开始ABB 等待 A完成 → 完成ABB 等待 A开始 → 完成ABB 等待 A
四种依赖类型。开始列里的一条公式,只能近似其中的第一种。

依赖关系是硬边界。Google 表格没有"任务 B 在任务 A 结束后开始"这个概念。可以用 =WORKDAY(C2,1,$H$2:$H$5) 伪造完成-开始这一种,但没有可见的箭头,另外三种类型根本没有表达方式,链条一长就很脆。如果依赖关系和自动重排对你的项目重要,那就是该换工具的信号。整体流程见甘特图怎么做

哪种方法给你什么

三种方法都能画出一份进度,但没有一种会出一份进度。它们之间的差别是真实的,只是在这个共同的边界面前显得很小,所以两件事一起放在这张表里:

能力时间轴视图堆积条形图SPARKLINE真正的排程工具
搭建成本两分钟两列辅助列一条公式输入并拖动
跳过周末不会WORKDAYWORKDAY内置
跳过法定节假日不会WORKDAY 第三参数同左工作日历,含调休
单条 FS 链自动重排开始列是公式则可以开始列是公式则可以开始列是公式则可以可以
依赖箭头没有没有没有
一项任务两个前置隐藏的 MAX()隐藏的 MAX()隐藏的 MAX()原生支持
SS、FF、SF 三种类型不支持不支持不支持支持
关键路径没有没有没有自动计算
每项任务的总浮动时间没有没有没有自动计算
资源负荷与超配提醒没有没有没有
基准与偏差手工复制列手工复制列手工复制列保存并自动对比
插入一行后还正常正常公式要重敲公式要补填正常
重新排序后还正常正常不正常不正常正常
能导出成图片不能——它是视图不能——它是单元格PNG、PDF、PPTX

中间那一片"没有"不是在贬低表格,那本来就在电子表格的范围之外。表格存的是你在别处决定好的数字。你要的如果是把它们推导出来——哪项任务在决定交付期、其余任务各有多少余量——再花哨的公式也到不了那里。

A · 3B · 5C · 2D · 4关键路径: A → B → D浮动时间 (C): 3工期: 12
只有穿过网络的最长路径决定完工日期。没有哪张电子表格会替你找到它。

各自适合什么场景,以及共同的局限

时间轴视图用于快速总览和路线图,五分钟就能出结果;堆积条形图用于需要对外分发、插进文档或幻灯片的图表;条件格式用于希望计划始终留在表格里、和其他数据放在一起的场合。想更省事就直接从模板开始:复制一份到自己的云端硬盘,把示例数据覆盖掉即可。

但三种方法都不计算依赖关系,也没有关键路径。任何一项任务延期都不会自动传导到后续任务——除非你把开始日期全写成 WORKDAY 公式,而那也只覆盖单链。导出同样别扭:时间轴视图不是图片,条形图搬进幻灯片时样式经常走样;整表可以用文件 › 下载 › Microsoft Excel (.xlsx) 导出。

表格真正的长处是多人实时协作和"数据本来就在这儿"。一旦需要计划自己会算,就该换工具了——gantts.app 免费、无需注册、无需下载,全部在浏览器里运行:输入任务、拖动横条、连上依赖关系,时间轴自动重排并高亮关键路径,再一键导出 Excel、PowerPoint、PDF 或 PNG。计划小而稳定、或者数据本来就长在表里,就用表格;一旦需要依赖关系、关键路径,或者一张不用人看着就能保持同步的图,就换到编辑器。

原生「时间轴」视图不是甘特图,尽管看起来像。它只呈现时间区间,不理解连线,也没有关键路径。做总览够用;做能自动传递延误的进度计划,不够。

常见问题

Google 表格有内置的甘特图吗?

没有一键生成的甘特图类型,但有「时间轴」视图(插入 › 时间轴),能把带起止日期的表格变成时间轴上的卡片。真正的甘特图要用堆积条形图做,两者都不支持依赖关系和关键路径。

「时间轴」视图和甘特图有什么区别?

时间轴是绑定源表的交互式视图,缩放和分组都很方便,但它不是可编辑的图表对象,不能像图片一样插进幻灯片,也不计算依赖关系和关键路径。

怎么在 Google 表格里加依赖关系?

只能用公式手工模拟,比如把开始日期写成前置任务结束日期加一天。表格画不出箭头,也不会在任务延期时自动重排后续日期。

为什么我的横条从最左边开始?

通常是偏移量系列没有设成透明,或者偏移量、工期两列仍然是日期格式。先把这两列改成纯数字,再检查该系列的填充颜色是否为"无"。还有一种情况是横条长度误用了工作日那一列:图表横轴按自然日计数,含周末和节假日,所以横条长度必须写 =C2-B2+1,十个工作日的任务对应十二格。

能只用一个单元格做出甘特图吗?

可以,用 SPARKLINE。偏移量在 E2、横条长度在 F2 时,写 =SPARKLINE({E2,F2},{"charttype","bar";"color1","white";"color2","#6c4cf1";"max",96}) 就能在单元格内画出一条横条。把 max 固定为项目总天数,每一行才共用同一条坐标轴。它比图表对象更扛得住插行和重新排序,但同样没有依赖关系和关键路径。

法定节假日和调休怎么处理?

把节假日日期列在一个区域里(例如 H2:H5),所有 WORKDAY 都带上这个参数,跨假期的任务就会自动顺延。调休上班的周六 WORKDAY 处理不了,只能把该任务的工作日数手工减一天并写清注释,或者换用带工作日历的排程工具。

国内用不了 Google 表格怎么办?

腾讯文档在线表格和飞书多维表格都支持堆积条形图和条件格式,本文的辅助列思路、公式和踩坑点原样适用,只有菜单名不同。函数名同样是英文,参数用半角逗号分隔。

用 Google 表格做甘特图要花钱吗?

不用。有 Google 账号就能免费使用表格,三种方法都没有额外成本。gantts.app 同样免费,而且连账号都不需要。

怎么转成 Excel 或 PowerPoint?

整表可以用「文件 › 下载 › Microsoft Excel (.xlsx)」导出,图表可以复制成图片贴进幻灯片。更快的办法是在 gantts.app 里做好后一键导出。

本文也提供英文版本。

免费创建你的甘特图

在浏览器中直接使用,无需注册。数据保存在你自己的设备上。

打开编辑器