基于Excel的项目进度管理——甘特图从理论与实操
理论基础
项目进度管理(Project Schedule Management),又称为项目工期管理或项目时间管理,是为确保项目按时完工所进行的一系列管理过程。通过制定一个进度计划,加强进度控制,使之不偏离项目运行的轨道,使项目能够顺利交接,按时完成。进度管理包括计划编制、进度检测、进度监控。
项目进度管理需要基于项目范围基准、WBS 细节、项目相关成本、风险、质量、安全要求进行确定。传统施工进度管理方法主要有关键日期法、进度曲线法、横道图法、网络计划法、里程碑事件法、直方图、S型曲线、香蕉曲线等方法。
甘特图是一种非常常用的进度管理工具,又称横道图,由亨利·劳伦斯·甘特(Henry Laurence Gantt)在20世纪初开发,用于规划和控制项目。甘特图,在带有时间坐标的表格中,用一条横向线条表示一项工作,不同的横线表示不同阶段,横向线段起止位置对应的时间坐标表示该项工作的开始和介数时间,横向线段的长度表示该工作的持续时间。不同位置代表各工作的先后顺序,整个进度计划由一系列的横道线组成。甘特图可形象直观地展现不同工序之间的前后搭接关系,简单且易于编制,能够帮助项目经理和团队成员保持对项目进度的清晰视图,并确保项目按时完成。其缺点是无法反映关键线路。
下面我们来实现一个甘特图。其实现效果如下图所示:
基础数据准备
基础信息如下所示:
| 层级 | 任务名 | 负责人 | 完成进度 | 持续时间 | 开始日期 | 结束日期 |
|---|---|---|---|---|---|---|
| 1项目启动 | ||||||
| 1.1需求收集 | 需求收集 | |||||
| 1.1.1用户访谈 | 用户访谈 | 张伟 | 30% | 1 天 | 2024/11/11 | 2024/11/12 |
| 1.1.2问卷调查 | 问卷调查 | 张伟 | 50% | 1 天 | 2024/11/13 | 2024/11/14 |
| 1.1.3需求整理 | 需求整理 | 张伟 | 50% | 1 天 | 2024/11/15 | 2024/11/16 |
| 1.2需求分析与规划 | 需求分析与规划 | |||||
| 1.2.1需求优先级排序 | 需求优先级排序 | 赵敏 | 100% | 1 天 | 2024/11/18 | 2024/11/19 |
| 1.2.2项目范围界定 | 项目范围界定 | 赵敏 | 50% | 1 天 | 2024/11/20 | 2024/11/21 |
| 2设计阶段 | ||||||
| 2.1架构设计 | 架构设计 | |||||
| 2.1.1系统组件定义 | 系统组件定义 | 陈强 | 100% | 2 天 | 2024/11/22 | 2024/11/24 |
| 2.1.2技术选型 | 技术选型 | 陈强 | 50% | 2 天 | 2024/11/25 | 2024/11/27 |
| 2.1.3架构评审 | 架构评审 | 陈强 | 50% | 1 天 | 2024/11/28 | 2024/11/29 |
| 2.2用户界面设计 | 用户界面设计 | |||||
| 2.1.1界面原型设计 | 原型设计 | 刘娟 | 100% | 1 天 | 2024/12/2 | 2024/12/3 |
| 2.1.2界面原型优化 | 界面优化 | 刘娟 | 50% | 1 天 | 2024/12/4 | 2024/12/5 |
| 2.1.3界面原型优化 | 界面细化 | 刘娟 | 10% | 2 天 | 2024/12/6 | 2024/12/8 |
| 2.1.4界面原型出图 | 界面输出 | 刘娟 | 10% | 1 天 | 2024/12/9 | 2024/12/10 |
其数据效果如下所示:
增加日历-设置时间线
将当期日期输入到表格中,其中I4单元格,等于下方的2024/11/1。
下面对其格式进行设置。
首先将是上方的2024/11/1设置为短日期格式,快捷键为Ctrl+Shift+3。
然后将下方的一排日期设置为只有天数,从而更好展示效果。具体通过单元格的自定义格式,类型为d,即可日期。在Excel中,单元格时间格式自定义的基本规则是:
- d代表日期格式中的单数的天(如5)
- dd代表日期格式中双位的天(如05)
- ddd代表的是星期(如Mon)
- m代表单数的月(如1代表一月份)
- mm代表双位的月(如01代表1月份)
- mmm代表英文月(如Jan)
- mmmm为英文全称月(January)
- yyyy代表年(如2024),如果用一个yy代表年(如24代表2024)
从而实现如图所示效果。
接下来在下方把星期加上,在excel中如果直接自定义格式,需要使用ddd来实现日期,但是英文日期,如果要实现中文日期,需要使用自定义格式字符串“[$-zh-CN]aaa;@”。另外因为格式问题,显示的是周三,对于星期而言,为了简化,我们省略周,只要三这个部分。对于这两部的要求,我们从两步进行处理。
-
使用Text将日期输出为周三格式
- 其中“[$-zh-CN]aaa;@”可以输出周一到周天的标签
- 其中“[$-zh-CN]aaaa;@”可以输出星期一到星期天的标签
-
第二步是使用Excel的文本函数,去周一的右边一位。
-
完整公式是:
=RIGHT(TEXT(J5,"[$-zh-CN]aaa;@"),1)
最终效果如下所示,看起来是不是非常规整呢。
为了让日期能够随起始日期而自动变动,我们将增加一个项目启动日期,并将所有的日期与前面的日期通过+1进行绑定。
其公式设置为:
最后,将日期区域选中,进行拖动,即可实现完整的日历效果。
-
具体拖动方法是,直接拖动I到O列,进行拖动,会发现I5单元格因为引用的问题会偏移,一定要按列拖动,而不是按照单元格拖动,列拖动会直接把格式往后复制。
-
手动修正即可
具体效果如下所示:
修正效果如下
其动态效果如下所示:
优化甘特图的展示效果
第一步,隐藏Excel的网格线,效果如下。【视图→网格线取消】
第二步,增加背景颜色。在启动日期、日程和表格标题区域设为背景色,可以根据自己需要设置。可以使用格式刷来刷格式。
第三步,增加单元格边框,可以根据自己要求设定边框。总体效果如下:
其中边框的设定方法是首先选择单元格,然后点击单元格。
边框设置的基本方法是,首先选择直线样式,然后选择颜色,接着选择边框。边框三根线边缘两根边线和中间一根线,根据需要设置即可。
设置甘特图的进度条(关键)
要自动实现甘特图的自动进度条,需要使用到条件格式。条件格式顾名思义,根据条件来显示不同的格式。
如果日期单元格刚好在开始日期和结束日期之间,将其显示为设定颜色。按照这种思想,我们可以设定单元格格式颜色公式为:=AND(I$5>=$G9,I$5<=$H9)。其中日期一行确定为行不动,而开始日期和结束日期设置为列不动。所以单元格公式如下所示。如果为True,说明要标注为需要的颜色。
首先选择日历空白区,然后设置条件格式,公式为=AND(I$5>=$G9,I$5<=$H9),效果如下:
接着甘特图的的展示效果如下,这里说明下,为了展示结果,项目启动日期,我略微调整了下。是不是看起来非常完美呢?
需要注意的是框选区域,要从第一个子任务正式开始进行处理。框选区域如下:
调整甘特图的参数
- 将日期调整为从本星期周一开始,更好地展现进度,设置效果如下,具体公式为
=G4-WEEKDAY(G4,3)。
Excel 中的 WEEKDAY 函数用于返回给定日期对应的星期值。其中参数为2:返回值范围是1(周一)到7(周日)。参数为3:返回值范围是0(周一)到6(周日)。
通过向前调整,实现了从周一开始的要求。让日历更加规整。
- 展示项目工作在第几周,方便进行查询,并方便进行操作
在此将单元格进行进行调整,进行增加7天处理,如果是第一周,所以不用调整,所以减1,然后再乘以7。
在项目周数输入窗口中,添加一个滚动条,实现日期的快速调整。首先通过【开发工具→滚动条工具】,进行滚动条拖动。设置内容如下所示。然后退出界面,即可执行。
其动态调整效果如下所示:
- 高亮显示今天
选择单元格区域,从25日一直到最后,需要注意的是I$5设置为相对引用格式,并设置红色边框效果。设置方法如下:
- 把周末展示出来,方便不进行996
在这里我们继续使用条件格式展示周末的效果,具体我们采用NETWORKDAYS。NETWORKDAYS 函数在Excel中用于计算两个日期之间的工作日天数,排除周末和指定的节假日,如果为0,即为非工作日。
- 展示项目的进度情况
在完成进度区域,选中设置进行渐变填充,渐变填充效果如下。设置方法为【开始-条件格式-条件格式-数据条】
- 在甘特图上显示进度情况
在此我们以完成进度情况为基础,设置进度区域条件格式,其设置公式为:
=1*AND(I$5>=taskStart,I$5<=taskStart+taskProgress*taskDays)
其中taskStart为开始日期,taskStart加上进度的完成情况。最后乘以1将其转变为数值。在这里,日期单元格是列固定的,而项目起始日期是纵向固定的。
- 展示项目的进度情况
根据需要设置工作日的日期,此时可以继续使用WORKDAY进行处理,从而保障不进行996.
总结
经过上述一系列操作后,我们可以得到一个动态的甘特图,甘特图通过条形图的形式展示项目中各个任务的开始和结束时间,帮助管理者直观地了解项目进度,从而为大家的项目管理提供支持。
本项目过程内容比较多,是练习条件格式非常好的材料,希望为大家日常管理提供支持。
动态效果展示
知识点
- 条件格式是实现Excel动态格式的关键
- 使用
Ctrl+Shift+3快捷键将选中的单元格区域格式化为“短日期”格式 - 单元格格式自定义,d代表日期格式中的天,ddd代表的是星期,m代表月,yyyy代表年
- TEXT(K2,“ddd”)可以实现单元格格式自定义功能,从而在Excel中进行输出
- Excel文本函数right截取字符串
- Ctrl+Shift+=,增加行
- Ctrl+1查看和编辑单元格格式
- [$-zh-CN]aaa;@,输出中文日期,实现周一到周日的效果
- yyyy"年"m"月"d"日"[$-zh-CN]aaaa;@ ,实现2024年11月4日星期一效果
- 使用基于公式的条件格式,如果单元格在区间中就自动进行变色处理,避免了手动扒拉的缺点
- Ctrl+D,设置单元格格式和上面的单元格格式相同。
- NETWORKDAYS可以用于确定今天是否为工作日
- WEEKDAY使用,实现周一工作效果调节
- 条件格式的今天使用today函数进行实现
- 使用开发工具,可以减少输入,加强操作效果,开发工具滚动条是一个非常方便的工具实现快捷输入
- 视图网格
- 边框设置