加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

[转载]手把手教你用EXCEL制作可以计划与实际对比的动态甘特图

(2014-10-30 11:00:12)
标签:

转载

要制作动态的可以进行计划与实际对比的甘特图,关键要解决两个问题:

1、计划时间与实际时间分成两行显示,这样才能够让甘特图的进度条也分成两行显示出来,实现计划与实际的对比;

2、使用数据透视表来查询,但是要解决透视表作为图表数据源时,如果发生变化,则图表也会错乱的问题。

下面是制作这种图表的步骤:

 

第一步、制作一个录入界面,同时用VBA将其保存到另一个作为数据库的表格中:

1、录入界面如下图所示:(注:录入界面中,计划时间与实际时间可以在同一行中。)

 

http://s6/middle/4666d298gc051df024535&690

 

2、作为数据库的表格如下图所示:(注:本表需要做成可以方便地生成数据透视表的二维表格,并且,这一步是关键步骤,要在这一步通过VBA把录入界面的数据在此时把计划时间、实际时间分成两行显示。)

 

http://s9/middle/4666d298g79a1c9d10fa8&690

 

第二步、根据数据库生成几个数据透视表,其结构略有不同,自己根据需要进行调整(注:此处要使用OFFSET函数定义好上面数据库表中有效数据的范围。):

 

数据范围=OFFSET(项目进度数据库!$A$1,,,COUNTA(项目进度数据库!$A:$A),COUNTA(项目进度数据库!$1:$1))

 

1、单项目查询:

 

http://s16/middle/4666d298gc051e579d09f&690

 

2、多项目查询:

 

http://s2/middle/4666d298gc051e88bdde1&690

 

3、各项目汇总查询:(只显示每个工程项目的总时间,不显示明细时间)

 

http://s16/middle/4666d298gc051eac1fcff&690

 

 

第三步、制作一个辅助表,用简单的公式把上述几个数据透视表对应起来,所谓简单,即本sheet中某一格=透视表中某一格,但要注意如果透视表中的空白格,可能会显示为0,所以用IF函数作些调整,如

 

IF(C1<>"空白",单项目查询!$A$1,"")

 

http://s7/middle/4666d298gc051edea6466&690

 

到了这一步,制作甘特图所需的数据表格已经基本完成了。接下来要准备好制作甘特图所需的数据源。

 

第四步、用OFFSET函数把甘特图所需的进度条1234Y座标轴名称(就是在图上显示的工作内容),甘特图的总数据范围定义好:

 

图表_进度条1        =OFFSET(制图辅助!$C$1,1,1,COUNTA(制图辅助!$C:$C)-COUNTIF(制图辅助!$C:$C,"空白")-1)

图表_进度条2        =OFFSET(制图辅助!$C$1,1,2,COUNTA(制图辅助!$C:$C)-COUNTIF(制图辅助!$C:$C,"空白")-1)

图表_进度条3        =OFFSET(制图辅助!$C$1,1,3,COUNTA(制图辅助!$C:$C)-COUNTIF(制图辅助!$C:$C,"空白")-1)

图表_进度条4        =OFFSET(制图辅助!$C$1,1,4,COUNTA(制图辅助!$C:$C)-COUNTIF(制图辅助!$C:$C,"空白")-1)

图表_进度图Y轴名称        =OFFSET(制图辅助!$C$1,1,-1,COUNTA(制图辅助!$C:$C)-COUNTIF(制图辅助!$C:$C,"空白")-1)

图表_制图辅助范围        =OFFSET(制图辅助!$B$1,,,COUNTA(制图辅助!$C:$C)-COUNTIF(制图辅助!$C:$C,"空白"),6)

 

第五步、用普通制作甘特图的方法制作出甘特图:

 

首先,创建图表大概样式。

 

在图表向导中,选条形图当中的堆积条形图,并按步骤逐步操作,相关需要选定数据范围的地方,输入上面定义好的名称:

 

http://s14/middle/4666d298gc051f052ffdd&690

 http://s13/middle/4666d298gc0520636f61c&690


http://s13/middle/4666d298gc052072efe5c&690


http://s8/middle/4666d298gc05208409b57&690

 

至此,进度图的大体样子已经完成如下,

 

http://s12/middle/4666d298gc0520c2f493b&690


接下来进行调整:

 

1步,把坐标日期调整到所需月份,更改字体及数字格式:

 

右键点X轴坐标,选“坐标轴格式”,作如下操作:

 

http://s3/middle/4666d298gc0520eb3db12&690

http://s12/middle/4666d298gc0520f897f9b&690

http://s10/middle/4666d298gc05210055089&690

 

 

 

右键点Y轴,选“坐标轴格式”,更改字体,如果勾选“分类次序反转”,可以把日期坐标调到顶部,否则是在底部。

 

http://s4/middle/4666d298gc05211cd3d03&690

 

 

修改后的图如下:

 

http://s14/middle/4666d298gc0521358e8fd&690

 

 

2步,分别双击图中“计划开始时间”和“实际开始时间”的图形,在弹出来的对话框中,把【边框】和【内部】都选为无。

 

http://s14/middle/4666d298gc052170dedbd&690

 

 

3步,右键点击右边的图例说明,选“图例格式”,更改字体及放置位置:

 

http://s5/middle/4666d298gc052183d4b54&690

 

 

再把多余的“计划开始时间”、“实际开始时间”删除。

 

http://s15/middle/4666d298gc05219daa71e&690

 

4步,在图表区空白地方右键点击,选“图表选项”,在网格线中,把X轴、Y轴的主要网格线都勾上。

 

http://s5/middle/4666d298gc0521af8ad64&690

 

至此,一个有计划与实际对比,并且可以根据需要由数据透视表进行筛选的动态的甘特图就完成了。

 

http://s16/middle/4666d298gc0521cc6d59f&690

 

0

  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有