一目了然打造随日期变化的动态甘特图
2021-08-20平淡
平淡

○构建数据
比如图1是某公司一个项目的进度计划表,按图示先在B2单元格中输入任务的开始时间,在C2到C7单元格中依次输入每个子项目的预计耗时。接着在B3单元格中输入公式“=B2+C2”(表示下个项目的开始时间是“上个项目的开始时间+预计耗时”),
然后下拉填充到B7单元格,这样便可以将每个子项目的开始时间自动地计算出来了(图2)。
为了方便查看,我们先在A13单元格中随意输入一个日期,接着在D2单元格中输入公式“=IFS(B2>$A$13,0,(B2+C2)<$A$13,C2,B2<=$A$13,$A$13-B2)”,然后下拉填充到D7单元格。再定位到E2单元格并输入公式“=C2-D2”,下拉填充到E7单元格(图3)。
公式解释:
在D列通过I FS函数将B列中的日期(开始时間)和A13单元格中的日期进行对比并显示对应的值。
1如果B列中的日期比A13单元格中的大,那么“已完成”就显示为0,因为项目尚未开始。
2如果“B2+C2”比A13单元格中的日期小,那么“已完成”就显示为C2单元格中的数值,即已过去的天数。
3如果B列中的日期小于等于A13单元格中的日期,则“已完成”就显示为“A13-对应B列单元格”的数值,表示任务只完成其中的一部分。
最后在F2单元格中输入公式“=SUM($C$2:C2)”,然后下拉填充到F7单元格(图4)。该公式表示从C2单元格开始对数值进行累加,目的是为了在下个任务的甘特图的前方叠加上个任务已完成的数值占位符,这样前后任务的甘特图才能像图1所示那样无缝地衔接排列。

○制作甘特图
构建完数据后,我们就可以制作甘特图了。在H2单元格中输入公式“=REPT("█",D2)&REPT( " ? " , E 2 ) ”,H 3 单元格中输入公式“ = R E P T ( " " , F 2 * 4 )&REPT( " █ ", D3)&REPT ( "?",E3)”并下拉填充到H7单元格,同时将H2:H7区域的字体设置为“等线”、加粗显示(图5)。
公式解释
使用REPT函数根据D列和E列中的数值,分别重复填充“█”和“?”字符作为“已完成”和“未完成”的图标(这两个字符通过点击“插入→符号”进行选择)。H……
