#NUM!公式计算将来日期的完成百分比时出错

时间:2018-08-27 15:16:06

标签: excel excel-formula

我有一个工作表,其中显示了员工分配以及他们的合同开始和结束日期。在D列中,我计算了该合同完成的百分比。

我的公式适用于当前日期和过去的日期,但是将来的日期会产生#NUM!。我觉得这是因为无法计算或小于0。

我已尝试纠正此问题,但它目前在击败我。有任何解决建议吗?

公式:

=IF(ISBLANK(B2),"",IF((DATEDIF(B2,TODAY(),"d")+1)/(DATEDIF(B2,C2,"d")+1)>99.99%,1,IFERROR((DATEDIF(B2,TODAY(),"d")+1)/(DATEDIF(B2,C2,"d")+1),0)))

数据:

    A       B           C           D
1   Name    Start Date  End Date    Contract % Complete
2   Allen   8/21/17     8/24/18     100.00%
3   Billy   12/4/17     12/8/18     72.16%
4   Charles 9/6/18      12/28/18    #NUM!

1 个答案:

答案 0 :(得分:0)

问题在于日期不能为负数,而DATEDIF(B2,TODAY(),"d")试图返回负日期。

如果该日期是将来的日期,则0%完成。

添加IFERROR来解决该问题:

=IFERROR(IF(ISBLANK(B2),"",IF((DATEDIF(B2,TODAY(),"d")+1)/(DATEDIF(B2,C2,"d")+1)>99.99%,1,IFERROR((DATEDIF(B2,TODAY(),"d")+1)/(DATEDIF(B2,C2,"d")+1),0))),0)

enter image description here


因为使用Excel的1天等于1天,所以我们可以摆脱DATEDIF。然后使用MAX和MIN摆脱嵌套的IF和IFERROR,我们可以将公式简化为:

=IF(ISBLANK(B2),"",MAX(MIN((TODAY()-B2+1)/(C2-B2+1),1),0))

enter image description here