2017-02-07 22 views
0

Есть ли способ рассчитать количество дней в диапазоне в течение определенного года?Как рассчитать сумму дней в пределах диапазона за несколько лет

Например, (мои столбцы - Employee, Дата начала, Дата окончания, столбцы DK = годы 2009-2016), если моя дата начала - 1/5/2008, а моя дата окончания - 6/9/2011, I хотите узнать, сколько дней прошло в 2008, 2009, 2010 и 2011 годах между этими годами.

Я попытался следующие

=IF(ISNUMBER(SEARCH(D$1,$B2))=TRUE,(DATEDIF($B2,$C2,"d"))/30,0)

но только возвращает сумму дней в пределах диапазона за самый ранний год и не распределяет количество дней, в течение следующих лет, если диапазон охватывает несколько лет.

+1

Почему бы не использовать 'B2 - B1'? – VHS

ответ

1

Стандартная формула для получения совпадения двух диапазонов дат является

=MAX(MIN(end1,end2)-MAX(start1,start2)+1,0) 

See this reference for example

так адаптируя его для случая, когда приведены годы

=MAX(MIN($C2,DATE(D$1,12,31))-MAX($B2,DATE(D$1,1,1))+1,0) 

enter image description here

+0

Должны ли эти столбцы быть в любом определенном формате? Эта формула имеет смысл для меня, и мои данные настроены точно так же, как у вас здесь, но когда я применяю формулу, она возвращает «365» за все годы на 2009-2015 годы и «366» за 2016 год – user4100980

+0

Да дата начала и дата окончания должна быть правильно отформатирована как даты - я пытался помещать их в текст, и вы получаете количество дней в каждом году, как вы говорите, - это потому, что текстовое значение игнорируется функциями MIN и MAX, снова осталось с помощью, например, 31/12/2016-1/1/2016 + 1 = 366 на 2016 год. –

0

Зачем делиться на 30?

= DATEDIF (B2, C2, "d") работает для меня.

enter image description here

Это поможет вам начать ... Он нуждается в работе, но опираться на это, и вы должны быть на вашем пути.

enter image description here

=IF($B$2<DATE(D1,1,1), IF($C$2>DATE(D1,12,31), DATEDIF(DATE(D1,1,1),DATE(D1,12,31), "d"), DATEDIF(DATE(D1,1,1),$C$2,"d")),DATEDIF($B$2,DATE(D1,12,31),"d")) 
+0

Я действительно хочу количество месяцев, но если дата начала 1/10/11, а дата окончания - 4/7/11, например, использование «m» вернет только «2», даже если оно ближе к 3 месяцев – user4100980

+0

Как насчет того, чтобы усилить дополнительный месяц ... = IF (MOD (DATEDIF (B2, C2, "d"), 30)> = 15, DATEDIF (B2, C2, "m") + 1, DATEDIF (B2, C2, "m")) – manderson

+0

Проблема в том, что мне нужно знать, сколько дней включено в этот диапазон ЗА КАЖДЫЙ ГОД. Таким образом, всего 1251 дней - это не то, что я ищу - я хочу знать, сколько из этих дней было в 2008, 2009, 2010 и 2011 годах. – user4100980