Вы применили фильтр в 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 года. Чтобы посчитать сумму по видимым строкам:
- Добавьте новую строку под таблицей.
- Введите формулу:
=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9; C2:C100), гдеC2:C100— диапазон с суммами продаж. - Нажмите
Enter— результат будет равен сумме только отфильтрованных строк.
Убедитесь, что фильтр применён к таблице|Проверьте, что в формуле указан номер функции 9 (или 109)|Укажите правильный диапазон суммирования|Сравните результат с ручным подсчётом видимых ячеек-->
Функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ поддерживает не только суммирование, но и другие операции (среднее, максимум, минимум и т. д.). Полный список номеров функций:
| Номер функции | Операция | Учитывает скрытые вручную? |
|---|---|---|
| 1 | СРЗНАЧ (среднее) | Нет |
| 2 | СЧЁТ (количество) | Нет |
| 9 | СУММ (сумма) | Нет |
| 101 | СРЗНАЧ | Да |
| 109 | СУММ | Да |
Способ 2: Преобразование диапазона в таблицу Excel
Если вы регулярно работаете с фильтрами, самый надёжный способ — преобразовать ваш диапазон в умную таблицу Excel (не путать с таблицами сводных отчётов). Таблицы автоматически подстраиваются под фильтры и поддерживают специальный ряд итогов.
Как это сделать:
- Выделите диапазон с данными (включая заголовки).
- Нажмите
Ctrl + Tили перейдите на вкладкуВставка → Таблица. - Убедитесь, что галочка
Таблица с заголовкамиустановлена, и нажмитеOK. - Примените фильтр к таблице (стрелочки фильтра появятся автоматически).
- Перейдите на вкладку
Конструктор(появляется при выделении таблицы) и поставьте галочкуСтрока итогов.
Теперь внизу таблицы появится строка Итог, где для каждого столбца можно выбрать функцию (сумма, среднее, количество и т. д.). Если применить фильтр, итоги будут пересчитываться автоматически только по видимым строкам.
Как убрать строку итогов, если она не нужна?
Чтобы скрыть строку итогов, выделите таблицу, перейдите на вкладку Конструктор и снимите галочку Строка итогов. Данные при этом не удалятся — строка просто станет невидимой.
Преимущества этого метода:
- 🔹 Автоматический пересчёт итогов при изменении фильтра.
- 🔹 Возможность добавлять новые строки — таблица расширится сама.
- 🔹 Поддержка структурированных ссылок (например,
=СУММ(Таблица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 и новее.
Алгоритм действий:
- Выделите вашу таблицу и перейдите на вкладку
Данные → Получить данные → Из таблицы/диапазона. - В открывшемся редакторе Power Query примените фильтр к нужному столбцу (кликните на стрелочку рядом с заголовком).
- Перейдите на вкладку
Главная → Закрыть и загрузить в...и выберитеТаблица. - В новой таблице добавьте строку итогов (как в Способе 2) или используйте функцию
СУММдля итогового столбца.
Преимущества Power Query:
- 📊 Обработка миллионов строк без замедления.
- 🔄 Автоматическое обновление данных при изменении источника.
- 🛠️ Возможность объединять данные из нескольких файлов.
- 📅 Сохранение шагов преобразования для повторного использования.
Пример: у вас есть ежемесячные отчёты в отдельных файлах, и нужно суммировать продажи по фильтру "Регион = Москва". В Power Query вы можете:
- Импортировать все файлы из папки.
- Объединить их в одну таблицу.
- Применить фильтр по региону.
- Сгруппировать данные по месяцам и посчитать сумму.
Способ 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
Как использовать этот макрос:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Выделите диапазон с данными в Excel.
- Запустите макрос (
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. Если вы обновили исходные данные, но сумма в отчёте не изменилась, попробуйте:
- Щёлкните правой кнопкой по таблице с результатом и выберите
Обновить. - Если не помогло, перейдите в
Данные → Обновить все. - В крайнем случае удалите запрос и создайте его заново.
FAQ: Ответы на популярные вопросы
Можно ли суммировать видимые ячейки без функций, вручную?
Да, но это неудобно для больших таблиц. Выделите видимые ячейки (удерживая Alt, перетащите курсором), и сумма отобразится в строке состояния внизу окна Excel. Однако этот метод не подходит для динамических отчётов.
Почему функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ не работает с сводной таблицей?
Функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ не предназначена для сводных таблиц. В них итоги рассчитываются автоматически на основе группировки. Если нужно суммировать отфильтрованные данные в сводной таблице, используйте нарезанные данные (срезы) или создайте отдельный отчёт.
Как суммировать только чётные/нечётные строки после фильтра?
Используйте комбинацию ПРОМЕЖУТОЧНЫЕ.ИТОГИ с функцией ОСТАТ для определения чётности. Пример:
=СУММПРОИЗВ(
--(ОСТАТ(СТРОКА(B2:B100); 2) = 0);
ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9; ДВССЫЛ("B" & СТРОКА(B2:B100)))
)
Для нечётных строк замените = 0 на = 1.
Можно ли использовать ПРОМЕЖУТОЧНЫЕ.ИТОГИ для нескольких столбцов одновременно?
Да, но придётся суммировать каждый столбец отдельно. Например:
=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9; B2:B100) + ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9; C2:C100)
Или создайте дополнительный столбец с суммой строк и примените ПРОМЕЖУТОЧНЫЕ.ИТОГИ к нему.
Как сохранить сумму отфильтрованных данных при копировании на другой лист?
Используйте специальную вставку (Значения). Скопируйте ячейку с формулой, затем правой кнопкой выберите Специальная вставка → Значения. Так вы сохраните текущий результат, а не формулу.