2017-01-03 3 views
1

Я пытаюсь подсчитать количество дней между несколькими датами и крайним сроком, соответствующим каждой дате, и надеялся, что у кого-нибудь был опыт работы с листом Excel WORKDAYS? Функция в базовой форме подсчитывает количество рабочих дней между любыми двумя датами, которые я хотел бы использовать, но с небольшим изменением этого крайнего срока, и дата не должна включаться в число рабочих дней, так что будет один рабочий день между крайним сроком 12 октября и начальной датой, например, 10 октября. Чтобы сделать это изменение, я до сих пор просто вычитал два дня из числа рабочих дней excel-функции, но это вызывает проблемы, когда крайний срок или начальная дата в выходные. Поэтому я надеялся, что у любого из вас есть идея, как решить мою проблему?Как учесть выходные дни в рабочие дни?

Данные состоят, как указано выше, из нескольких крайних сроков, каждый в полночь (7/10/16 00.00.00), тогда как начальные даты находятся в некоторый момент времени в течение дня, когда происходят некоторые события. Возьмем, к примеру, начальную дату 3. октября 2016 года и скажем, что что-то произошло в 3 часа. Следовательно, нет никаких рабочих дней между этим событием в 3 часа ночи. и крайний срок в полночь (4 октября 2016 года в 00.00.00 (полночь)).
Я использовал ”=if(Deadline="-";"No deadline";Workdays(Deadline;Initial Date)-2)”, чтобы построить следующие данные, которые наиболее близки к тому, чтобы правильно подсчитывать количество дней, поэтому я надеялся, что у кого-либо, более опытного в excel, есть некоторое представление о том, как улучшить счетчик, когда какой-либо из даты - выходные?

Deadline  Initial Date No. work days 
7/10/16  5/10/16  1 
    -   11/10/16  No deadline 
26/8/16  10/11/16  -34 
    -   7/10/16  No deadline 
1/9/16  7/10/16  -29 
24/10/16  18/10/16  3 
    -   3/10/16  No deadline 
24/10/16  17/10/16  4 
17/10/16  10/10/16  4 
30/9/16  4/11/16  -28 
11/11/16  2/11/16  6 
1/11/16  14/10/16  11 
11/10/16  30/10/16  -16 
4/10/16  3/10/16  0 

С наилучшими пожеланиями,

+0

Я не понимаю некоторые из ваших результатов. Я не понимаю, как 'Initial_Date' может быть до' Deadline', и даже если это так, я не понимаю, как вы получаете '-34' с' Initial_date = 10 ноября 2016' и 'Deadline = 26 Aug 2016' Это более двух месяцев. –

ответ

1

Эта формула дает вам 0, если A1 является рабочим днем, 1, если его нет.

=IF(WORKDAY(A1-1,1)=A1,0,1) 

Таким образом, вы должны изменить свою формулу, как

=if(Deadline="-";"No deadline";Workdays(Deadline;Initial Date)- (IF(WORKDAY(Initial Date-1,1)=Initial Date;0;1)) + IF(WORKDAY(Deadline-1,1)=Deadline;0;1)) ) 

Примечание: Я использую Excel 2016 и функции названы WORKDAY и NETOWRKDAYS. Глядя на вашу формулу, имена функций могут быть разными. Пожалуйста, проверьте это.

+0

Большое спасибо за ваш ответ, это приятное и интуитивно понятное решение моей проблемы! Кстати, я тестировал код на двух предыдущих версиях excel и, похоже, отлично работает в обеих версиях! – Mathilde

+0

Рад, что ответ вам помог. –

0

Я не уверен, что вы ожидаете, когда Deadline возникает до Initial_Date, но поскольку значение отрицательное, вам нужно добавить, а не вычесть два дня.

Поскольку корректировка двух дат, чтобы они не происходили в выходные, вы вычитали бы один календарный день и добавили бы один рабочий день, чтобы перенести Initial_date на первый рабочий день после выходных; и добавьте один календарный день, а затем вычтите один рабочий день, чтобы перевести Deadline в предыдущую пятницу. Это не изменит дату, если указанная дата не встречается в выходные дни.

ниже формула делает все, что:

=IF(Deadline="-","No Deadline",NETWORKDAYS(WORKDAY(Initial_Date-1,1),WORKDAY(Deadline+1,-1))-2*SIGN(Deadline-Initial_Date)) 
+0

Когда срок до начальной даты, он должен просто показать отрицательное число, как вы писали, так как меня интересует, как задержка события была относительно крайнего срока. Я только что проверил формулу, и это очень полезно, поэтому большое спасибо за вашу помощь! – Mathilde

Смежные вопросы