SUBTOTAL в Google Sheets: как считать промежуточные итоги и избегать двойного счёта
Коротко о том, зачем нужен SUBTOTAL
Когда вы работаете с большим документом в Google Sheets и внутри листа есть группы, промежуточные итоги или фильтры, простая функция SUM может привести к ошибкам двойного подсчёта. SUBTOTAL решает эту проблему: он умеет игнорировать другие SUBTOTAL в указанном диапазоне и (при выборе «100+» кода) — скрытые строки. Это делает SUBTOTAL незаменимым инструментом при построении сводных таблиц, интерактивных панелей и отчётов с секциями.
Важное: фильтр скрывает строки и SUBTOTAL всегда исключает такие строки из расчёта, вне зависимости от кода.
Быстрая памятка: когда выбирать SUBTOTAL
- Если в листе есть промежуточные суммы — используйте SUBTOTAL, чтобы избежать двойного счёта.
- Если хотите, чтобы итог автоматически менялся при применении фильтров — используйте SUBTOTAL.
- Если вам нужно посчитать всё «без исключений» (например, учесть все строки, даже скрытые вручную) — используйте SUM или другие методы.
Синтаксис SUBTOTAL в Google Sheets
=SUBTOTAL(code, range1, …)- code — числовой код вычисления (см. список ниже).
- range1 — первый диапазон для подсчёта. Можно добавлять дополнительные диапазоны через запятую.
Пример:
=SUBTOTAL(9,B2:B4)Этот пример выполняет SUM (код 9) по диапазону B2:B4, но с преимуществами SUBTOTAL (например, игнорирование вложенных SUBTOTAL).
Коды управления функцией
В SUBTOTAL встраиваются 11 базовых функций. Они имеют коды 1–11. Если вы прибавите 100 к коду (получите 101–111), формула дополнительно будет игнорировать вручную скрытые строки (в ряде сред это также влияет на поведение по отношению к скрытию; в Google Sheets фильтр всегда исключается):
- 1 — AVERAGE (среднее)
- 2 — COUNT (подсчёт числовых значений)
- 3 — COUNTA (подсчёт непустых)
- 4 — MAX (максимум)
- 5 — MIN (минимум)
- 6 — PRODUCT (произведение)
- 7 — STDEV (выборочная стандартная ошибка)
- 8 — STDEVP (популяционная STDEV)
- 9 — SUM (сумма)
- 10 — VAR (выборочная дисперсия)
- 11 — VARP (популяционная дисперсия)
Если нужно игнорировать вручную скрытые строки, используйте 101–111 (соответствие сохраняется: 101 = AVERAGE, 109 = SUM при добавлении 100 и т. д.).
Пример игнорирования вручную скрытых строк:
=SUBTOTAL(101,A1:A15)Пример: подсчёт квартальных и итоговых сумм
Допустим, у вас есть таблица продаж по месяцам, разбитая на кварталы. Для каждого квартала удобнее поставить SUBTOTAL, а для общей строки “Total” — тоже SUBTOTAL, чтобы итог не складывал промежуточные SUBTOTAL и не дал двойного счёта.

Следуйте этим шагам (пример для ячейки B5):
- Выделите ячейку, куда хотите поместить формулу (например, B5).
- Введите =SUBTOTAL( и начните выбирать код из списка. Google Sheets подсветит подсказки.
- Для суммы используйте код 9, затем укажите диапазон, например B2:B4.
- Закройте скобку и нажмите Enter.

При заполнении итоговой строки (например, B18) используйте SUBTOTAL по всему диапазону B2:B17. SUBTOTAL автоматически пропустит другие SUBTOTAL внутри диапазона и посчитает только исходные данные, не давая двойного итога.

Полезные варианты использования и приёмы
Несколько диапазонов
SUBTOTAL поддерживает более одного диапазона:
=SUBTOTAL(9,B2:B4,D2:D4)Динамические диапазоны
Можно объединить SUBTOTAL с INDIRECT, OFFSET или с именованными диапазонами, чтобы итог пересчитывался вместе с ростом данных.
Пример с INDIRECT (если в A1 задан текст “B2:B10”):
=SUBTOTAL(9,INDIRECT(A1))Встраивание в дашборды
Подставляйте ячейку с кодом функции (например, 9 или 109) через ссылку, чтобы позволить пользователю выбирать тип итога через выпадающий список (data validation). Это даёт один элемент управления для переключения между суммой, средним и т. д.
Когда SUBTOTAL даёт неправильный результат: часто встречающиеся ошибки и контрпримеры
- Двойной счёт при использовании SUM для итоговой строки. Решение: заменить SUM на SUBTOTAL.
- Ожидание, что SUBTOTAL исключит строки, скрытые вручную, при использовании кодов 1–11. На самом деле для исключения вручную скрытых строк нужно использовать 101–111.
- Ожидание, что SUBTOTAL игнорирует формулы, возвращающие пустые строки. SUBTOTAL считает то, что в ячейках реально присутствует (числа/текст). Пустые текстовые значения (“”) от функций могут учитываться в COUNTA.
- Если диапазон содержит ссылки на другие SUBTOTAL — они всегда игнорируются, но если вместо SUBTOTAL используется SUM, то вложенные итоги добавятся и итог исказится.
Альтернативы и сочетания
- SUM и SUMIF/SUMIFS: используют, когда структура плоская и в ней нет вложенных итогов.
- SUMPRODUCT + FILTER: гибкий подход для сложных условий и динамических фильтров.
- QUERY: мощный инструмент для агрегации и создания отдельных наборов итогов на основе SQL-подобного синтаксиса.
- Пивот-таблицы: когда нужны агрегаты по группам и более гибкая агрегация, пивот избавляет от ручных SUBTOTAL.
Когда использовать альтернативы: если вы строите отдельный агрегированный отчет (пивот/QUERY), проще не полагаться на SUBTOTAL в исходной таблице, а собирать данные централизованно.
Мысленная модель: как думать о SUBTOTAL
- SUM — «Добавь всё подряд».
- SUBTOTAL — «Добавь всё, за исключением промежуточных итогов и при необходимости скрытых строк».
Представьте таблицу как набор слоёв: исходные строки → промежуточные подсчёты → общий итог. SUBTOTAL знает про «слой итогов» и умеет их игнорировать.
Рольные чек-листы (быстрые инструкции для команд)
Аналитик:
- Убедиться, что промежуточные итоги стоят в ячейках с SUBTOTAL.
- Для итоговой строки использовать SUBTOTAL по всему диапазону исходных данных.
- Тестировать при включённом/выключенном фильтре.
Бухгалтер:
- При ручном скрытии строк используйте коды 101–111, если хотите исключить скрытые строки.
- Проверьте COUNTA vs COUNT для неподходящих типов данных.
Разработчик дашбордов:
- Создайте управление кодом функции через выпадающий список (1–11 / 101–111) и используйте ссылку на выбранный код в формуле с INDIRECT или CONCATENATE.
- Документируйте логику в ячейках комментариев.
Менеджер:
- Просмотрите итоговые значения против исходных данных на тестовом наборе, чтобы избежать бизнес-ошибок до публикации панели.
Мини-методология внедрения SUBTOTAL в отчёт
- Пройдите по листу, выделите исходные строки и обозначьте их как «данные».
- Вставьте SUBTOTAL для каждой группы (квартал/регион и т. п.).
- Для общего итога используйте SUBTOTAL по полному диапазону исходных строк (включая промежуточные секции) — SUBTOTAL автоматически исключит вложенные SUBTOTAL.
- Добавьте тестовые фильтры: примените фильтр и проверьте, что итог динамично меняется.
- Документируйте используемые коды рядом с формулами.
Критерии приёмки
- Итоговая строка не больше суммы исходных подробных записей (нет двойного счёта).
- При применении фильтра итог пересчитывается и отражает только видимые (отфильтрованные) строки.
- Документация в листе указывает используемый код SUBTOTAL.
Тест-кейсы и проверка корректности
- Без фильтров: сравнить итог SUBTOTAL со сверкой сумм по исходным строкам (без промежуточных SUBTOTAL).
- С включённым фильтром: итог должен измениться и отражать только отображаемые строки.
- Вручную скрыть одну или несколько строк: при кодах 101–111 скрытые строки не учитываются; при 1–11 — учитываются.
- Вставить вложенные SUBTOTAL в поддиапазон: итоговый SUBTOTAL не должен учитывать значения вложенных SUBTOTAL.
Короткий глоссарий
- SUBTOTAL — функция для промежуточных итогов, игнорирует вложенные SUBTOTAL.
- Код функции — числовой аргумент 1–11 или 101–111, определяющий вид агрегата и поведение скрытия строк.
- Вложенный SUBTOTAL — SUBTOTAL, находящийся внутри диапазона другого SUBTOTAL; игнорируется внешней функцией.
Шаблон: типовая реализация для квартального отчёта
| Ячейка | Формула | Описание |
|---|---|---|
| B5 | =SUBTOTAL(9,B2:B4) | Сумма продаж Q1 |
| B9 | =SUBTOTAL(9,B6:B8) | Сумма продаж Q2 |
| B18 | =SUBTOTAL(9,B2:B17) | Общая сумма по всем месяцам (игнорирует ячейки с SUBTOTAL) |
Примечание: если хотите игнорировать вручную скрытые строки — используйте коды 109 и т. п. (прибавьте 100).
Лучшие практики
- Всегда документируйте, какой код вы применяете (пометка рядом с формулой или в отдельной справке на листе).
- Для повторяющихся секций используйте копирование формул SUBTOTAL, а не SUM, чтобы избежать ошибок при расширении таблицы.
- Комбинируйте SUBTOTAL с выпадающими списками и именованными диапазонами для гибких дашбордов.
Риски и рекомендации по смягчению
- Риск: пользователь вручную скрывает строки, и итог неожиданно меняется/не меняется. Рекомендация: документируйте поведение и используйте 101–111, если желаете игнорировать вручную скрытые строки.
- Риск: смешение COUNTA и COUNT приводит к неверным подсчётам. Рекомендация: проверяйте типы данных в столбце (числа vs текст).
Короткое резюме
SUBTOTAL — это простой и надёжный способ подсчёта промежуточных итогов в Google Sheets. Он предотвращает двойной счёт при использовании вложенных итогов и позволяет гибко управлять включением или исключением скрытых строк. Включите SUBTOTAL в набор ваших стандартных приёмов по работе с большими листами и дашбордами.
Важное: если вы не уверены в поведении при скрытии строк, протестируйте формулы с фильтрами и ручным скрытием до публикации отчёта.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone