甘特图(Gantt chart)又称为横道图、条状图(Bar chart)。其通过条状图来显示项目,进度,和其他时间相关的系统进展的内在关系随着时间进展的情况。以提出者亨利·L·甘特(Henrry L. Ganntt)先生的名字命名。我们可以使用 Excel 表格自动生成这样一份图表。下面简单记录下 Excel 生成施工进度横道图的简单步骤。

1、首先,我们需要一份生成图标的基础数据,本次横道图的生成以下面这份数据为例。

2、选择需要做进图表的数据项目(后期可以在调整),切换至插入选项卡,所有图表>条形图>堆积条形图。

3、建立图表后,我们可以通过在 图表上右键;左侧按钮;顶部菜单栏的设计选项卡 三种方式调整图表的样式。

4、生成图表的第一步是清楚地设置数据项目,进入“选择数据源”窗口,调整图表数据的各项基本参数。具体参数设置可参看下图箭头所示。“图列项(系列)(S)”只保留“计划起日期”与“天数”即可,右侧“水平(分类)轴标签(C)”的值如果不为“施工作业名称”编辑修改即可。

5、选择图表“计划起日期”区域(橘黄色部分),右键“设置数据系列格式(F)…”将填充修改为“无填充”。

6、选择图表中“天数”区域(黄色部分)。右键可以为其添加数据标签,即显示在图表上的数字信息。另外我们还可以设置图表中数据项目显示的样式,包含填充、大小、边框、效果等。

7、然后我们可以通过设计选项卡下的“添加图表数据元素”为图表添加上主要的网格线。

8、选择左侧左边轴内容,设置其坐标格式,设置“逆序类别(C)”。

 

9、最后,我们需要调整下图表的坐标轴格式,边界的“最小值”、“最大值”控制坐标轴的起始位置。单位控制坐标轴上的间距。另外我们可以通过“数字”格式控制坐标轴上各坐标点的显示样式。

上面设置坐标轴的时候,因为我们的坐标轴显示的是日期,而坐标轴边界的最大值,最小值为数字格式,所以系统获取的是日期的数字格式,比如这里的“2018年11月01日”变成了43405.0。对于这样一个数字,显然我们是很难记忆的,而且每次右键设置也比较麻烦;另外对于时间跨度比较大的工程项目可能单位长度也会设置的比较大,所以这里使用 VBA 设置一段宏使其在 Excel 中输入设置后自动生成。具体代码如下:

Sub Custom_StackedBarChart_Parameters()
    '自定义堆积条形图参数
    On Error Resume Next
    ActiveSheet.ChartObjects("施工进度横道图").Activate
    ActiveChart.Axes(xlValue).MinimumScale = ActiveSheet.Range("M20").Value
    ActiveChart.Axes(xlValue).MaximumScale = ActiveSheet.Range("M22").Value
    ActiveChart.Axes(xlValue).MajorUnit = ActiveSheet.Range("K24").Value
End Sub

效果文件可从下方直接下载即可。