Как в Excel посчитать количество уникальных значений в столбце по условию: от простого к сложному

Подсчёт уникальных значений в Microsoft Excel или Google Таблицах — одна из самых востребованных задач при анализе данных. Но что делать, если нужно учитывать только те значения, которые соответствуют определённому условию? Например, посчитать количество уникальных клиентов из конкретного региона или количество уникальных товаров в категории «Электроника» за последний квартал.

Без знания специальных формул или инструментов эта задача может занять часы ручной работы. Однако в Excel есть как минимум 7 способов решить её быстро: от простых функций вроде СЧЁТЕСЛИМН до продвинутых инструментов вроде Power Query или UNIQUE в новых версиях. В этой статье разберём каждый метод с пошаговыми инструкциями, примерами и нюансами, которые помогут избежать ошибок.

Если вы новичок, начните с первых трёх разделов — там объяснены базовые подходы. Опытным пользователям будет полезен раздел про Power Query и динамические массивы, которые экономят время при работе с большими данными.

⚠️ Внимание: В Excel 2019 и старше (включая Microsoft 365) доступны функции динамических массивов (UNIQUE, FILTER), которые сильно упрощают задачу. Если у вас более старая версия, используйте альтернативные методы из этой статьи.

1. Базовый метод: комбинация СЧЁТЕСЛИ + вспомогательный столбец

Самый простой способ посчитать уникальные значения по условию — использовать функцию СЧЁТЕСЛИ (COUNTIF) вместе со вспомогательным столбцом. Этот метод работает во всех версиях Excel, включая Excel 2010.

Допустим, у вас есть таблица с данными о продажах:

ТоварКатегорияРегион
Ноутбук AЭлектроникаМосква
Смартфон BЭлектроникаСПб
Ноутбук AЭлектроникаМосква
Часы CАксессуарыКазань
Смартфон BЭлектроникаМосква

Задача: посчитать количество уникальных товаров в категории «Электроника». Для этого:

  1. Создайте вспомогательный столбец (например, D) с формулой:
    =СЧЁТЕСЛИ($A$2:A2;A2)

    Эта формула вернёт 1 для первого вхождения товара и 0 для дубликатов.

  2. В ячейке с результатом (например, E2) используйте формулу:
    =СУММПРОИЗВ(--(D2:D6=1);--(B2:B6="Электроника"))

    Здесь D2:D6=1 отбирает уникальные значения, а B2:B6="Электроника" — фильтрует по категории.

Плюсы: работает в любых версиях Excel, не требует дополнительных надстроек.

Минусы: нужно создавать вспомогательный столбец, формула может тормозить на больших данных.

2. Формула массива: СУММПРОИЗВ + ЕСЛИ + ЧАСТОТА

Для тех, кто не хочет создавать вспомогательные столбцы, подойдёт формула массива. Она сложнее, но эффективнее для одноразовых расчётов.

Используем ту же таблицу. Формула для подсчёта уникальных товаров в категории «Электроника»:

=СУММ(--(ЧАСТОТА(ЕСЛИ(B2:B6="Электроника";СТРОКА(A2:A6)-МИН(СТРОКА(A2:A6))+1);СТРОКА(A2:A6)-МИН(СТРОКА(A2:A6))+1)>0))

Разберём, как она работает:

  • 🔹 ЕСЛИ(B2:B6="Электроника";...) — фильтрует строки по категории.
  • 🔹 СТРОКА(A2:A6)-МИН(СТРОКА(A2:A6))+1 — присваивает каждой строке уникальный номер.
  • 🔹 ЧАСТОТА считает, сколько раз каждый номер встречается.
  • 🔹 СУММ(--(ЧАСТОТА>0)) — подсчитывает уникальные номера (т.е. уникальные товары).

⚠️ Внимание: Это формула массива — после ввода нажмите Ctrl+Shift+EnterExcel 365 это не требуется).

- Данные отсортированы по столбцу с уникальными значениями

- Нет пустых ячеек в диапазоне

- Версия Excel поддерживает формулы массивов (для старых версий используйте {скобки})

-->

3. Функция УНИК в Excel 365 и Google Таблицах

Если у вас Microsoft 365 или Excel 2021, задача упрощается благодаря функции УНИК (UNIQUE). Она автоматически извлекает уникальные значения, а в комбинации с ФИЛЬТР (FILTER) позволяет учитывать условия.

Пример для той же таблицы:

=СЧЁТ(УНИК(ФИЛЬТР(A2:A6;B2:B6="Электроника")))

Как это работает:

  1. ФИЛЬТР(A2:A6;B2:B6="Электроника") — возвращает массив товаров только из категории «Электроника».
  2. УНИК — оставляет только уникальные значения в этом массиве.
  3. СЧЁТ — подсчитывает количество уникальных элементов.

Это самый короткий и эффективный способ для современных версий Excel. В Google Таблицах формула будет идентичной.

Версия ExcelПоддерживаемые функцииПример формулы
Excel 2019 и старшеУНИК, ФИЛЬТР=СЧЁТ(УНИК(ФИЛЬТР(...)))
Excel 2016Нет УНИКИспользуйте СУММПРОИЗВ или Power Query
Google ТаблицыUNIQUE, FILTER=COUNTA(UNIQUE(FILTER(...)))
📊 Какую версию Excel вы используете?
Excel 2010-2016
Excel 2019-2021
Microsoft 365
Google Таблицы
Другая

4. Power Query: мощный инструмент для больших данных

Если вам нужно регулярно считать уникальные значения по условию в больших таблицах (тысячи строк), Power Query станет лучшим решением. Этот инструмент встроен в Excel 2016 и новее (в Excel 2010-2013 требуется надстройка Power Query).

Пошаговая инструкция:

  1. Выделите исходную таблицу и нажмите Данные → Из таблицы/диапазона (или Get Data → From Table/Range).
  2. В редакторе Power Query отфильтруйте данные по нужному условию (например, категория = «Электроника»).
  3. Выделите столбец с уникальными значениями (например, «Товар») и нажмите Главная → Группировка (Group By).
  4. В настройках группировки выберите операцию Количество уникальных значений (Count Distinct Rows).
  5. Нажмите Закрыть и загрузить (Close & Load), чтобы получить результат в новой таблице.

Преимущества:

  • 🔹 Обрабатывает миллионы строк без тормозов.
  • 🔹 Автоматически обновляет результат при изменении исходных данных.
  • 🔹 Позволяет комбинировать несколько условий (например, категория + регион).

⚠️ Внимание: Если в данных есть скрытые символы (пробелы, неразрывные пробелы), Power Query может считать их разными значениями. Перед группировкой очистите данные функцией ТRIM.

Как удалить невидимые символы в Power Query?

1. Выделите столбец → Преобразование → Формат → Обрезка (Trim).

2. Для неразрывных пробелов используйте замену: Главная → Заменить значения → замените   (alt+0160) на пробел.

5. Сводная таблица: быстрый анализ без формул

Сводные таблицы — ещё один способ посчитать уникальные значения по условию без формул. Подходит для визуального анализа, но имеет ограничения.

Алгоритм:

  1. Выделите исходную таблицу и нажмите Вставка → Сводная таблица.
  2. В настройках сводной таблицы перетащите столбец с условием (например, «Категория») в область Фильтры.
  3. Перетащите столбец с уникальными значениями (например, «Товар») в область Строки.
  4. В область Значения добавьте тот же столбец («Товар») и выберите операцию Количество уникальных значений (Count Distinct в английской версии).
  5. Отфильтруйте сводную таблицу по нужному условию (например, категория = «Электроника»).

📌 Нюанс: В некоторых версиях Excel опция Количество уникальных значений может отсутствовать. В этом случае используйте Количество и делите результат на количество дубликатов (неточно, но быстро для оценки).

🔹 Когда использовать: Для разовых отчётов или когда нужно показать результаты начальству в наглядном виде.

🔹 Когда не использовать: Если данные часто обновляются или нужно автоматизировать процесс (лучше Power Query).

6. Комбинация УСЛОВНОЕ ФОРМАТИРОВАНИЕ + ФИЛЬТР

Этот метод подходит для визуального контроля уникальных значений перед подсчётом. Он не даёт готового числа, но помогает быстро оценить данные.

Инструкция:

  1. Выделите столбец с уникальными значениями (например, A2:A100).
  2. Нажмите Главная → Условное форматирование → Правила выделения ячеек → Повторяющиеся значения.
  3. Выберите формат для дубликатов (например, красный текст).
  4. Примените фильтр по условию (например, категория = «Электроника»).
  5. Вручную посчитайте ячейки без выделения (уникальные) или используйте формулу =СЧЁТЕСЛИ(диапазон;">0")-СЧЁТЕСЛИ(диапазон_дубликатов;">0").

⚠️ Внимание: Этот способ требует ручного подсчёта и не подходит для больших таблиц. Используйте его только для проверки небольших диапазонов.

7. VBA-макрос для автоматизации

Если вам нужно регулярно считать уникальные значения по сложным условиям, напишите простой макрос на VBA. Это сэкономит время при повторяющихся задачах.

Пример макроса для подсчёта уникальных товаров в категории «Электроника»:

Sub CountUniqueByCondition()

Dim ws As Worksheet

Dim rngData As Range, rngCondition As Range

Dim dict As Object

Dim cell As Range

Dim count As Long

Set ws = ActiveSheet

Set rngData = ws.Range("A2:A" & ws.Cells(ws.Rows.Count, "A").End(xlUp).Row) ' Столбец с товарами

Set rngCondition = ws.Range("B2:B" & ws.Cells(ws.Rows.Count, "B").End(xlUp).Row) ' Столбец с категориями

Set dict = CreateObject("Scripting.Dictionary")

For Each cell In rngData

If rngCondition(cell.Row).Value = "Электроника" Then

dict(cell.Value) = 1 ' Добавляем уникальное значение в словарь

End If

Next cell

count = dict.Count

MsgBox "Количество уникальных товаров в категории 'Электроника': " & count

End Sub

Как использовать:

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Запустите макрос нажатием F5.

Плюсы: работает быстро даже с миллионами строк, можно адаптировать под любые условия.

Минусы: требует знаний VBA, макросы могут быть отключены в настройках безопасности.

FAQ: Ответы на частые вопросы

Можно ли посчитать уникальные значения по нескольким условиям?

Да. Например, в Excel 365 используйте:

=СЧЁТ(УНИК(ФИЛЬТР(A2:A100;(B2:B100="Электроника")*(C2:C100="Москва"))))

Для старых версий комбинируйте СУММПРОИЗВ с несколькими условиями:

=СУММПРОИЗВ(--(ЧАСТОТА(ЕСЛИ((B2:B100="Электроника")*(C2:C100="Москва");СТРОКА(A2:A100)-МИН(СТРОКА(A2:A100))+1);СТРОКА(A2:A100)-МИН(СТРОКА(A2:A100))+1)>0))
Почему функция УНИК возвращает ошибку #ИМЯ?

Ошибка #ИМЯ! означает, что ваша версия Excel не поддерживает динамические массивы. Используйте альтернативные методы из этой статьи или обновите Excel до Microsoft 365.

Как посчитать уникальные значения, игнорируя регистр?

Преобразуйте все значения к одному регистру с помощью ПРОПИСН или СТРОЧН:

=СЧЁТ(УНИК(ФИЛЬТР(ПРОПИСН(A2:A100);B2:B100="Электроника")))

В старых версиях используйте вспомогательный столбец с =ПРОПИСН(A2) и считайте уникальные значения по нему.

Можно ли сделать это в Google Таблицах?

Да, в Google Таблицах работают те же принципы. Используйте:

=COUNTA(UNIQUE(FILTER(A2:A100;B2:B100="Электроника")))

Для формул массивов нажмите Ctrl+Shift+EnterGoogle Таблицах это не обязательно).

Как обновить данные в Power Query после изменений?

Щёлкните правой кнопкой по таблице с результатом и выберите Обновить (Refresh). Чтобы обновление происходило автоматически при открытии файла, настройте параметры в Данные → Обновить все → Свойства соединения.