甘特图(Gantt chart)又称为横道图、条状图(Bar chart),以提出者亨利·劳伦斯·甘特(Henry Laurence Gantt)先生的名字命名,常用于项目管理应用程序。
Excel并不是专业的项目管理软件,但创建简单的甘特图是很容易的。Excel中的甘特图由“堆积条形图”制作,通过条状图来显示项目、进度和其他时间相关的系统进展的内在关系随着时间进展的情况,如下图所示。
甘特图示例
上面的甘特图描述了一个项目计划,横轴表示项目的总时间,每个横条都表示一个项目任务,査看者可以很快看出每个任务的持续时间,识别出重叠的任务。创建该图表很简单,仅需六个步骤:
1)制作项目进度表,该项目数据在A2:C13中,列A包含任务名称,列B包含对应的起始日期,列C包含任务的持续时间(单位为天数)。
项目进度表
2)根据项目进度表创建一个“堆积条形图”,注意单元格A1必须留空,否则Excel会把列A和B都作为类别(垂直)坐标轴,如下图所示。
错误姿势:创建堆积条形图(单元格A1非空)
正确姿势:创建堆积条形图(单元格A1留空)
3)选择类别(垂直)坐标轴,打开“属性”任务面板,在“坐标轴选项-坐标轴”下:勾选“逆序类别”,以便从顶部开始按顺序显示任务;如果习惯于在底部显示日期,还可以勾选“横坐标轴交叉-最大分类”。
设置类别(垂直)坐标轴
4)选择值(水平)坐标轴,打开“属性”任务面板,在“坐标轴选项-坐标轴”下:调整边界的“最小值”和“最大值”设置,以便在坐标轴上显示想要的日期(WPS表格中直接输入日期值无效,需要输入日期的序列号;Excel中直接输入日期值有效,会自动转换为日期序列号);调整主要和次要单位,这是为了调整主要和次要网格线疏密;修改数字的“格式代码”,将默认的“yyyy/m/d”修改成“mm/dd”并点击“添加”按钮,这里是为了以去掉年份,使坐标日期显示更加简洁。
设置值(水平)坐标轴
5)选择“开始日期”数据系列,打开“属性”任务面板,在“系列选项-填充与线条”下:“填充”设置为“无填充”、“无线”设置为“无线条”,即将“开始日期”数据系列变“透明”而“隐藏”起来。
隐藏“开始日期”数据系列
6)根据需要进一步修改颜色、添加网格线、删除图例等等,此处略。
项目计划甘特图制作完成!
现在,大声告诉我,学会了没!(残忍敲黑板~)
OK,现在我们已经学会了在Excel绘制简单的甘特图来管理项目计划,但是我们会发现上述甘特图仍然存在着不少缺点,例如不能看到完成和未完成状态,无法实时标识和控制当前项目进度...既然用于管理项目,静态甘特图就很难令人满意了,最好是能够「动」起来...So...我们接着尝试制作一份交互式的动态甘特图,先来看下效果~
动态甘特图示例
稀饭不?其实也很简单,跟我学:
1)数据分析和处理:
根据“项目进度表”,项目起止时间为“2019/1/1~2019/2/27”,任意单元格中输入公式 =B13-B2+C13 即可算出总跨度时长为“58天”。
接下来,先创建2个辅助单元格,用来记录“查询进度(截至到查询日期的已完成天数)”和“查询日期”:因为总跨度时长为“58天”,所以我们在单元格E2中录入一个“1~58”的任意整数;结合开始日期和查询进度就能够计算出查询日期,我们在单元格F2中输入公式 =B2+E2 即可。
有了辅助单元格,接着我们就可以针对每一项任务分别计算出“已完成天数”和“未完成天数”:
G列创建“已完成”列字段,使用公式(以E2单元格为例):
=IF(B2>=$F$2,0,IF(B2+C2>=$F$2,$F$2-B2,C2))
H列创建“未完成”列字段,使用公式(以H2单元格为例):
=C2-E2
输入公式后,向下拖拽填充得到完整数据。至于这个公式为什么这么写,自己领悟吧哈哈哈...核心是嵌套IF函数,其语法结构 =IF(测试条件,真值,[假值]) ,详见函数相关教程...
数据分析和处理
2)绘制甘特图:
这里选择绘图数据时,我们需要按住 Ctrl 键,选中ABGH四列数据,中间CDEF列数据不选,然后同样插入“条形堆积图”即可,与前面所述的静态甘特图绘制步骤差别不大,此处略。
3)插入“表单控件”:
这一步是让甘特图动起来的关键,我们点击“插入”选项卡下的“滚动条”控件,在任意位置绘制出一个“滚动条”。接着,右键单击“滚动条”,打开“设置对象格式”,“最大值”改为“58”,“单元格链接”到单元格E2,点击确定即可。现在我们就可以拖动我们的滚动条来控制要查询的项目进度了。
最后,将“滚动条”与甘特图组合起来即可完成动态甘特图制作。
动态甘特图示例
Tips:这里我们用到了“表单控件(早期版本中也称为窗体控件)”,这是制作“可视化仪表盘”的基础之一,通过“表单控件”我们可以制作出很多交互性的动态图表。