Я бы использовал комбинацию SUMIFS
и MAXIFS
.
Для расчета за последние семь дней я бы использовал:
=SUMIFS( $B$5:$B$22,
$A$5:$A$22, "<=" & MAXIFS($A$5:$A$22, $B$5:$B$22,"<>"),
$A$5:$A$22, ">" & MAXIFS($A$5:$A$22, $B$5:$B$22,"<>")-7
)
Это сумма всех часов, в которых указана дата<последняя дата, в которой столбец часов не пуст И дата> этой даты-7.
Формула для расчета последних 7 дней ИЛИ до первых 0, в зависимости от того, что наступит раньше, очень похожа,Все, что мы делаем, это сравниваем дату-7 с самой последней датой с 0 часами и выбираем самую последнюю из двух с МАКС.:
=SUMIFS($B$5:$B$22,
$A$5:$A$22, "<=" & MAXIFS( $A$5:$A$22, $B$5:$B$22, "<>"),
$A$5:$A$22, ">" & MAX( MAXIFS( $A$5:$A$22, $B$5:$B$22, "<>")-7,
MAXIFS( $A$5:$A$22, $B$5:$B$22, 0)
)
)
РЕДАКТИРОВАТЬ: Формулы для более старых версий Excel без SUMIFS
Расчет последних семи дней был довольно простым. Просто используйте INDEX
с простым COUNT
, чтобы узнать, сколько клеток Hrs было завершено. это дает использовать индекс «финиша». Затем мы можем получить минус 6 из этого числа, чтобы получить «начальный индекс». И обернуть INDEX
s в SUM
:
=SUM(
INDEX($B$5:$B$22,COUNT($B$5:$B$22))
:
INDEX($B$5:$B$22,COUNT($B$5:$B$22)-6)
)
Введенная формула с «0» гораздо сложнее:
=SUM(
INDEX($B$5:$B$22,COUNT($B$5:$B$22))
:
INDEX($B$5:$B$22,
MAX(
COUNT($B$5:$B$22)-6,
MATCH(
AGGREGATE(14,6,$A$5:$A$22/($B$5:$B$22&""="0"),1),
$A$5:$A$22 ,
0
)
)
)
)
Это работает аналогично - суммируя диапазон, определенный двумя INDEX
с. Индекс "финиша" также находится точно таким же образом.
Индекс "start" можно найти, взяв либо последние 7 дней (как в предыдущей формуле), либо максимальную дату, когда часы равны нулю. Что когда-либо больше. Это делается с помощью MAX
.
Самая сложная часть - это найти максимальную дату, которая имеет ноль часов, но также не является пустой. Нам также необходимо учесть возможность появления нескольких нулей за последние 7 дней.
Это можно сделать с помощьюAGGREGATE
чтобы найти дату. Затем с помощью Match превратить это в нужный нам индекс.
Единственный способ заставить агрегат работать (и не включать пустые ячейки в ноль), это повернутьчасы варьируются в тексте, а затем сравнить это тo текст «0»:
$B$5:$B$22&""="0"