作为一位 Excel 发烧友,花了一个周末的时间整理了甘特图的绘制技巧,借着这个话题直接分享 6 种超全的甘特图绘制技巧,每一种都有自己的特色+保姆级的制作教程,希望对你有所帮助呀~
先来看 6 种甘特图的高清不同实现效果,另外前方多图多GIF,请放心食用:
另外回答中演示的这 6 种甘特图源文件,我也整理出来分享给大家了,希望对你有帮助呀~
首先是最基础的「甘特图」,功能上只展示了项目/活动的工期,并无其他功能,这也是最简单的甘特图,先来看下整体的实现效果,如下所示:
虽然非常简单,但是在某些只需要看到工期安排的场合下,非常好用,接下来我们来看下是如何制作的。
首先是「作图数据」预处理,共有 3 个步骤:
只要满足上面的 3 个需求,就可以到「作图」这一步,作图总共被我划分成了 ⑤ 个步骤。
① 首先,选中「所有数据」,直接插入「堆积条形图」,如下:
② 条形图默认会将Y轴的顺序颠倒,右击「垂直坐标轴」,设置「逆序类别」,调正Y轴的顺序。
③ 现在「甘特图」的整体模型就已经出来了,接下来设置「间隙宽度」为「30%」,将不需要的数据系列设置为「无填充」。
④ 看着还是比较奇怪,因为 Excel 的横坐标时间轴没有调整对,接下来调整下「X轴的范围」,只需要将「起点&终点」分别手动输入「项目的起点&终点日期」即可。
⑤ 现在甘特图的整体结构已经出来了,接下来只需要调整配色、插入标题、设置线框、添加脚注/数据标签,这些都属于比较基础的,就不录制动图演示了。
现在就完成了一个最基础的甘特图图表,当我们更改工期的时候,图表也会联动,如下:
来总结一下「数据预处理」和「作图」两个阶段的 ⑥ 步骤汇总:
是不是非常简单呢?好了,可以说所有的“堆积条形图制作的甘特图”都差不多基于以上步骤。
现在我们已经学会了 1+1,接下来要来尝试制作“原子弹”了(开玩笑,开始升级甘特图)
当然如果我们想看到“带任务进度”的甘特图呢?方法一分享的图表就不再适用了,不过我们可以对其进行升级,实现效果如下:
步骤和「基础甘特图」非常接近,不过不一样的就是「数据结构」。
我们需要将“计划工期”拆分成“已完成工期”和“剩余工期”,其中“已完成工期”手动录入,“剩余工期”使用 Excel 公式:
然后选中除「计划工期」的所有列,绘制「堆积条形图」,框选不同的列也有技巧,选择的时候按住「Ctrl键」即可,如下:
接下来几乎所有的步骤都和基础甘特图一模一样,这里就不再演示了。
另外如何将「剩余工期」单独填充成「虚线」呢?只需要将数据系列中「填充」设置为「图案填充」,选择想要的图案即可。
同样这个图表也是可以动态联动的,当我们修改「计划工期」或者「已完成工期」时,图表会自动更新,是不是非常强!
整理下「带任务进度甘特图」的整体制作步骤:
好啦,基于基础图表,已经衍生出第一种图表了,想想也不难,接下来我们来对它再次升级。
在某些复杂的情况下,部分任务/项目可能会存在跨越多个时间段的情况,上面的两种技巧又不能直接使用了,不过可以继续升级改造。
例如下图演示的“项目A和项目D”,共分成 2 个阶段来完成,如下所示:
恰好这个图也是提问者想要实现的图表,我称之为“跨阶段甘特图”,绘制起来其实也非常简单。
本质上也是利用了“辅助列”设置为“无填充”的方式来实现的。
首先我们来升级下数据结构,这里由于最多被划分成了 2 个阶段,所以:
数据结构如下所示,当最多划分成 3 个阶段乃至 N 个阶段时,也以此类推:
接下来选中所有除「工期」字段的数据,例如:一阶段工期和二阶段工期不要选中,然会绘制「堆积条形图」:
绘制完图表之后,是不是发现和前面的步骤非常接近,没错,我们又回到了「带任务进度甘特图」的操作技巧。
唯一多的操作就是,我们需要将「辅助」列设置为「无填充」。
对于没有「二阶段」分配的项目,后面所有的数据只需要设置为 0 即可,如果需要新增二阶段,则需要修改这几个字段的数据:辅助、二阶段工期、二阶段完成,同样也是联动的。
简单吧!但是功能是不是非常多,这些都是由基础的「堆积条形图」衍生出来的,不过上面这些还不完善,因为工期没有统一,而且需要通过手动来修改。
能否实现通过按钮点击来增加或者减少工期呢?答案是可以,接下来我们继续升级图表。
在实际的工作中,通过手动来修改“已完成工期”的数据,非常容易出错,特别是在数据比较多的i情况下,其实针对这点,可以插入「Excel控件」,通过控件来控制任务进度。
例如:通过「滚动条」控件来实现任务进度的修正,如下所示:
这里我们用了「带任务进度甘特图」的数据来进行演示,不过多添加了几个辅助单元格:
数据结构如下,其中「一阶段完成」字段也是使用公式计算的,一会来介绍:
首先我们插入一个控件,选择「开发工具」选项卡下的「滚动条」,如下:
然后右击「滚动条」,选择「设置控件格式」,配置如下参数:
简单解释下这两个字段的含义:
现在我们操作滚动条,当前天数和当前日期就会发生变化了, 接下来我们设置「一阶段完成」的单元格公式如下,并向下填充:
含义也很简单,即判断「当前日期」是否超过了各个项目的「计划开始时间+计划工期」。
最后将滚动条放置到合适位置,就完成了这幅带控件的甘特图了。
简单吧,不过这个技巧只能在 Excel 上完成,而且对 Excel 的兼容性非常强(Excel 2007或者以上均支持),WPS对控件的支持能力较差,可能会出现不兼容的情况。
另外部分小伙伴的「开发工具」选项卡默认是没有开启的,可以点击「文件-选项-自定义功能区」,勾选上「开发工具」即可开启了。
另外如果觉得这些甘特图还不够美观,其实利用「单元格+函数+条件格式」同样也可以绘制出非常专业的甘特图,小北平时也收集+制作了几个。
不过由于制作难度比较大,这里就不先分享详细的教程,如果需要用到这么专业的图表,除非特殊情况,否则一般推荐用专业的甘特图工具。
例如:下方的「项目规划表」,即使用函数+条件格式制作而成的,交互功能也非常强:
或者是这种更加复杂,带有滚动条控件+日历的甘特图,利用:控件+函数+条件格式制作,交互功能会更强,而且功能更多,不过制作起来太复杂了。
亦或者是带有「关键路径分析」功能的甘特图,如下:
或者是将「Todo列表+任务优先级」加入到甘特图中,形成功能更加丰富的工具,如下:
当然,Excel作为一个超复杂的电子表格管理系统,本身还有 VBA 的加持,早就可以算是一个图灵完备的工具了,几乎你能想到的甘特图功能,都能利用 Excel 开发出来,就是难度大小的问题。
另外在 Office 内置的模板库里就能找到不少的甘特图模板,操作技巧也很简单,点击「文件」-「新建」,直接搜索“甘特图”即可:
看到回答中有知友分享了用「散点图」来模拟甘特图,虽然也能实现,但是缺陷也很大:
所以放到了最后才推荐,例如下图,即使用「散点图+误差线」的方式来模拟:
首先来看下数据结构,共有 4 个字段,分别是:项目名称、计划开始时间、Y、计划工期,这里的 Y 固定是从 1~N,总共有 N 个项目,就到 N。
然后选中「计划开始时间」和「Y」,直接插入散点图,如下:
然后为「散点图」添加 X 轴的误差线,并设置误差线为「特定的值」,选择 E 列数据,结果如下:
最后为误差线设置粗细为「13磅」,添加数据标签、标题、脚注、logo 等元素,一幅基于「散点图」的甘特图就制作完毕了。
同样这一份图表也是支持联动的,不过误差线默认没法设置多段,所以没法直接通过分段来设置进度(如果需要设置进度,需要继续添加辅助散点数据,和方法二类似)。
好了,以上就是本次要分享的 6 种甘特图绘制技巧了,你学会了么?如果对你有帮助,在收藏浏览的同时不要忘记点个「赞」+「关注」哦,下次还能收到知乎推荐的更多优质回答。
暂时先分享到这里了,作图花了一个周末,写回答花了 3 个小时,持续更新中,另外这篇回答的练习文件稍后我也会整理上来分享给大家。
如果你还有其他想学的技巧,可以 ,我会更新上来,我的其他高赞回答,也是非常有用的学习资料,希望对你有帮助~
一、C++函数指针详解 1. 定义 每一个函数都占用一段内存单元,它们有一个起始地址,指向函数入口地址的指针称为函数指针。 2. 语法 指向函数的指针变量的一般定义形式为: 数据类型 (*指针变量名)(参数表); 3....
C++常用函数 XML JSON格式转换数据格式在编程里面很常见,不同的系统都会有自己的标准。因为给有各的定义,每次做第三方开发系统对接的时候数据格式标准都是头疼的事情。在开发过程中比较常见的比如有Json、XML、Key...