Как суммировать отфильтрованные строки в Excel (с примером)

Самый простой способ получить сумму отфильтрованного диапазона в Excel — использовать следующий синтаксис:
SUBTOTAL( 109 , A1:A10 )
Обратите внимание, что значение 109 — это сокращение для получения суммы отфильтрованного диапазона строк.
В следующем примере показано, как использовать эту функцию на практике.
Пример: суммирование отфильтрованных строк в Excel
Предположим, у нас есть следующий набор данных, содержащий информацию о различных баскетбольных командах:

Далее давайте отфильтруем данные, чтобы показывать только игроков на Mavs или Warriors.
Для этого выделите диапазон ячеек A1:B10.Затем щелкните вкладку « Данные » на верхней ленте и нажмите кнопку « Фильтр ».

Затем щелкните стрелку раскрывающегося списка рядом с « Команда» , снимите флажок рядом с «Селтикс» и нажмите « ОК »:

Данные будут автоматически отфильтрованы, чтобы удалить строки с «Селтикс» в качестве команды:

Если мы попытаемся использовать функцию SUM() для суммирования столбца точек отфильтрованных строк, она фактически вернет сумму всех исходных значений:

Вместо этого мы можем использовать функцию ПРОМЕЖУТОЧНЫЕ.ИТОГИ() :

Эта функция принимает сумму только видимых строк.
Мы можем вручную проверить это, взяв сумму видимых строк:
Сумма очков в видимых рядах: 99 + 94 + 93 + 104 + 109 + 84 = 583 .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в Excel:
Сумма видимых строк. Функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ
Задача: функция СУММ суммирует все ячейки диапазона, являются ли они скрытыми или нет. Вы хотите суммировать только видимые строки.
Решение: вы можете использовать функцию ПРОМЕЖУТОЧНЫЕ.ИТОГИ вместо СУММ. Формула будет немного отличаться, в зависимости от того, как вы спрятали строки. Если вы выделили строки, кликнули правой кнопкой мыши, и в контекстном меню выбрали скрыть, можно использовать: =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(109; диапазон) (рис. 1). Весьма необычно использовать для этих целей ПРОМЕЖУТОЧНЫЕ.ИТОГИ. Как правило, эта функция нужна, чтобы Excel игнорировал другие подитоги внутри диапазона.

Рис. 1. Серия 100 в первом аргументе функции ПРОМЕЖУТОЧНЫЕ.ИТОГИ используется для обработки видимых строк
Скачать заметку в формате Word или pdf, примеры в формате Excel
ПРОМЕЖУТОЧНЫЕ.ИТОГИ может выполнить 11 операций. Первый аргумент функции указывает ей на следующие операции: (1) СРЗНАЧ, (2) СЧЁТ, (3) СЧЁТЗ, (4) МАКС, (5) МИН, (6) ПРОИЗВЕД, (7) СТАНДОТКЛОН, (8) СТАНДОТКЛОНП, (9) СУММ, (10) ДИСП, (11) ДИСПР. При добавлении сотни выполняются те же операции, но только над видимыми ячейкам. Например, 104 найдет максимум среди видимых ячеек. Под видимыми имеется ввиду, не видимые на экране (например, 120 строк не уместятся на экране), а не скрытые, командой Скрыть.
В ячейке Е566 (см. рис. 1) используется формула =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(109;E2:E564). Excel возвращает сумму только видимых (не скрытых) ячеек в диапазоне, а именно – Е2;Е30;Е72;Е78;Е564.
Функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ применяется к вертикальным наборам данных. Она не предназначена для горизонтальных наборов данных. Так, при определении промежуточных итогов горизонтального набора данных с помощью значения константы номер_функции от 101 и выше (например, ПРОМЕЖУТОЧНЫЕ.ИТОГИ(109;С2:F2) рис. 2), скрытие столбца не повлияет на результат.

Рис. 2. Формула не игнорирует ячейки в скрытых столбцах
Дополнительные сведения: существует необычное исключение в поведении функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ. Когда строки были скрыты по какой-либо из команд фильтра (расширенный фильтр, автофильтр или фильтр), Excel суммирует только видимые строки даже в варианте ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;диапазон). Нет необходимости использовать версию 109 (рис. 3). Здесь фильтр используется для поиска записей Chevron.

Рис. 3. Достаточно аргумента 9 если строки скрыты в результате применения фильтра
Почему я упоминаю об этой странности? Потому что есть малоизвестное сочетание клавиш для суммирования видимых строк, полученных в результате фильтрации. Попробуйте эти шаги:
- Выбрать любую ячейку в вашем наборе данных.
- Пройдите по меню ДАННЫЕ –>Фильтр (или нажмите Alt + Ы, а затем не отпуская Alt, нажмите Ф; или нажмите Ctrl+Shift+L). Excel добавляет фильтр (выпадающее меню) для всех заголовков столбцов.
- Откройте одно из выпадающих меню, например, Customer. Снимите флажок Выделить все, а затем выберите одного клиента. В нашем примере – Chevron.
- Выберите ячейки непосредственно под отфильтрованными данными. В нашем примере –ячейки Е565:H565.
- Нажмите клавиши Alt+= или щелкните значок Автосумма (меню ГЛАВНАЯ). Вместо того, чтобы использовать СУММ, Excel применит функцию ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;диапазон), которая просуммирует только строки, выбранные фильтром (см. рис. 3).
В Excel 2010 появилась еще одна подобная функция – АГРЕГАТ (подробнее см. Сравнение массивов и выборки по одному или нескольким условиям; раздел Функция АГРЕГАТ). Она имеет больше функций в своем «репертуаре» и больше опций, какие строки исключать, а какие обрабатывать. Основное ее достоинство – обработка ошибочных значений (например, #ДЕЛ/0!). К сожалению, эта функция также не применима к суммированию видимых столбцов.
Резюме: вы можете использовать функцию ПРОМЕЖУТОЧНЫЕ.ИТОГИ, чтобы игнорировать скрытые строки.
Excel: Как суммировать ОТФИЛЬТРОВАННЫЕ ячейки? Есть более удобный способ кроме =СУММ (D10+. +D50) ?

СУММЕСЛИ / СУММЕСЛИМН. Промежуточные итоги. Сводные таблицы. Запросы PowerQuery. Да макросы, в конце концов.
Дмитрий МитяевУченик (10) 4 года назад
ОК, а как написать макрос для этой ситуации?
Дмитрий МитяевУченик (10) 4 года назад
СУММЕСЛИ () — подошел. Спасибо.
Остальные ответы
Глупость это. Есть же СУММЕСЛИ!
В данном случае просто в ячейку D60 ввести =СУММЕСЛИ (C$5:C$53;C60;D$5:D$53)
И копировать её вверх и вниз. Получим всё и сразу!
для суммирования отфильтрованных диапазон используется
=ПРОМЕЖУТОЧНЫЕ. ИТОГИ (9;Дипазон)
Дмитрий МитяевУченик (10) 4 года назад
Да, но если снять фильтр — все собьется и будет посчитан ВЕСЬ диапазон.
Умрбек Искандарович Мастер (1672) возможно я неправильно понял вопрос, но автор вопроса об этом и спрашивает. ОТФИЛЬТРОВАННЫЕ А если снять фильтр — то фильтра нет получается.
Константин СокольскийЗнаток (405) 3 года назад
Вы очень доступно все объяснили, а можете пояснить вот что:
Отфильтровал ячейки, сделал все как вы показали и получилась итоговая сумма.
При включении скрытых ячеек сумма изменяется на величину раскрытых ячеек. Вопрос: можно ли сделать так, чтоб после автосуммы, при раскрытии скрытых ячеек итоговая сумма не изменялась?
При этом суммировать не отдельно отфильтрованные ячейки, а суммирование диапазоном
Умрбек Искандарович Мастер (1672) нет нельзя, смысл того что я показал вам работает с раскрытыми ячейками. Если вы хотите подобрать сумму по другим условиям почитайте про суммеслимн может это поможет?
Сумма видимых строк при фильтрации
Если вы хотите, чтобы суммировались только видимые строки в отфильтрованном списке (т.е. строки, которые не отфильтрованные), вы можете использовать функцию ПРОМЕЖУТОЧНЫЕ.ИТОГИ с номером функции 9 или 109. ПРОМЕЖУТОЧНЫЕ.ИТОГИ особенно полезна в том, что она автоматически игнорирует строки, которые скрыты в отфильтрованном списке или таблице.

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