#NUM! ошибка, когда формула расчета% завершена для будущих дат - PullRequest
0 голосов
/ 27 августа 2018

У меня есть рабочий лист с указанием назначений сотрудников, а также дат начала и окончания контракта. в столбце 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 голосов
/ 27 августа 2018

Проблема в том, что Дата не может быть отрицательной, а DATEDIF(B2,TODAY(),"d") пытается вернуть отрицательную дату.

Если дата в будущем, то она 0% закончена.

Добавьте ИСПОЛЬЗОВАНИЕ, чтобы справиться с этим:

=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


Поскольку 1 день для Excel равен 1, мы можем избавиться от DATEDIF. Затем, используя MAX и MIN, чтобы избавиться от вложенных IF и IFERROR, мы можем упростить формулу до:

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

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...