Я ни в коем случае не слишком хорошо владею Excel, но моих знаний достаточно, чтобы освоить основы.
После долгих обсуждений на форуме и душевных поисков я пришел к следующей формуле, о которой я расскажу, что она должна делать. (Кажется, она отлично работает в Office 2010, но совсем не работает в Office 2003, о чем я не знаю, так как файл должен быть отформатирован).
=SUMPRODUCT(--(Deploy!T3:Deploy!T60<=TODAY()),--(Deploy!T3:Deploy!T60>(EDATE(TODAY(),-12))))
Deploy
будучи именем листа, ячейки T3-T60
являются ячейками расчета. Формула заключается в вычислении количества ячеек, которые попадают в диапазон дат на 1 год до сегодняшней даты.
Если кто-то сможет придумать упрощенную версию формулы, это будет очень полезно, так как я использую эту формулу и несколько ее измененных версий (в основном изменения количества месяцев) по всему рабочему листу.
решение1
Я попробовал вашу формулу в Excel 2003, и она у меня работает. SUMPRODUCT
Это TODAY
встроенные функции Excel 2003, но EDATE
они являются частью Analysis ToolPak
надстройки. Если у вас не установлена эта надстройка, то вы, вероятно, получите ошибку #ЗНАЧ!.
Попробуйте включить Analysis ToolPak
Инструменты > надстройки > отметьте галочкой поле "Analysis ToolPak". Возможно, вам придется повторно ввести формулу.
Если это не сработает или вы не хотите или не можете устанавливать надстройки, то вы можете получить дату на 12 месяцев назад с помощью этой формулы
=DATE(YEAR(TODAY())-1,MONTH(TODAY()),DAY(TODAY()))
....или вы можете просто использовать TODAY()-365 (хотя это, очевидно, менее точно, поскольку не учитывает високосные годы)
так что это будет либо
=SUMPRODUCT(--(Deploy!T3:T60<=TODAY()),--(Deploy!T3:T60>DATE(YEAR(TODAY())-1,MONTH(TODAY()),DAY(TODAY()))))
или просто
=SUMPRODUCT(--(Deploy!T3:T60<=TODAY()),--(Deploy!T3:T60>TODAY()-365))
Если вы все еще получаете ошибки, то, возможно, у вас есть ошибки в диапазоне данных Deploy!T3:T60
. Если так, то альтернативный подход - вычесть одну COUNTIF
функцию из другой. Это помогает, потому что COUNTIF
будет игнорировать ошибки в данных, формула будет
=COUNTIF(Deploy!T3:T60,"<="&TODAY())-COUNTIF(Deploy!T3:T60,"<="&DATE(YEAR(TODAY())-1,MONTH(TODAY()),DAY(TODAY())))
решение2
Предполагая, что ваши даты отформатированы как даты (а не даты + время) и вы не против наличия дополнительного столбца, вы можете попробовать это:
- Ячейка B2 содержит сегодняшнюю дату
=TODAY()
. - Ячейки
B5-B11
содержат даты, которые вы хотите посчитать. - Ячейки
C5-C11
содержат разницу между сегодняшней датой и датами в вашем списке, рассчитанную как вычитаниеB5-$B$2
. - Ячейка C13 содержит формулу `=COUNTIF(C5:C13,"<365")