Как посчитать количество уникальных значений в Excel: 4 проверенных метода

В Excel нет встроенной функции COUNTUNIQUE, как в Google Таблицах, но количество уникальных значений в диапазоне можно вычислить минимум четырьмя способами — от простых формул до продвинутых инструментов вроде Power Query. Если вы получаете ошибку #ЗНАЧ! при попытке применить СЧЁТЕСЛИМН к текстовому столбцу или сводная таблица игнорирует пустые ячейки, проблема кроется в синтаксисе или настройках диапазона. Например, формула =СЧЁТЕСЛИ($A$1:$A$100; ">"&0) вернёт количество только ненулевых значений, а не уникальных.

Разберёмся, как корректно подсчитать уникальные записи в версиях Excel 2010–2023 (включая Microsoft 365), учитывая текстовые данные, числа, даты и комбинации критериев. Особое внимание уделим распространённой ошибке, когда пользователи путают "уникальные значения" (каждое встречается 1 раз) и "уникальные комбинации" (например, пары "ФИО + дата"). Для последнего потребуются массивы или Power Pivot.

1. Формулы для подсчёта уникальных значений

Самый универсальный метод — использование формул массива или комбинаций СЧЁТЕСЛИ/СУММПРОИЗВ. Они работают во всех версиях Excel, но требуют точного указания диапазона и типа данных.

Для числовых данных подойдёт формула:

=СУММ(--(ЧАСТОТА(A2:A100; A2:A100)>0))

Её нужно вводить как формулу массива (в старых версиях — нажать Ctrl+Shift+Enter). Для текстовых значений замените ЧАСТОТА на:

=СУММ(1/СЧЁТЕСЛИ(A2:A100; A2:A100))
  • 🔹 Плюсы: не требует дополнительных инструментов, работает в Excel 2007+.
  • ⚠️ Минусы: чувствительна к регистру (например, "Иванов" и "иванов" будут считаться разными значениями).
  • 📌 Нюанс: если в диапазоне есть пустые ячейки, добавьте условие ЕСЛИ(A2:A100<>""; ...).

В Excel 365 и Excel 2021 появилась функция УНИК (UNIQUE), которая упрощает задачу:

=СТРОКА(УНИК(A2:A100))

Она автоматически игнорирует дубликаты и возвращает массив уникальных значений, количество которых можно посчитать через СЧЁТ.

2. Уникальные значения через условное форматирование

Визуально выделить дубликаты можно с помощью условного форматирования, но для подсчёта этот метод придётся комбинировать с фильтрацией. Выделите диапазон (например, A2:A100), затем:

  1. Перейдите на вкладку ГлавнаяУсловное форматированиеПравила выделения ячеекПовторяющиеся значения.
  2. В выпадающем списке выберите Уникальные и задайте цвет заливки.
  3. Отфильтруйте столбец по цвету (меню ДанныеФильтр).
  4. Количество видимых ячеек после фильтрации и будет числом уникальных значений.

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

📊 Какой метод подсчёта уникальных значений вы используете чаще?
Формулы
Условное форматирование + фильтр
Сводные таблицы
Power Query

3. Сводные таблицы: быстрый подсчёт без формул

Сводные таблицы — один из самых надёжных способов, особенно для больших массивов данных (10 000+ строк). Алгоритм:

  1. Выделите исходный диапазон (включая заголовок столбца).
  2. На вкладке Вставка выберите Сводная таблица.
  3. В окне создания сводной таблицы укажите, куда поместить результат (на новый лист или в текущий).
  4. В области Строки перетащите поле с данными, для которых нужно посчитать уникальные значения.
  5. В область Значения перетащите то же поле, но выберите агрегацию Количество (не сумма!).

По умолчанию сводная таблица покажет количество всех записей, включая дубликаты. Чтобы получить уникальные:

  • 🔹 Кликните правой кнопкой по ячейке в области Значения.
  • 🔹 Выберите Параметры полей значенийДополнительные параметры.
  • 🔹 Поставьте галочку Показывать значения как% от строки (это временный шаг).
  • 🔹 Вернитесь обратно и выберите Количество уникальных значений.

Этот метод работает даже с текстовыми данными и игнорирует пустые ячейки. Однако в Excel 2010–2013 опция "Количество уникальных значений" может отсутствовать — в таком случае используйте формулы.

Почему сводная таблица показывает неверное количество уникальных значений?

Если в исходных данных есть скрытые символы (пробелы, перenosы строк), Excel воспринимает их как уникальные значения. Очистите данные функцией СЖПРОБЕЛЫ или инструментом Текст по столбцам (вкладка Данные).

4. Power Query: обработка миллионов строк

Для диапазонов свыше 100 000 строк или сложных критериев (например, уникальные комбинации из нескольких столбцов) оптимален Power Query (доступен в Excel 2016+ и Microsoft 365). Инструкция:

  1. Выделите исходные данные и на вкладке Данные выберите Из таблицы/диапазонаExcel 2016Получить данные).
  2. В открывшемся редакторе Power Query выделите столбец, по которому нужно посчитать уникальные значения.
  3. На вкладке Главная нажмите Группировка.
  4. В окне группировки укажите:
    • 🔹 Новое имя столбца: "Уникальные значения"
    • 🔹 Операция: Количество всех строк
  • Нажмите Закрыть и загрузить — результат появится на новом листе.
  • Преимущество Power Query — возможность обрабатывать данные из нескольких источников (например, объединить таблицы перед подсчётом). Кроме того, здесь легко удалить дубликаты: выделите столбец → ГлавнаяУдалить строкиУдалить дубликаты.

    Метод Макс. объём данных Поддерживает текст Учитывает регистр Автообновление
    Формулы массива ~1 000 000 строк Да Да Да
    Условное форматирование ~10 000 строк Да Да Нет
    Сводные таблицы ~1 000 000 строк Да Нет Да
    Power Query Миллионы строк Да Да Да

    5. Ошибки и решения при подсчёте уникальных значений

    Чаще всего пользователи сталкиваются с тремя проблемами:

    ⚠️ Внимание: Если формула =СУММ(1/СЧЁТЕСЛИ(A2:A100; A2:A100)) возвращает ошибку #ДЕЛ/0!, в диапазоне есть пустые ячейки. Исправьте её на:
    =СУММ(ЕСЛИ(A2:A100<>""; 1/СЧЁТЕСЛИ(A2:A100; A2:A100); 0))
    • 🔴 Проблема: Сводная таблица показывает неверное количество уникальных значений.
      Решение: Проверьте, не включена ли опция "Игнорировать пустые ячейки" в параметрах поля. Отключите её, если пустые ячейки должны учитываться как уникальные.
    • 🔴 Проблема: Формула УНИК не работает в Excel 2019.
      Решение: Функция УНИК доступна только в Microsoft 365 и Excel 2021. Для старых версий используйте ЧАСТОТА или Power Query.
    • 🔴 Проблема: Power Query не видит изменения в исходных данных.
      Решение: Кликните правой кнопкой по таблице результатов и выберите Обновить.

    Ещё одна распространённая ошибка — неверное определение диапазона. Например, если в формуле указано A2:A100, но реальные данные заканчиваются на A50, Excel будет учитывать пустые ячейки как нулевые значения. Чтобы избежать этого, используйте динамические диапазоны:

    =СУММ(1/СЧЁТЕСЛИ(A2:INDEX(A:A; СЧЁТЗ(A:A)); A2:INDEX(A:A; СЧЁТЗ(A:A))))

    6. Подсчёт уникальных комбинаций из нескольких столбцов

    Если нужно посчитать уникальные пары (например, "ФИО + дата рождения" или "Товар + регион"), используйте конкатенацию или Power Pivot.

    Для формульного метода:

    =СУММ(1/СЧЁТЕСЛИМН(
    

    $A$2:$A$100 & "|" & $B$2:$B$100;

    $A$2:$A$100 & "|" & $B$2:$B$100

    ))

    Здесь символ | — разделитель, чтобы избежать ложных совпадений (например, если в столбце A есть "Иванов", а в B — "овИван").

    В Power Pivot (доступен в Excel 2013+):

    1. Импортируйте данные в модель Power Pivot (вкладка Power PivotДобавить в модель данных).
    2. Создайте вычисляемый столбец с формулой конкатенации (например, =[Столбец1] & "|" & [Столбец2]).
    3. Используйте меру DISTINCTCOUNT для подсчёта уникальных значений в новом столбце.
    ⚠️ Внимание: При конкатенации текстовых и числовых данных преобразуйте числа в текст с помощью ТЕКСТ, иначе Excel может округлить значения (например, 1.23 станет 1,2).

    Удалите лишние пробелы (СЖПРОБЕЛЫ)|Преобразуйте числа в текст (ТЕКСТ)|Проверьте регистр (при необходимости используйте ПРОПИСН/СТРОЧН)|Убедитесь, что нет скрытых символов (включите отображение непечатаемых знаков)

    -->

    7. Автоматизация: VBA-макрос для подсчёта уникальных значений

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

    1. Нажмите Alt+F11, чтобы открыть редактор VBA.
    2. Вставьте новый модуль (InsertModule).
    3. Скопируйте код:
      Function CountUnique(rng As Range) As Long
      

      Dim dict As Object

      Set dict = CreateObject("Scripting.Dictionary")

      Dim cell As Range

      For Each cell In rng

      If Not IsEmpty(cell) Then

      dict(cell.Value) = 1

      End If

      Next cell

      CountUnique = dict.Count

      End Function

    4. Закройте редактор и используйте функцию в Excel как =CountUnique(A2:A100).

    Этот макрос использует объект Dictionary для хранения уникальных значений, что значительно быстрее формул массива. Обратите внимание:

    • 🔹 Функция игнорирует пустые ячейки.
    • 🔹 Чувствительна к регистру (если нужно игнорировать регистр, добавьте dict(LCase(cell.Value)) = 1).
    • 🔹 Для работы требуется включить Ссылки на объекты в настройках безопасности макросов.

    FAQ: Частые вопросы

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

    Все методы, кроме сводных таблиц, чувствительны к регистру. Для формул используйте точный диапазон. В Power Query регистр учитывается по умолчанию. Если нужно игнорировать регистр, преобразуйте данные в нижний регистр функцией НИЖНРЕГ перед подсчётом.

    Почему формула возвращает ошибку #ЗНАЧ!?

    Ошибка возникает, если в диапазоне есть ячейки с ошибками (например, #Н/Д). Добавьте проверку:
    =СУММ(ЕСЛИОШИБКА(1/СЧЁТЕСЛИ(A2:A100; A2:A100); 0))

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

    Да, но только с помощью функции ПРОМЕЖУТОЧНЫЕ.ИТОГИ или Power Query. Например:
    =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3; A2:A100) вернёт количество видимых ячеек, но не уникальных. Для уникальных значений в фильтрованном списке используйте VBA или Power Query.

    Как посчитать уникальные значения в Google Таблицах?

    В Google Таблицах есть встроенная функция =COUNTUNIQUE(A2:A100). Она автоматически игнорирует пустые ячейки и учитывает регистр. Для уникальных комбинаций используйте =COUNTUNIQUE(A2:A100 & "|" & B2:B100).

    Почему сводная таблица не показывает опцию "Количество уникальных значений"?

    Эта опция отсутствует в Excel 2010–2013. Обновите Excel или используйте альтернативные методы (формулы, Power Query). В Excel 2016+ убедитесь, что поле добавлено в область Значения с агрегацией Количество.