Формула для расчета дней за месяцем между двумя датами только для будущих периодов - PullRequest
0 голосов
/ 02 января 2019

Изо всех сил пытается придумать формулу, которая работает для этого (Данные в A1 - E4)

StartDate   EndDate Jan Feb Mar
12/4/2018   4/20/2019   31  28  31
9/26/2018   1/30/2019   30  0   0
1/1/2019    3/31/2019   31  28  31
1/1/2015    3/31/2019   155 141 155

В ячейке C2, формула:

=SUMPRODUCT(--(TEXT(ROW(INDIRECT($A2 & ":" & IF($B2="",TODAY(),B2))),"mmm")=C$1))

То, что я пытаюсь сделать, это исключить прошлые даты из суммы, например, в 4-м ряду январь / февраль / март должны быть 31/28/31 и не считаться в предыдущие годы.

Есть идеи, где я иду не так?

1 Ответ

0 голосов
/ 02 января 2019

Добавить чек за год:

(YEAR(ROW(INDIRECT($A2 & ":" & IF($B2="",TODAY(),$B2))))=YEAR(TODAY()))

и просто умножьте их в SUMPRODUCT:

=SUMPRODUCT((YEAR(ROW(INDIRECT($A2 & ":" & IF($B2="",TODAY(),$B2))))>=YEAR(TODAY()))*(TEXT(ROW(INDIRECT($A2 & ":" & IF($B2="",TODAY(),$B2))),"mmm")=C$1))

enter image description here


Одна нота:

INDIRECT является изменчивым и будет пересчитывать каждый раз, когда Excel пересчитывает. Я предпочитаю заменять их на ИНДЕКС:

=SUMPRODUCT((YEAR(ROW(INDEX($A:$A,$A2) :INDEX($A:$A, IF($B2="",TODAY(),$B2))))>=YEAR(TODAY()))*(TEXT(ROW(INDEX($A:$A,$A2) :INDEX($A:$A, IF($B2="",TODAY(),$B2))),"mmm")=C$1))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...