Как посчитать сумму в Excel после фильтра: подробное руководство с примерами

Вы применили фильтр в Microsoft Excel или Google Таблицах, но стандартная функция СУММ упорно игнорирует скрытые строки и выдаёт общую сумму по всему столбцу? Эта проблема знакома каждому, кто работает с большими массивами данных. Дело в том, что классические формулы суммирования не учитывают состояние фильтра — они всегда обрабатывают весь диапазон, включая скрытые ячейки.

В этой статье мы разберём 5 проверенных способов посчитать сумму только по видимым (отфильтрованным) данным — от простых функций до продвинутых инструментов вроде Power Query. Вы узнаете, когда использовать ПРОМЕЖУТОЧНЫЕ.ИТОГИ, как адаптировать формулу СУММЕСЛИ для фильтров, и почему иногда проще воспользоваться таблицами Excel вместо обычных диапазонов. Все методы протестированы на актуальных версиях Excel 2019–2026 и Excel 365.

Почему стандартная функция СУММ не работает с фильтром

Когда вы применяете фильтр к данным, Excel визуально скрывает строки, не соответствующие критериям. Однако это не означает, что ячейки физически удаляются — они просто становятся невидимыми. Функция СУММ по умолчанию игнорирует состояние фильтра и суммирует все значения в диапазоне, включая скрытые.

Пример: у вас есть столбец с продажами за месяц, и вы отфильтровали только те строки, где сумма превышает 10 000 ₽. Если в ячейке под таблицей написать =СУММ(B2:B100), результат будет равен сумме всех продаж, а не только отфильтрованных. Это происходит потому, что СУММ не имеет встроенного механизма для учёта видимости ячеек.

⚠️ Внимание: Если вы используете Google Таблицы, проблема аналогичная — функция SUM тоже суммирует скрытые строки. Решения для Google Sheets мы рассмотрим в отдельном разделе.

Чтобы обойти это ограничение, нужно использовать специальные функции или методы, которые учитывают состояние фильтра. Далее мы разберём каждый из них с практическими примерами.

Способ 1: Функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ (SUBTOTAL) — универсальное решение

Функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ (в английской версии — SUBTOTAL) специально разработана для работы с отфильтрованными данными. Её ключевое преимущество — автоматическое игнорирование скрытых строк, независимо от того, скрыты они вручную или через фильтр.

Синтаксис функции:

=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(номер_функции; диапазон)

Для суммирования видимых ячеек используйте номер функции 9 (или 109, если нужно игнорировать также строки, скрытые вручную). Пример:

=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9; B2:B100)

Разберём на практике. Предположим, у вас есть таблица продаж с колонками Дата, Товар и Сумма. Вы отфильтровали только продажи за январь 2026 года. Чтобы посчитать сумму по видимым строкам:

  1. Добавьте новую строку под таблицей.
  2. Введите формулу: =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9; C2:C100), где C2:C100 — диапазон с суммами продаж.
  3. Нажмите Enter — результат будет равен сумме только отфильтрованных строк.

Убедитесь, что фильтр применён к таблице|Проверьте, что в формуле указан номер функции 9 (или 109)|Укажите правильный диапазон суммирования|Сравните результат с ручным подсчётом видимых ячеек-->

Функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ поддерживает не только суммирование, но и другие операции (среднее, максимум, минимум и т. д.). Полный список номеров функций:

Номер функции Операция Учитывает скрытые вручную?
1 СРЗНАЧ (среднее) Нет
2 СЧЁТ (количество) Нет
9 СУММ (сумма) Нет
101 СРЗНАЧ Да
109 СУММ Да

Способ 2: Преобразование диапазона в таблицу Excel

Если вы регулярно работаете с фильтрами, самый надёжный способ — преобразовать ваш диапазон в умную таблицу Excel (не путать с таблицами сводных отчётов). Таблицы автоматически подстраиваются под фильтры и поддерживают специальный ряд итогов.

Как это сделать:

  1. Выделите диапазон с данными (включая заголовки).
  2. Нажмите Ctrl + T или перейдите на вкладку Вставка → Таблица.
  3. Убедитесь, что галочка Таблица с заголовками установлена, и нажмите OK.
  4. Примените фильтр к таблице (стрелочки фильтра появятся автоматически).
  5. Перейдите на вкладку Конструктор (появляется при выделении таблицы) и поставьте галочку Строка итогов.

Теперь внизу таблицы появится строка Итог, где для каждого столбца можно выбрать функцию (сумма, среднее, количество и т. д.). Если применить фильтр, итоги будут пересчитываться автоматически только по видимым строкам.

Как убрать строку итогов, если она не нужна?

Чтобы скрыть строку итогов, выделите таблицу, перейдите на вкладку Конструктор и снимите галочку Строка итогов. Данные при этом не удалятся — строка просто станет невидимой.

Преимущества этого метода:

  • 🔹 Автоматический пересчёт итогов при изменении фильтра.
  • 🔹 Возможность добавлять новые строки — таблица расширится сама.
  • 🔹 Поддержка структурированных ссылок (например, =СУММ(Таблица1[Сумма])).
  • 🔹 Визуальное оформление (чередующиеся цвета строк).
⚠️ Внимание: Если вы копируете формулу из строки итогов в другую ячейку, она может потерять связь с таблицей. Всегда используйте структурированные ссылки или функцию ПРОМЕЖУТОЧНЫЕ.ИТОГИ вне таблицы.

Способ 3: Комбинация СУММЕСЛИ + ФИЛЬТР (для сложных условий)

Иногда нужно суммировать данные не просто по фильтру, а по дополнительным условиям. Например, посчитать сумму продаж только для конкретного менеджера или товара. В таких случаях поможет комбинация функций СУММЕСЛИ (или СУММЕСЛИМН) с критериями фильтра.

Допустим, у вас есть таблица с колонками A (Менеджер), B (Товар) и C (Сумма). Вы отфильтровали данные по товару "Ноутбук", но нужно посчитать сумму только для менеджера "Иванов". Формула будет такой:

=СУММЕСЛИМН(C2:C100; A2:A100; "Иванов"; B2:B100; "Ноутбук")

Однако этот метод не учитывает фильтр — он суммирует все строки, соответствующие условиям, даже скрытые. Чтобы обойти это, комбинируйте СУММЕСЛИ с ПРОМЕЖУТОЧНЫЕ.ИТОГИ через формулу массива:

=СУММ(ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9; ДВССЫЛ("C" & ПОИСКПОЗ(ИСТИНА; (A2:A100="Иванов")*(ПОДСТАВИТЬ(B2:B100;"";"Ноутбук")="Ноутбук"); 0)):C100))

Эта формула сложная, и её лучше использовать только в крайних случаях. Для большинства задач хватит ПРОМЕЖУТОЧНЫЕ.ИТОГИ или таблиц Excel.

Функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ|Таблицы Excel с строкой итогов|Формулы СУММЕСЛИ/СУММЕСЛИМН|Power Query|Другой метод-->

Способ 4: Power Query — для больших данных и автоматизации

Если вы работаете с крупными наборами данных (тысячи строк) или нужно регулярно обновлять отчёты, стоит освоить Power Query — инструмент для преобразования и анализа данных, встроенный в Excel 2016 и новее.

Алгоритм действий:

  1. Выделите вашу таблицу и перейдите на вкладку Данные → Получить данные → Из таблицы/диапазона.
  2. В открывшемся редакторе Power Query примените фильтр к нужному столбцу (кликните на стрелочку рядом с заголовком).
  3. Перейдите на вкладку Главная → Закрыть и загрузить в... и выберите Таблица.
  4. В новой таблице добавьте строку итогов (как в Способе 2) или используйте функцию СУММ для итогового столбца.

Преимущества Power Query:

  • 📊 Обработка миллионов строк без замедления.
  • 🔄 Автоматическое обновление данных при изменении источника.
  • 🛠️ Возможность объединять данные из нескольких файлов.
  • 📅 Сохранение шагов преобразования для повторного использования.

Пример: у вас есть ежемесячные отчёты в отдельных файлах, и нужно суммировать продажи по фильтру "Регион = Москва". В Power Query вы можете:

  1. Импортировать все файлы из папки.
  2. Объединить их в одну таблицу.
  3. Применить фильтр по региону.
  4. Сгруппировать данные по месяцам и посчитать сумму.

Способ 5: Макрос VBA для автоматизации (продвинутый уровень)

Если вам часто приходится суммировать отфильтрованные данные и стандартные функции не справляются, можно написать простой макрос на VBA. Этот метод требует базовых знаний программирования, но позволяет полностью автоматизировать процесс.

Пример макроса, который суммирует видимые ячейки в выделенном диапазоне:

Sub SumVisibleCells()

Dim rng As Range

Dim cell As Range

Dim total As Double

Set rng = Selection

total = 0

For Each cell In rng

If Not cell.EntireRow.Hidden Then

total = total + cell.Value

End If

Next cell

MsgBox "Сумма видимых ячеек: " & total

End Sub

Как использовать этот макрос:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Выделите диапазон с данными в Excel.
  4. Запустите макрос (F5 или через Макросы на вкладке Разработчик).

Для более гибкого решения можно модифицировать макрос, чтобы он:

  • 📌 Суммировал только ячейки определённого цвета (если используется условное форматирование).
  • 📌 Игнорировал строки с ошибками (#Н/Д, #ЗНАЧ!).
  • 📌 Сохранял результат в конкретную ячейку вместо всплывающего окна.
⚠️ Внимание: Перед запуском макросов убедитесь, что в настройках Excel разрешено выполнение макросов (Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Настройки макросов). В противном случае макрос не сработает.

Особенности работы в Google Таблицах

В Google Таблицах проблема суммирования после фильтра решается аналогично, но с некоторыми нюансами:

  • 🔹 Функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ называется SUBTOTAL и работает так же: =SUBTOTAL(9; B2:B100).
  • 🔹 Для создания таблицы с итогами используйте Данные → Фильтр → Создать фильтр, а затем добавьте строку итогов через контекстное меню.
  • 🔹 Функция QUERY позволяет гибко фильтровать и суммировать данные в одном шаге. Пример:
    =QUERY(A1:C100; "SELECT SUM(C) WHERE B = 'Ноутбук' LABEL SUM(C) 'Итог'")
  • 🔹 В Google Таблицах нет Power Query, но есть App Script — аналог VBA для автоматизации.

Пример использования QUERY для суммирования отфильтрованных данных:

=QUERY(

A1:C100;

"SELECT SUM(C)

WHERE A = 'Иванов'

AND B = 'Ноутбук'

LABEL SUM(C) 'Сумма продаж'";

1

)

Эта формула суммирует столбец C только для строк, где столбец A равен "Иванов", а столбец B — "Ноутбук". Преимущество QUERY в том, что она учитывает фильтры, применённые к таблице.

Частые ошибки и как их избежать

При суммировании отфильтрованных данных пользователи часто сталкиваются с типичными ошибками. Вот самые распространённые и способы их решения:

Ошибка Причина Решение
Функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ возвращает 0 Диапазон содержит текст или пустые ячейки Проверьте формат ячеек (должен быть "Числовой") и удалите пустые строки
Сумма не меняется при изменении фильтра Отключён автоматический пересчёт Нажмите F9 или включите Формулы → Параметры вычислений → Автоматически
#ЗНАЧ! в формуле с СУММЕСЛИМН Диапазоны критериев и суммирования разного размера Убедитесь, что все диапазоны имеют одинаковое количество строк
Макрос не работает Отключены макросы в настройках безопасности Включите макросы в Файл → Параметры → Центр управления безопасностью
Функция QUERY в Google Таблицах выдаёт ошибку Некорректный синтаксис SQL-запроса Проверьте кавычки и регистр в формуле (например, WHERE должно быть заглавными буквами)

Ещё одна распространённая проблема — кэширование данных в Power Query. Если вы обновили исходные данные, но сумма в отчёте не изменилась, попробуйте:

  1. Щёлкните правой кнопкой по таблице с результатом и выберите Обновить.
  2. Если не помогло, перейдите в Данные → Обновить все.
  3. В крайнем случае удалите запрос и создайте его заново.

FAQ: Ответы на популярные вопросы

Можно ли суммировать видимые ячейки без функций, вручную?

Да, но это неудобно для больших таблиц. Выделите видимые ячейки (удерживая Alt, перетащите курсором), и сумма отобразится в строке состояния внизу окна Excel. Однако этот метод не подходит для динамических отчётов.

Почему функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ не работает с сводной таблицей?

Функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ не предназначена для сводных таблиц. В них итоги рассчитываются автоматически на основе группировки. Если нужно суммировать отфильтрованные данные в сводной таблице, используйте нарезанные данные (срезы) или создайте отдельный отчёт.

Как суммировать только чётные/нечётные строки после фильтра?

Используйте комбинацию ПРОМЕЖУТОЧНЫЕ.ИТОГИ с функцией ОСТАТ для определения чётности. Пример:

=СУММПРОИЗВ(

--(ОСТАТ(СТРОКА(B2:B100); 2) = 0);

ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9; ДВССЫЛ("B" & СТРОКА(B2:B100)))

)

Для нечётных строк замените = 0 на = 1.

Можно ли использовать ПРОМЕЖУТОЧНЫЕ.ИТОГИ для нескольких столбцов одновременно?

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

=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9; B2:B100) + ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9; C2:C100)

Или создайте дополнительный столбец с суммой строк и примените ПРОМЕЖУТОЧНЫЕ.ИТОГИ к нему.

Как сохранить сумму отфильтрованных данных при копировании на другой лист?

Используйте специальную вставку (Значения). Скопируйте ячейку с формулой, затем правой кнопкой выберите Специальная вставка → Значения. Так вы сохраните текущий результат, а не формулу.