Как суммировать только видимые ячейки по заданным критериям в Excel?
В Excel пользователи обычно суммируют ячейки по заданным критериям с помощью функции SUMIFS. Однако при работе с отфильтрованными данными простое использование SUMIFS приведёт к тому, что в расчёт попадут как видимые, так и скрытые ячейки. Это часто даёт неверные результаты, если нужно просуммировать только видимые (то есть неотфильтрованные) ячейки, соответствующие указанным критериям, как показано на рисунке ниже.

Суммирование только видимых ячеек на основе одного или нескольких критериев с помощью формулы
Суммирование только видимых ячеек на основе критериев с использованием кода VBA
В повседневной отчётности и рабочих процессах в Анализе данных часто возникает необходимость точно агрегировать данные в отфильтрованных таблицах — например, при расчёте объёмов продаж конкретного товара или категории после применения фильтров. Неправильное выполнение такой операции может привести к итогам, включающим нежелательные данные, поэтому важно использовать методы, учитывающие только видимые на экране строки.
В этой статье представлены несколько практических методов, подходящих для различных сценариев и уровней подготовки пользователей. Каждый из них имеет свои преимущества и возможные ограничения. Вы можете выбрать решение, наилучшим образом соответствующее размеру вашей таблицы, структуре данных и привычкам работы. Ниже приведены подробные инструкции по каждому методу, а также объяснения возможных ошибок и способы оптимизации расчётов для получения более надёжных результатов.
Суммирование только видимых ячеек на основе одного или нескольких критериев с помощью вспомогательного столбца
Один из самых интуитивных и надёжных способов суммирования видимых ячеек по заданным критериям — использовать вспомогательный столбец, учитывающий только видимые строки, а затем применить функцию SUMIFS с нужными условиями. Такой подход особенно эффективен, если данные часто фильтруются разными способами или когда важно, чтобы коллеги легко поняли и при необходимости скорректировали расчёты.
Преимущества: Простота настройки; вся логика и расчёты остаются видимыми на листе; идеально подходит для небольших и средних таблиц; устойчив при корректировке или проверке формул.
Ограничения: создаётся дополнительный столбец; при изменении структуры строк может потребоваться обновление формул; при большом объёме данных чрезмерное использование может стать неудобным.
Например, чтобы просуммировать значения заказов только для товара «Hoodie» в Диапазон фильтрации:
1. Введите или скопируйте следующую формулу в пустой столбец рядом с вашим набором данных (например, в ячейку E2, если столбец D содержит значения):
Перетащите маркер заполнения вниз, чтобы применить эту формулу ко всем строкам вашего диапазона данных. Формула вернёт значение из столбца D для видимых строк и 0 — для строк, скрытых фильтром.

2. После создания вспомогательных значений в столбце E используйте функцию SUMIFS, чтобы просуммировать только видимые строки по вашим критериям. Например, чтобы просуммировать значения для «Hoodie» в столбце A:

Вы можете добавить дополнительные критерии, расширив аргументы функции SUMIFS в формате =SUMIFS(диапазон_суммирования, диапазон_условия1, условие1, [диапазон_условия2, условие2], [диапазон_условия3, условие3], …). Всегда проверяйте диапазоны, чтобы обеспечить корректное выравнивание и получить ожидаемые результаты.
Обратите внимание: если после настройки формул вы переместите, вставите или удалите строки, обязательно убедитесь, что все ссылки по-прежнему корректно соответствуют структуре ваших данных. Иногда ошибки возникают из-за несовпадения диапазонов или забытого обновления ячеек с критериями.
Суммирование только видимых ячеек по критериям с помощью формулы
Если вы предпочитаете решение на основе формул без добавления вспомогательных столбцов, используйте комбинацию функций SUMPRODUCT, SUBTOTAL, OFFSET, ROW и MIN для суммирования только видимых ячеек по заданным критериям. Этот подход идеально подходит опытным пользователям Excel, знакомым с формулами массива, и особенно ценен, когда важно сохранить лист чистым и свободным от лишних столбцов.
Преимущества: Не требует дополнительных столбцов на листе, отличается гибкостью и динамичностью, а формула мгновенно обновляется при изменении фильтров или критериев.
Ограничения: Формулы могут быть сложными для чтения и отладки, особенно если вы не знакомы с функциями массива; кроме того, при работе с очень большими таблицами возможна потеря производительности.
Скопируйте или введите следующую формулу в пустую ячейку (например, чтобы просуммировать видимые ячейки для «Hoodie» в диапазоне A2:A12, где значения находятся в D2:D12, а критерий указан в ячейке A17):
После ввода формулы нажмите Enter, чтобы получить желаемый результат, как показано ниже:

Внимание: этот метод чувствителен к заданным диапазонам — их несоответствие или перекрытие может привести к ошибкам или неожиданным результатам. Обязательно проверяйте крайние случаи, особенно когда фильтрация изменяет количество или положение видимых строк.
Суммирование только видимых ячеек на основе критериев с использованием кода VBA
Для продвинутых пользователей VBA предлагает гибкий способ суммирования только видимых ячеек по заданным критериям — особенно в сложных сценариях или при работе с большими объёмами данных, где стандартные формулы могут страдать от низкой производительности или когда логика условий включает множество требований, трудно выразимых в одной формуле. С помощью VBA можно последовательно перебирать каждую видимую строку, проверять условия и точно вычислять сумму. Это решение идеально подходит для регулярной отчётности и автоматизации сводных расчётов.
Преимущества: Легко справляется с большими наборами данных, множественными или динамическими критериями и сложной логикой; обработка выполняется мгновенно даже при тысячах строк; минимизирует риск ошибок, связанных с ручным редактированием формул.
Ограничения: Требуется включение макросов; некоторые пользователи могут быть не знакомы с VBA или не иметь необходимых разрешений; для внесения изменений нужен доступ к редактору макросов. Всегда создавайте резервную копию перед запуском VBA-кода на важных данных.
1. Чтобы начать, откройте редактор VBA, выбрав Инструменты разработчика > Visual Basic. В появившемся окне перейдите в меню Вставка > Модуль и вставьте следующий код в новый модуль:
Sub SumVisibleByCriteria()
Dim ws As Worksheet
Dim rng As Range
Dim cell As Range
Dim criteriaColumn As Range
Dim sumColumn As Range
Dim criteriaValue As Variant
Dim total As Double
Dim lastRow As Long
Dim criteriaColNum As Integer
Dim sumColNum As Integer
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set ws = Application.ActiveSheet
' Prompt user for criteria column and sum column
Set criteriaColumn = Application.InputBox("Select the criteria range (e.g., A2:A100):", xTitleId, Type:=8)
Set sumColumn = Application.InputBox("Select the values range to sum (e.g., D2:D100):", xTitleId, Type:=8)
criteriaValue = Application.InputBox("Enter the criteria value to match:", xTitleId, Type:=2)
If criteriaColumn Is Nothing Or sumColumn Is Nothing Or criteriaValue = "" Then
MsgBox "Operation cancelled.", vbInformation, xTitleId
Exit Sub
End If
If criteriaColumn.Rows.Count <> sumColumn.Rows.Count Then
MsgBox "Criteria and sum ranges must be the same number of rows.", vbCritical, xTitleId
Exit Sub
End If
total = 0
For Each cell In criteriaColumn
If Not cell.EntireRow.Hidden Then
If cell.Value = criteriaValue Then
total = total + sumColumn.Cells(cell.Row - criteriaColumn.Cells(1).Row + 1).Value
End If
End If
Next cell
MsgBox "The sum of visible cells matching the criteria is: " & total, vbInformation, xTitleId
End Sub 2. Нажмите кнопку
«Выполнить» (или клавишу)F5), чтобы запустить код. После запуска появится диалоговое окно с запросом на выбор диапазона критериев (например, названий товаров), диапазона значений для суммирования и значения фильтра (например, «Hoodie»). Макрос просуммирует только видимые строки, соответствующие заданному критерию, и отобразит результат во всплывающем сообщении.
Практические советы: Используйте этот код VBA, если вам часто приходится пересчитывать суммы после изменения данных или применения фильтров. Вы можете расширить функциональность макроса, добавив поддержку нескольких критериев — для этого достаточно включить дополнительные запросы или логические условия.
Устранение неполадок: Всегда убедитесь, что выбранные диапазоны критериев и значений содержат одинаковое количество строк и относятся к тем же столбцам, что и ваши отфильтрованные данные. Если код выдаёт ошибку или не возвращает ожидаемую сумму, дважды проверьте настройки фильтра и текущее выделение.
Рекомендации по итогам: Для анализа данных, требующих частого пересчёта только видимых значений, сохранение этого макроса в вашей личной книге макросов ускорит ежедневную подготовку отчётов. Если диалоговое окно не появляется, проверьте настройки макросов и параметры безопасности.
Лучшие инструменты повышения продуктивности в Office
Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…
Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу
- Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
- Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!
Все надстройки Kutools — один установщик
Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.
- Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
- Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
- Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
- 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
- Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек