Перейти к содержимому

Kutools для Office — один пакет. Пять инструментов. Выполняйте больше.

Как суммировать только видимые ячейки на основе критериев в Excel?

Author Xiaoyang Last modified

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

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

В этой статье представлено несколько практических методов, подходящих для различных сценариев и уровней владения, каждый из которых имеет свои преимущества и возможные ограничения. Вы можете выбрать решение, которое лучше всего соответствует размеру вашей таблицы, структуре данных и привычкам работы. Подробные шаги для каждого решения приведены ниже, вместе с объяснением потенциальных ошибок и способов оптимизации процесса вычислений для получения более надежных результатов.


Суммирование только видимых ячеек на основе одного или нескольких критериев с помощью вспомогательного столбца

Один из самых интуитивно понятных и стабильных подходов к суммированию видимых ячеек на основе определенных критериев — это использование вспомогательного столбца, который возвращает значения только для видимых строк, а затем применение функции СУММЕСЛИМН с желаемыми условиями. Этот метод особенно эффективен, если ваш набор данных часто фильтруется различными способами или если вам нужно настроить вычисления, которые коллеги смогут легко понять или изменить.

Преимущества: Простая настройка; вся логика и вычисления остаются видимыми в таблице; подходит для небольших и средних таблиц; надежен при необходимости корректировки или аудита формул.

Ограничения: Создаются дополнительные столбцы; могут потребоваться обновления формул при изменении структуры строк; обширное использование может стать громоздким для очень больших наборов данных.

Например, чтобы суммировать только значения заказов для продукта «Худи» в отфильтрованном диапазоне:

1. Введите или скопируйте следующую формулу в пустой столбец рядом с вашим набором данных (например, в ячейку E2, предполагая, что D — это ваш столбец значений):

=АГРЕГАТ(9,5,D2)

Перетащите маркер заполнения вниз, чтобы заполнить эту формулу по всем строкам вашего диапазона данных. Эта формула вернет значение из столбца D, если строка видима, и 0, если строка скрыта фильтрацией.

A screenshot of Excel illustrating the use of the AGGREGATE formula to calculate visible cell values

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

=СУММЕСЛИМН(E2:E12,A2:A12,A17)
Примечание: Здесь E2:E12 относится к вашему новому вспомогательному столбцу со значениями видимых строк, A2:A12 — это диапазон продукта/критериев, и A17 содержит ваш целевой элемент, «Худи» в этом примере. Убедитесь, что ссылки на ячейки соответствуют вашей структуре данных.

A screenshot of Excel demonstrating the SUMIFS formula summing visible cells based on criteria

Советы: Если вы хотите, чтобы ваша сумма отражала несколько критериев, например, суммирование значений «Худи», которые также являются «Красными», расширьте свою формулу следующим образом:
=СУММЕСЛИМН(E2:E12,A2:A12,A17,C2:C12,B17)

A screenshot of Excel showing the SUMIFS formula applied with multiple criteria for summing visible cells

Вы можете добавить больше критериев, расширяя аргументы СУММЕСЛИМН в формате =СУММЕСЛИМН(диапазон_суммирования, диапазон_критериев1, критерий1, [диапазон_критериев2, критерий2], [диапазон_критериев3, критерий3], ...). Всегда проверяйте свои диапазоны, чтобы обеспечить правильное выравнивание и ожидаемые результаты.

Обратите внимание: Если вы переставляете, вставляете или удаляете строки после настройки ваших формул, дважды проверьте, чтобы все ссылки по-прежнему соответствовали вашей структуре данных. Иногда ошибки могут возникнуть из-за несоответствия диапазонов или забывчивости обновить ваши ячейки с критериями.


Суммирование только видимых ячеек на основе критериев с помощью формулы

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

Преимущества: Не требуется дополнительных столбцов на листе; гибкость и динамичность; формула обновляется мгновенно при фильтрации или изменении критериев.

Ограничения: Формулы могут быть сложными для чтения или отладки, особенно для тех, кто не знаком с функциями массивов; производительность может замедлиться в очень больших таблицах.

Скопируйте или введите следующую формулу в пустую ячейку (например, чтобы суммировать видимые ячейки для «Худи» в A2:A12, с фактическими значениями в D2:D12 и критериями в A17):

=СУММПРОИЗВ(ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3,СМЕЩ(A2:A12,СТРОКА(A2:A12)-МИН(СТРОКА(A2:A12)),,1)),(A2:A12=A17)*(D2:D12))

После ввода формулы нажмите Enter, чтобы получить желаемый результат, как показано ниже:

A screenshot of Excel using a SUMPRODUCT formula to sum visible cells based on criteria

Примечание: В этой формуле ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3,СМЕЩ(...)) проверяет, какие строки видимы, (A2:A12=A17) задает условие совпадения, и D2:D12 — это диапазон значений для суммирования. Настройте ссылки по мере необходимости для вашего собственного листа.
Советы: Чтобы расширить это для большего количества критериев, просто добавьте дополнительные условные термины. Пример: =СУММПРОИЗВ(ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3,СМЕЩ(ссылка,СТРОКА(ссылка)-МИН(СТРОКА(ссылка)),,1)),(диапазон_критериев1=критерий1)*(диапазон_критериев2=критерий2)*(диапазон_суммирования)). Всегда проверяйте, чтобы скобки правильно группировали ваши критерии.

Обратите внимание: Этот подход чувствителен к указанным диапазонам — несоответствующие или перекрывающиеся диапазоны могут вызвать ошибки или непредвиденные результаты. Тестируйте крайние случаи, особенно когда фильтрация изменяет количество или положение видимых строк.


Суммирование только видимых ячеек на основе критериев с использованием кода 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. Нажмите Run button кнопку «Выполнить» (или нажмите F5) для выполнения кода. Диалоговое окно запросит вас выбрать диапазон критериев (например, названия продуктов), диапазон значений для суммирования и значение, которое вы хотите использовать как фильтр (например, «Худи»). Макрос просуммирует только те видимые строки, где ваши критерии выполнены, и покажет результат в всплывающем сообщении.
Практические советы: Используйте этот код VBA, когда вам часто нужно пересчитывать суммы после изменения ваших данных или фильтров. Вы можете дополнительно расширить код VBA для работы с несколькими критериями, добавив больше запросов ввода или логических условий.

Устранение неполадок: Всегда убедитесь, что диапазоны, выбранные для критериев и значений, имеют одинаковое количество строк и принадлежат к тем же столбцам, что и ваши отфильтрованные данные. Если код сообщает об ошибке или не возвращает ожидаемую сумму, дважды проверьте настройки фильтра и активный выбор.

Рекомендации по итогам: Для анализа данных, требующих повторного вычисления только видимых ячеек, сохранение этого макроса в вашей Персональной Книге Макросов может ускорить вашу повседневную работу с отчетами. Если диалоговое окно не появляется, проверьте настройки макросов и разрешения безопасности.


Лучшие инструменты для повышения продуктивности в Office

🤖 Kutools AI Aide: Совершенно новый подход к анализу данных благодаря: Интеллектуальное выполнение |  Генерация кода  |  Создание пользовательских формул |  Анализ данных и построение диаграмм  |  Вызов Kutools Functions
Популярные функции: Поиск, выделение или отметка дубликатов | Удалить пустые строки | Объединить столбцы или адреса без потери данных | Округлить ...
Супер ПОИСК: VLOOKUP по нескольким критериям | VLOOKUP по нескольким значениям | Многолистовой поиск | Распознавание нечетких соответствий ...
Расширенный раскрывающийся список: Быстро создать раскрывающийся список | Зависимый раскрывающийся список | Множественный выбор в раскрывающемся списке ...
Менеджер столбцов: Добавить определённое количество столбцов | Переместить столбцы | Переключить видимость скрытых столбцов | Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка фокусировки | Дизайн листа | Улучшенная строка формулы | Управление книгой и листами | Библиотека автотекста | Выбор даты | Объединить данные | Зашифровать/расшифровать ячейки | Отправить письмо по списку | Супер фильтр | Специальный фильтр (фильтр жирный/курсив/зачеркнутый...) ...
Топ15 наборов инструментов:12 текстовых инструментов (Добавить текст, Удалить определенные символы, ...) |50+ типов диаграмм (Диаграмма Ганта, ...) |40+ полезных формул (Расчет возраста на основе даты рождения, ...) |19 инструментов для вставки (Вставить QR-код, Вставить изображение по пути, ...) |12 инструментов преобразования (Преобразовать в слова, Конвертация валюты, ...) |7 инструментов объединения и разделения (Расширенное объединение строк, Разделить ячейки, ...) | ... и многое другое
Используйте Kutools на предпочитаемом вами языке — поддерживает Английский, Испанский, Немецкий, Французский, Китайский и более40 других языков!

Повысьте свои навыки работы в 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 Tabs PowerPoint
  • Комплексный набор — надстройки для Excel, Word, Outlook и PowerPoint плюс Office Tab Pro
  • Один установщик, одна лицензия — настройка занимает считанные минуты (MSI-совместимо)
  • Совместная работа — максимальная эффективность между приложениями Office
  • 30-дневная полнофункциональная пробная версия — без регистрации и кредитной карты
  • Лучшее соотношение цены и качества — экономия по сравнению с покупкой отдельных надстроек