Иногда при работе с таблицами в Excel возникает задача, где нужно автоматизировать расчёты так, чтобы итоговые значения отображались только в определённых строках. Например, если у вас есть данные по дням, кодам и часам, может потребоваться выводить сумму часов для каждой группы (день + код) исключительно в последней строке этой группы.
Звучит сложно, но на практике всё решается грамотным применением функций. Давайте разберёмся, как это сделать, даже если вы только начинаете осваивать Excel.
Почему обычный SUMIFS не подходит?
Допустим, у вас есть таблица с колонками: День, Код, Часы и Накопительная сумма. Если использовать стандартную формулу =SUMIFS([Часы];[День];[@День];[Код];[@Код])
, сумма будет отображаться во всех строках группы.

Но нам нужно, чтобы она появлялась только в последней строке для каждой комбинации дня и кода.

Вот здесь и начинается магия комбинирования функций.
Кстати, обратите внимание: важно, чтобы ваша таблица была оформлена как «умная таблица» (форматировать через Ctrl+T). Это позволит использовать структурные ссылки вида [@День]
, которые автоматически подстраиваются при добавлении новых данных.
Два рабочих решения для разных версий Excel
Есть два подхода: один для современных версий Excel с функцией LET()
, другой — для более старых редакций. Оба варианта проверяют, является ли текущая строка последней в группе, и только тогда выводят сумму. Рассмотрим их детально.
Вариант 1: Используем LET() для упрощения формулы
Функция LET()
(доступна в Excel 365 и 2021) позволяет задавать переменные внутри формулы, что делает её читаемой. Вот как это работает:
=LET(
a, [@День],
b, INDEX([День],1):[@День],
c, [@Код],
d, INDEX([Код],1):[@Код],
IF(COUNTIFS(b,a,d,c)=COUNTIFS([День],a,[Код],c),
SUMIFS(INDEX([Часы],1):[@Часы],b,a,d,c),""))
Пояснение шагов:
- a и c — сохраняют текущие значения дня и кода для удобства.
- b и d — определяют диапазон от начала таблицы до текущей строки для дней и кодов.
COUNTIFS(b,a,d,c)
— считает, сколько раз встречается текущая пара «день-код» в диапазоне до текущей строки.COUNTIFS([День],a,[Код],c)
— считает общее количество таких пар во всей таблице.- Если оба значения равны — значит, это последняя строка группы, и тогда считается сумма через
SUMIFS
.
Важно: не забудьте заменить День, Код и Часы на реальные названия ваших колонок.

Вариант 2: Решение без LET() для старых версий
Если ваша версия Excel не поддерживает LET()
, используйте более длинную, но аналогичную по логике формулу:
=IF(
COUNTIFS(
INDEX([День],1):[@День], [@День],
INDEX([Код],1):[@Код], [@Код]
) = COUNTIFS([День],[@День],[Код],[@Код]),
SUMIFS(
INDEX([Часы],1):[@Часы],
INDEX([День],1):[@День], [@День],
INDEX([Код],1):[@Код], [@Код]
),
""
)
Здесь та же логика, но без переменных. Обратите внимание на структуру:
- Сравнивается количество совпадений «день-код» в диапазоне от начала до текущей строки с общим количеством таких пар.
- Если условие выполняется,
SUMIFS
суммирует часы для текущей группы.
Совет: чтобы не ошибиться с диапазонами, выделите ячейку с формулой и нажмите F2 — Excel подсветит используемые диапазоны цветными рамками.
Проверка и возможные ошибки
После ввода формулы протяните её на весь столбец. Если в последних строках групп отображаются суммы, а в остальных — пусто, значит, всё работает правильно. Если же возникают ошибки:
- Убедитесь, что таблица оформлена как «умная таблица» (иначе структурные ссылки не сработают).
- Проверьте, что названия колонок в формуле точно совпадают с вашими.
- Если видите
#ЗНАЧ!
, вероятно, неверно указаны диапазоны вINDEX()
.
Для теста попробуйте добавить новую строку с существующим днём и кодом — сумма должна автоматически переместиться в новую последнюю строку группы.
Подводя итог: эти формулы — отличный способ автоматизировать отчётность, например, для учёта рабочего времени или подсчёта результатов по категориям. Если что-то осталось неясным, смело экспериментируйте с примерами — Excel любит практический подход!