作者:小北童鞋
来源:芒种学院(ID:lazy_info)
前几天在浏览知乎的时候,发现了一位小伙伴的求助:“如何使用 Excel 绘制甘特图”,居然有 100w+ 个小伙伴浏览过这个问题。
本着补充问题的态度,整理了 Excel 制作甘特图的 5 种技巧并将其制作成模板,哪怕不懂技巧也可以直接套用。
涵盖基础甘特图、带进度甘特图、跨阶段甘特图、动态甘特图、散点甘特图等,整体演示效果如下:
那么这些甘特图究竟是如何制作出来的呢?
小北也整理了长达 4000 字的超详细教程 + 几十张Gif录屏操作,彻底教大家学会利用 Excel 制作甘特图。
基础工期甘特图
首先是最基础的「甘特图」,只能展示项目/活动的工期,并无其他功能,这也是最简单的甘特图,先来看下整体的实现效果,如下所示:
虽然非常简单,但是在某些只需要看到工期安排的场合下,非常好用,接下来我们来看下是如何制作的。
首先是「作图数据」预处理,共有 3 个步骤:
基础数据共有 3 列,分别是项目名称、计划开始时间、计划工期;
作图数据的「项目名称」列字段名必须留空;
时间格式必须是标准日期/时间,格式一般为“yyyy/mm/dd”;
数据结构如下:
只要满足上面的 3 个需求,就可以到「作图」这一步,作图总共被我划分成了 ⑤ 个步骤。
① 首先,选中「所有数据」,直接插入「堆积条形图」,如下:
② 条形图默认会将Y轴的顺序颠倒,右击「垂直坐标轴」,设置「逆序类别」,调正Y轴的顺序:
③ 现在「甘特图」的整体模型就已经出来了,接下来设置「间隙宽度」为「30%」,将不需要的数据系列设置为「无填充」:
④ 看着还是比较奇怪,因为 Excel 的横坐标时间轴没有调整对,接下来调整下「X轴的范围」。
只需要将「起点&终点」分别手动输入「项目的起点&终点日期」即可。
⑤ 现在甘特图的整体结构已经出来了,接下来只需要调整配色、插入标题、设置线框、添加脚注/数据标签,这些都属于比较基础的,就不录制动图演示了。
现在一个最基础的甘特图就完成了,当更改工期时,图表也会联动,如下:
来总结一下「数据预处理」和「作图」两个阶段的 ⑥ 步骤汇总:
保证数据共有 3 列,“项目名称”字段名留空,其他列格式正确;
选中数据绘制「堆积条形图」;
设置条形图的「逆序类别」;
设置条形图的「间隙宽度」和「无填充」;
调整X轴的坐标轴范围;
添加标题、线框、数据标签、脚注等其他图表信息;
是不是非常简单呢?好了,可以说所有的“堆积条形图制作的甘特图”都差不多基于以上步骤。
现在我们已经学会了 1+1,接下来要来尝试制作“原子弹”了(开玩笑,开始升级甘特图)
带任务进度甘特图
当然如果我们想看到“带任务进度”的甘特图呢?方法一分享的图表就不再适用了,不过我们可以对其进行升级,实现效果如下:
步骤和「基础甘特图」非常接近,不过不一样的就是「数据结构」。
我们需要将“计划工期”拆分成“已完成工期”和“剩余工期”,其中“已完成工期”手动录入,“剩余工期”使用 Excel 公式:
然后选中除「计划工期」的所有列,绘制「堆积条形图」,框选不同的列也有技巧,选择的时候按住「Ctrl键」即可,如下:
接下来几乎所有的步骤都和基础甘特图一模一样,这里就不再演示了。
另外如何将「剩余工期」单独填充成「虚线」呢?只需要将数据系列中「填充」设置为「图案填充」,选择想要的图案即可。
同样这个图表也是可以动态联动的,当我们修改「计划工期」或者「已完成工期」时,图表会自动更新,是不是非常强!
整理下「带任务进度甘特图」的整体制作步骤:
将“计划工期”拆分成“已完成”和“剩余”;
剩余数据预处理部分和基础甘特图一模一样;
作图部分和基础甘特图一模一样,只需要单独填充「剩余工期」;
好啦,基于基础图表,已经衍生出第一种图表了,想想也不难,接下来我们来对它再次升级。
跨阶段甘特图
在某些复杂的情况下,部分任务/项目可能会存在跨越多个时间段的情况,上面的两种技巧又不能直接使用了,不过可以继续升级改造。
例如下图演示的“项目A和项目D”,共分成 2 个阶段来完成,如下所示:
恰好这个图也是提问者想要实现的图表,我称之为“跨阶段甘特图”,绘制起来其实也非常简单。
本质上也是利用了“辅助列”设置为“无填充”的方式来实现的。
首先我们来升级下数据结构,这里由于最多被划分成了 2 个阶段,所以:
新增辅助列,其中:一阶段开始时间+一阶段工期+辅助列 = 二阶段开始时间;
新增二阶段字段:二阶段工期、二阶段完成、二阶段剩余;
数据结构如下所示,当最多划分成 3 个阶段乃至 N 个阶段时,也以此类推:
接下来选中所有除「工期」字段的数据,例如:一阶段工期和二阶段工期不要选中,然会绘制「堆积条形图」:
绘制完图表之后,是不是发现和前面的步骤非常接近,没错,我们又回到了「带任务进度甘特图」的操作技巧。
唯一多的操作就是,我们需要将「辅助」列设置为「无填充」。
对于没有「二阶段」分配的项目,后面所有的数据只需要设置为 0 即可。
如果需要新增二阶段,则需要修改这几个字段的数据:辅助、二阶段工期、二阶段完成,同样也是联动的。
简单吧!但是功能是不是非常多,这些都是由基础的「堆积条形图」衍生出来的,不过上面这些还不完善,因为工期没有统一,而且需要通过手动来修改。
能否实现通过按钮点击来增加或者减少工期呢?答案是可以,继续来升级。
动态甘特图
在实际的工作中,通过手动来修改“已完成工期”的数据,非常容易出错,特别是在数据比较多的情况下。
针对这点,可以插入「Excel控件」,通过控件来控制任务进度。
例如:通过「滚动条」控件来实现任务进度的修正,如下所示:
这里我们用了「带任务进度甘特图」的数据来进行演示,不过多添加了几个辅助单元格:
当前天数:用来记录任务的当前天数,默认为0;
工期总时长:任务的总工期,公式为「最后项目-第一项目+最后项目工期」;
当前日期:当前天数+项目起始日期;
数据结构如下,其中「一阶段完成」字段也是使用公式计算的,一会来介绍:
首先我们插入一个控件,选择「开发工具」选项卡下的「滚动条」,如下:
然后右击「滚动条」,选择「设置控件格式」,配置如下参数:
简单解释下这两个字段的含义:
最大值:设置滚动条可以设置的最大值,这里等同于工期总时长;
单元格链接:将滚动条设置的数值映射到当前天数上;
现在我们操作滚动条,当前天数和当前日期就会发生变化了, 接下来我们设置「一阶段完成」的单元格公式如下,并向下填充:
E3单元格 = IF(C3>=$E$14,0,IF(C3+D3>=$E$14,$E$14-C3,D3))
含义也很简单,即判断「当前日期」是否超过了各个项目的「计划开始时间+计划工期」。
最后将滚动条放置到合适位置,就完成了这幅带控件的甘特图了。
简单吧,不过这个技巧只能在 Excel 上完成,而且对 Excel 的兼容性非常强(Excel 2007或者以上均支持),WPS对控件的支持能力较差,可能会出现不兼容的情况。
另外部分小伙伴的「开发工具」选项卡默认是没有开启的,可以点击「文件-选项-自定义功能区」,勾选上「开发工具」即可开启了。
散点甘特图
看到回答中有知友分享了用「散点图」来模拟甘特图,虽然也能实现,但是缺陷也很大:
相对于「堆积条形图」来说过于复杂,功能还不如条形图;
相对于「单元格+函数+条件格式」来绘制功能又太简单;
所以放到了最后才推荐,例如下图,即使用「散点图+误差线」的方式来模拟:
首先来看下数据结构,共有 4 个字段,分别是:项目名称、计划开始时间、Y、计划工期,这里的 Y 固定是从 1~N,总共有 N 个项目,就到 N。
然后选中「计划开始时间」和「Y」,直接插入散点图,如下:
然后为「散点图」添加 X 轴的误差线,并设置误差线为「特定的值」,选择 E 列数据,结果如下:
最后为误差线设置粗细为「13磅」,添加数据标签、标题、脚注、logo 等元素,一幅基于「散点图」的甘特图就制作完毕了。
同样这一份图表也是支持联动的,不过误差线默认没法设置多段,所以没法直接通过分段来设置进度。
好了,那么关于「Excel绘制甘特图」的技巧分享到这里了,如果你还有其他关于 可视化 的使用技巧,可以在文章下进行留言哦~
另外这一份文件已经在商务图表学习群中分享了,如果想要下载的,可以直接联系@芒果老师(微信:mongjoy001)。
想了解数据处理和信息图表的更多思路与技巧?「Excel实战课,让你的图表会说话」超值 Excel 课程了解一下——
芒种零基础 Excel 数据透视表训练营,教你如何快速拆分数据、制作数据分析报告,搞定你的老板,为升职加薪提速!
今天咨询报名,仅需 59.9 元,5小时共计30节课教你零基础成为数据分析高手!👇
搭配Excel商务图表,仅需 69 元,5小时共计58节课教你零基础学会制作高大上的Excel商务图表!👇
↑一课解决你的图表问题
掌握真正的可视化表达思维,并且做出合适的图表,你就能脱颖而出,让身边的人眼前一亮。
学完课程,你也能在10分钟内做出这种动态仪表盘(课程案例):
A: 可以,手机上安装网易云课堂 APP,登录账号即可学习。
A: 当然有,作业点评,课程长期答疑,不怕学不下去。
A: 课程学习完后,还会赠送你一份Excel图表大全,碰上不懂的数据结构,可以直接查询使用什么图表,另外还有16种配色方案模板,让你一键配色。
A: 可以直接扫描下方的二维码,或者直接搜索:mongjoy001,即可添加助理老师进行打卡和答疑。
扫码添加助理老师/课程咨询&答疑