【Project 如何计算任务应该完成的百分比】分享给互联网技能从业者学习和参考。
用MS Project软件排定计划很简单,跟踪计划更方便,因为在Project中可以一键设置基准。有了基准,就可以轻松地对比当前计划和基准之间的差异了,而在Project中有现成的列可以直接查看【完成时间差异】、【开始时间差异】、【工期差异】、【成本差异】、【工时差异】等等。
那么有的同学可能想查看,任务截止到当前日期时按照基准计划应该完成的百分比,能不能在Project软件中实现呢?
举个例子,为了让大家更容易理解,我们采用全年无休的日历(每一天都是上班时间),某任务的基线开始时间是4月1日,基线完成时间是4月10日,工期10天,如果当前日期来到了4月3日(可能是上午,也可能下午),那么它应该完成前一天4月2日的工作量,即20%,当然这是假设每天的工作量都是均匀分布的。能不能在Project软件中显示出按照基准计划该任务应该完成20%呢?
通过自定义列是可以实现的。
我们首先定义一下规则,如下:
如果【当前日期】小于任务的【基线开始时间】,那么任务应该完成0%,因为还没到任务的基线开始时间 如果【当前日期】大于任务的【基线完成时间】,那么任务应该完成100%,因为任务的基线完成时间已经过去了 如果不是上面两种情况,那么任务应该完成的百分比 = 【当前日期】-【基线开始时间】/【基线工期】我们随便创建一个简单的项目演示一下。如图1所示,整个项目采用全年无休的日历,计划中只有五个任务,当前日期来到了3月25日,任务至少应该完成前一天即3月24日的工作量。并且我们设置了基准,从甘特图上能看出来,图1是从【跟踪甘特图】视图截取的图片,每个任务对应两个条形图,下面那条灰色的代表基准。
图1
回到我们的主题,我们假定来到3月25日后,任务至少完成前一天3月24日的工作量,按照基准计划去衡量的话,任务应该应该完成的百分比是
任务A,工期4天,当前日期是第3天,至少应该完成前2天的工作量,应该完成50% 任务B,工期6天,当前日期是第3天,至少应该完成前2天的工作量,应该完成33% 任务C,工期3天,当前日期小于基线开始日期,应该完成0% 任务D,工期2天,当前日期已超过基线完成时间,应该完成100% 任务E,工期2天,当前日期已超过基线完成时间,应该完成100%我们点击任意一列,鼠标右键选择“自定义字段”,就会弹出自定义域窗口,如图2所示。首先,选择合适的域类型很重要,由于Project软件中自定义域的类型中,没有百分比这种类型,所以我们只能用数字这种类型了,举个例子,任务A应该完成的百分比是75%,我们用这个自定义列计算出来只能显示0.75,因为软件中确实没有百分比这种自定义的域类型。
然后我们可以随便选择一个数字列,比如数字1,然后可以给它重命名一下,不重名也没关系。
图2 自定义列 域类型选择数字
接下来最重要的是设置公式了,在下面的自定义属性中点击公式。因为不同的条件将返回不同的值,所以我们需要用到一个IIF函数,类似于Excel软件中的IF函数。点击公式窗口下方的【函数】-【常规】,然后选择IFF函数,如图3所示。
图3 IIF函数
接下来我们输入这样的公式
IIf([当前日期]<[比较基准开始时间],0,IIf([当前日期]>[比较基准完成时间],1,ProjDateDiff([比较基准开始时间],[当前日期])/[比较基准工期]))
因为截图是从Project 2010版本中截取的,如果大家使用的是Project 2013或之后的版本,由于列名称(中文名称)有变化,需要将上面公式中的“比较基准”都替换为“基线”,即
IIf([当前日期]<[基线开始时间],0,IIf([当前日期]>[基线完成时间],1,ProjDateDiff([基线开始时间],[当前日期])/[基线工期]))
设置完公式后,点击确定。再在自定义域窗口中点击确定。
自定义域已经设置完毕,我们现在需要将它显示出来,在需要的位置右键插入列【数字1】,如图4所示
图4
这样就实现我们的目的了。
上面我们讲的是按照基准计划去衡量应该完成的百分比,如果只是和当前计划去对比的话,在设置公式的时候,可以这样输入:
IIf([当前日期]<[开始时间],0,IIf([当前日期]>[完成时间],1,ProjDateDiff([开始时间],[当前日期])/[工期]))
也就是把之前的比较基准都去掉。