Работа с большими массивами данных в Microsoft Excel часто требует гибких инструментов для анализа. Одна из самых востребованных задач — суммирование значений по двум и более критериям. Например, вам может понадобиться посчитать общую выручку по конкретному продукту в определённом регионе или найти сумму заказов от определённого клиента за конкретный квартал. Вручную перебирать тысячи строк неэффективно, а стандартная функция СУММ здесь бессильна.
К счастью, в Excel есть несколько способов решить эту задачу: от простых встроенных функций до продвинутых инструментов вроде Power Query или сводных таблиц. Выбор метода зависит от объёма данных, их структуры и вашего уровня владения программой. В этой статье мы разберём 5 проверенных способов суммирования по двум критериям, сравним их плюсы и минусы, а также покажем, как избежать типичных ошибок.
Если вы новичок, начните с раздела про СУММЕСЛИМН — это самый универсальный и понятный метод. Опытным пользователям будет полезно изучить варианты с массивами или Power Query, которые позволяют автоматизировать процесс для динамических данных.
1. Функция СУММЕСЛИМН: базовый метод для двух условий
Функция СУММЕСЛИМН (англ. SUMIFS) — это основной инструмент для суммирования по нескольким критериям. Она появилась в Excel 2007 и с тех пор остаётся самой популярной для таких задач. Её синтаксис прост:
=СУММЕСЛИМН(диапазон_суммирования; диапазон_условия1; условие1; [диапазон_условия2; условие2]; ...)
Пример: Допустим, у вас есть таблица продаж с колонками Продукт, Регион и Сумма. Чтобы посчитать общую выручку от продукта "Ноутбук" в регионе "Москва", формула будет выглядеть так:
=СУММЕСЛИМН(D2:D100; B2:B100; "Ноутбук"; C2:C100; "Москва")
Где:
- 📌
D2:D100— диапазон с суммами (что суммируем) - 📌
B2:B100— диапазон с названиями продуктов (первое условие) - 📌
"Ноутбук"— критерий для первого условия - 📌
C2:C100— диапазон с регионами (второе условие) - 📌
"Москва"— критерий для второго условия
⚠️ Внимание: Если диапазоны условий и суммирования имеют разный размер, Excel вернёт ошибку #ЗНАЧ!. Всегда проверяйте, что количество строк в диапазонах совпадает.
Преимущества метода:
- ✅ Простота — не требует знания сложных формул
- ✅ Гибкость — можно добавлять до 127 условий (в современных версиях)
- ✅ Скорость — работает быстрее, чем ручная фильтрация
Недостатки:
- ❌ Не подходит для динамических диапазонов (при добавлении строк придётся редактировать формулу)
- ❌ Не умеет работать с регулярными выражениями (например, "начинается с...")
2. Суммирование с помощью функции СУММПРОИЗВ: для сложных условий
Функция СУММПРОИЗВ (англ. SUMPRODUCT) — это более мощный, но и более сложный инструмент. Она позволяет суммировать значения с учётом нескольких условий, включая логические операции И/ИЛИ. Основное отличие от СУММЕСЛИМН — возможность работать с массивами данных и применять математические операции к критериям.
Синтаксис для двух условий:
=СУММПРОИЗВ((диапазон1=условие1)*(диапазон2=условие2); диапазон_суммирования)
Пример: Вернёмся к таблице продаж. Чтобы посчитать сумму заказов для продукта "Ноутбук" в регионе "Москва", формула будет такой:
=СУММПРОИЗВ((B2:B100="Ноутбук")*(C2:C100="Москва"); D2:D100)
Как это работает:
- 🔹
(B2:B100="Ноутбук")возвращает массивИСТИНА/ЛОЖЬдля каждого продукта - 🔹
(C2:C100="Москва")делает то же самое для регионов - 🔹 Умножение массивов (
*) преобразуетИСТИНАв1, аЛОЖЬв0 - 🔹
СУММПРОИЗВумножает полученный массив на значения изD2:D100и суммирует результат
Когда использовать СУММПРОИЗВ вместо СУММЕСЛИМН:
- 🔹 Нужно суммировать с учётом
ИЛИ(например, "Ноутбук" или "Планшет") - 🔹 Требуется применять математические операции к условиям (например, суммировать продажи, где цена > 1000 и количество > 5)
- 🔹 Работаете с динамическими массивами (в Excel 365)
⚠️ Внимание: СУММПРОИЗВ может тормозить на очень больших диапазонах (100 000+ строк). Для таких случаев лучше использовать Power Query или сводные таблицы.
Пример с условием "ИЛИ"
Чтобы суммировать продажи либо "Ноутбуков" в Москве, либо "Планшетов" в Питере, используйте:
=СУММПРОИЗВ(
((B2:B100="Ноутбук")*(C2:C100="Москва")) +
((B2:B100="Планшет")*(C2:C100="Питер"));
D2:D100
)
Здесь + заменяет логическое ИЛИ
3. Сводные таблицы: визуальный анализ с группировкой
Если вам нужно не только суммировать данные по двум критериям, но и анализировать их в разрезе, сводные таблицы — идеальный выбор. Они позволяют:
- 📊 Группировать данные по нескольким полям (например, по продукту и региону)
- 📈 Сразу видеть промежуточные итоги и общие суммы
- 🔄 Динамически изменять критерии без редактирования формул
Пошаговая инструкция:
- Выделите исходную таблицу (включая заголовки)
- Перейдите на вкладку
Вставка→Сводная таблица - В открывшемся окне выберите, куда поместить таблицу (новый лист или текущий)
- В панели
Поля сводной таблицыперетащите:- 🔹 Поле с продуктами в область
Строки - 🔹 Поле с регионами в область
Столбцы - 🔹 Поле с суммами в область
Значения(по умолчанию будет суммирование)
- 🔹 Поле с продуктами в область
Пример результата:
| Сумма по продуктам | Москва | Питер | Итого |
|---|---|---|---|
| Ноутбук | 1 250 000 | 980 000 | 2 230 000 |
| Планшет | 450 000 | 320 000 | 770 000 |
| Итого | 1 700 000 | 1 300 000 | 3 000 000 |
Преимущества сводных таблиц:
- ✅ Наглядность — данные сразу структурированы
- ✅ Гибкость — можно менять группировку "на лету"
- ✅ Автоматическое обновление при изменении исходных данных
Недостатки:
- ❌ Требует навыков работы со сводными таблицами (для новичков может быть сложно)
- ❌ Не подходит для одноразовых расчётов (слишком громоздко)
4. Power Query: автоматизация для больших данных
Если вы работаете с огромными массивами данных (десятки тысяч строк) или нужно регулярно обновлять отчёты, Power Query (вкладка Данные → Получить данные) станет вашим лучшим помощником. Этот инструмент позволяет:
- 🔄 Импортировать данные из разных источников (Excel, SQL, веб)
- 🛠️ Трансформировать и очищать данные без формул
- 📊 Автоматически группировать и суммировать по нескольким критериям
Инструкция по суммированию по двум критериям:
- Выделите исходную таблицу и нажмите
Данные→Из таблицы/диапазона - В открывшемся редакторе Power Query выберите колонки, по которым нужно группировать (например,
ПродуктиРегион) - Нажмите
Трансформация→Группировка - В окне группировки:
- 🔹 Укажите
Группировать по: выберите обе колонки (удерживайтеCtrl) - 🔹 Задайте имя новой колонки (например,
Сумма продаж) - 🔹 Выберите операцию:
Сумма - 🔹 Укажите колонку для суммирования (например,
Сумма)
- 🔹 Укажите
Закрыть и загрузить — результат появится на новом листеPower Query сохраняет все шаги трансформации, поэтому при обновлении исходных данных достаточно нажать "Обновить все" — и отчёт пересчитается автоматически.
Когда стоит использовать Power Query:
- 🔹 Данные импортируются из внешних источников (базы данных, API, веб-страницы)
- 🔹 Нужно очищать данные перед анализом (удалять пустые строки, исправлять ошибки)
- 🔹 Требуется создавать сложные отчёты с несколькими уровнями группировки
⚠️ Внимание: В Excel 2016 и старше Power Query встроен по умолчанию. В Excel 2010-2013 его нужно устанавливать как надстройку (Файл→Параметры→Надстройки→Power Query).
☑️ Подготовка данных для Power Query
5. Макросы VBA: автоматизация для повторяющихся задач
Если вам приходится регулярно суммировать данные по одним и тем же критериям, имеет смысл написать макрос на VBA. Это сэкономит время и исключит ошибки при ручном вводе формул. Например, макрос может автоматически создавать отчёт по продажам за выбранный период и регион.
Пример макроса для суммирования по двум критериям:
Sub SumByTwoCriteria()
Dim ws As Worksheet
Dim lastRow As Long
Dim product As String
Dim region As String
Dim sumRange As Range
Dim criteriaRange1 As Range, criteriaRange2 As Range
Dim result As Double
' Настройка параметров
Set ws = ThisWorkbook.Sheets("Продажи") ' Лист с данными
lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row ' Последняя строка с данными
product = "Ноутбук" ' Критерий 1
region = "Москва" ' Критерий 2
' Задаём диапазоны
Set sumRange = ws.Range("D2:D" & lastRow) ' Диапазон для суммирования
Set criteriaRange1 = ws.Range("B2:B" & lastRow) ' Диапазон с продуктами
Set criteriaRange2 = ws.Range("C2:C" & lastRow) ' Диапазон с регионами
' Суммируем по двум критериям
result = Application.WorksheetFunction.SumIfs(sumRange, criteriaRange1, product, criteriaRange2, region)
' Выводим результат
MsgBox "Сумма продаж для " & product & " в " & region & ": " & Format(result, "#,##0"), vbInformation
End Sub
Как использовать этот макрос:
- Нажмите
Alt + F11, чтобы открыть редактор VBA - Вставьте код в новый модуль (
Insert→Module) - Измените параметры (имя листа, критерии, диапазоны) под свою таблицу
- Запустите макрос нажатием
F5или черезВид→Макросы
Преимущества макросов:
- ✅ Полная автоматизация — достаточно одного клика
- ✅ Гибкость — можно добавлять дополнительную логику (например, отправку результата по email)
- ✅ Скорость — обработка больших данных происходит быстрее, чем с формулами
Недостатки:
- ❌ Требует знания VBA (или готовности разобраться)
- ❌ Макросы могут не работать, если отключена поддержка VBA (например, в онлайн-версии Excel)
6. Типичные ошибки и как их избежать
Даже опытные пользователи Excel иногда сталкиваются с ошибками при суммировании по двум критериям. Вот самые распространённые проблемы и их решения:
Ошибка #1: #ЗНАЧ! в функции СУММЕСЛИМН
- 🔹 Причина: Диапазоны суммирования и условий разного размера.
- 🔹 Решение: Проверьте, что все диапазоны начинаются и заканчиваются на одних и тех же строках. Например, если суммируете
D2:D100, то и условия должны бытьB2:B100иC2:C100.
Ошибка #2: Неправильный результат в СУММПРОИЗВ
- 🔹 Причина: Забыли умножить массивы условий или неправильно расставили скобки.
- 🔹 Решение: Всегда оборачивайте каждое условие в отдельные скобки:
=СУММПРОИЗВ((B2:B100="Ноутбук")*(C2:C100="Москва"); D2:D100)
Ошибка #3: Сводная таблица не обновляется
- 🔹 Причина: Диапазон источника данных не расширяется автоматически при добавлении новых строк.
- 🔹 Решение: Преобразуйте исходную таблицу в "умную таблицу" (
Ctrl + T), тогда сводная будет обновляться вместе с ней.
Ошибка #4: Макрос не находит лист
- 🔹 Причина: Опечатка в имени листа или лист переименован.
- 🔹 Решение: Используйте
ThisWorkbook.Sheets("Имя")и убедитесь, что имя совпадает с реальным названием листа (с учётом регистра!).
Ошибка #5: Power Query не видит изменения
- 🔹 Причина: Данные обновлены, но запрос не перезагружен.
- 🔹 Решение: Нажмите
Данные→Обновить всеили правой кнопкой по таблице с результатом →Обновить.
Если ни одно из решений не помогло, проверьте:
- 🔹 Формат ячеек (числа не должны быть текстом, а даты — датами)
- 🔹 Наличие скрытых символов (пробелов, неразрывных пробелов) в критериях
- 🔹 Языковые настройки Excel (в русской версии функции называются по-русски, в английской — по-английски)
FAQ: Ответы на частые вопросы
Можно ли суммировать по двум критериям в Google Таблицах?
Да, в Google Sheets есть аналогичные функции:
- 🔹
СУММЕСЛИМН(англ.SUMIFS) — работает так же, как в Excel - 🔹
СУММПРОИЗВ(англ.SUMPRODUCT) — синтаксис идентичен - 🔹 Сводные таблицы — функционал почти не отличается
Отличие только в том, что в Google Таблицах нет Power Query, но зато есть QUERY — мощная функция для работы с данными по SQL-подобному синтаксису.
Как суммировать по двум критериям, если одно из них — диапазон дат?
Используйте СУММЕСЛИМН с операторами сравнения. Например, чтобы посчитать продажи за январь 2023 года:
=СУММЕСЛИМН(D2:D100; B2:B100; "Ноутбук"; C2:C100; ">="&ДАТА(2023;1;1); C2:C100; "<="&ДАТА(2023;1;31))
Здесь C2:C100 — колонка с датами, а ДАТА(2023;1;1) и ДАТА(2023;1;31) — границы периода.
Почему СУММЕСЛИМН возвращает 0, хотя данные есть?
Вероятные причины:
- 🔹 Критерий написан с ошибкой (например, лишний пробел:
"Ноутбук "вместо"Ноутбук") - 🔹 Данные в ячейках имеют разный регистр (например, "Москва" vs "москва")
- 🔹 Диапазоны условий и суммирования не совпадают по строкам
- 🔹 Числа хранятся как текст (проверьте формат ячеек)
Решение: используйте функцию ТРИМ для удаления пробелов и ПРОПИСН/СТРОЧН для унификации регистра.
Можно ли суммировать по двум критериям в Excel Online?
Да, но с ограничениями:
- ✅ Работают
СУММЕСЛИМНиСУММПРОИЗВ - ✅ Доступны сводные таблицы
- ❌ Нет Power Query и VBA
Для автоматизации в онлайн-версии можно использовать Office Scripts (аналог макросов для Excel Online).
Как суммировать по двум критериям в разных листах?
Ссылайтесь на диапазоны с указанием листа. Например:
=СУММЕСЛИМН(Лист2!D2:D100; Лист2!B2:B100; "Ноутбук"; Лист2!C2:C100; "Москва")
Если имена листов содержат пробелы, используйте апострофы:
=СУММЕСЛИМН('Лист с данными'!D2:D100; 'Лист с данными'!B2:B100; "Ноутбук"; ...)