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

Почему стандартный подсчёт не работает и что делать

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

Дело в том, что Excel не имеет встроенной функции "ПОСЧИТАТЬ_УНИКАЛЬНЫЕ" — её приходится собирать из нескольких инструментов. В зависимости от версии программы (2010, 2016, 365) и структуры данных (числа, текст, даты) подходы будут разными. В этой статье мы разберём 5 надёжных методов, включая формулы массива, сводные таблицы и Power Query, а также покажем, как избежать типичных ошибок при работе с большими массивами данных.

Особое внимание уделим нюансам:

  • 🔹 Чувствительность к регистру — почему "Иван" и "иван" могут считаться разными значениями
  • 🔹 Пустые ячейки — как их исключить или, наоборот, учесть
  • 🔹 Динамические диапазоны — что делать, если данные постоянно обновляются

📊 Какую версию Excel вы используете?
Excel 2010 или старше
Excel 2013-2016
Excel 2019
Excel 365 (онлайн/десктоп)
Не знаю версию

Метод 1: Формула массива для старых версий Excel (2010–2016)

Если вы работаете в Excel 2010–2016 и не можете использовать современные функции вроде UNIQUE, этот способ станет вашим спасением. Здесь мы используем комбинацию СЧЁТЕСЛИ, СТРОКА и ИНДЕКС в формуле массива.

Введите эту формулу в ячейку и подтвердите её сочетанием Ctrl+Shift+Enter (в старых версиях это обязательно!):

=СУММ(--(ЧАСТОТА(ЕСЛИ($A$2:$A$100<>"";СТРОКА($A$2:$A$100)-СТРОКА($A$2)+1);ЕСЛИ($A$2:$A$100<>"";СТРОКА($A$2:$A$100)-СТРОКА($A$2)+1))>0))

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

  • 📌 ЕСЛИ($A$2:$A$100<>"";...) — игнорирует пустые ячейки
  • 📌 ЧАСТОТА — сравнивает каждое значение с остальными и возвращает массив, где "1" означает уникальность
  • 📌 СУММ(--(...>0)) — преобразует логические значения в числа и суммирует уникальные

⚠️ Внимание: Если в вашем диапазоне есть ошибки (например, #Н/Д), формула вернёт некорректный результат. Предварительно очистите данные функцией ЕОШИБКА.

Удалить пустые строки в диапазоне|Проверить на наличие ошибок (#Н/Д, #ЗНАЧ!)|Зафиксировать диапазон абсолютными ссылками ($A$2:$A$100)|Убедиться, что нет скрытых символов (пробелов, переносов)

-->

Метод 2: Функция UNIQUE + COUNTA в Excel 365 и 2019

С выходом Excel 365 и Excel 2019 появились долгожданные динамические массивы, включая функцию UNIQUE. Теперь подсчёт уникальных значений занимает одну строку:

=СЧЁТ(UNIQUE(фильтр_диапазона))

Пример для диапазона A2:A100:

=СЧЁТ(UNIQUE(A2:A100))

Преимущества этого метода:

  • Автоматическое обновление — результат меняется при добавлении новых данных
  • 🎯 Чувствительность к регистру — "Товар" и "товар" будут считаться разными
  • 🔄 Работа с динамическими диапазонами — можно использовать A2:A для всего столбца

Формула Результат Особенности
=СЧЁТ(UNIQUE(A2:A10)) 5 Считает уникальные значения в диапазоне A2:A10
=СЧЁТ(UNIQUE(ФИЛЬТР(A2:A10;A2:A10<>""))) 4 Игнорирует пустые ячейки
=СЧЁТ(UNIQUE(ПРОПНАЧ(A2:A10))) 3 Приводит текст к верхнему регистру (игнорирует регистр)
⚠️ Внимание: Функция UNIQUE не работает в Excel 2016 и более ранних версиях. Если вы видите ошибку #ИМЯ?, используйте метод 1 или 3.

Метод 3: Сводная таблица — универсальный способ для любых версий

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

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

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

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

  • 📊 Визуализация данных — можно сразу увидеть распределение значений
  • 🔧 Гибкость — легко добавить фильтры или группировку
  • 📱 Работает в мобильной версии Excel (с ограничениями)

Как обновить сводную таблицу при изменении данных?

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

Метод 4: Power Query — для больших данных и автоматизации

Если вам нужно обработать десятки тысяч строк или регулярно обновлять отчёты, Power Query (доступен в Excel 2016+) станет идеальным решением. Этот инструмент позволяет:

  • 🔄 Импортировать данные из разных источников (SQL, CSV, веб)
  • 🧹 Очищать и трансформировать данные без формул
  • 📈 Автоматически обновлять результаты

Инструкция по подсчёту уникальных значений:

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

    • 📌 Объединить данные из нескольких файлов
    • 📌 Очистить текст (убрать пробелы, привести к единому регистру)
    • 📌 Создать динамический отчёт, который обновляется по расписанию

    Метод 5: Формула с ПРОМЕЖУТОЧНЫМИ_ИТОГАМИ для категорий

    Если вам нужно посчитать уникальные значения внутри групп (например, уникальные товары по категориям), используйте функцию ПРОМЕЖУТОЧНЫЕ.ИТОГИ с кодом 3 (подсчёт уникальных).

    Пример: подсчёт уникальных наименований товаров (B2:B100) в каждой категории (A2:A100):

    =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3;ЕСЛИ($A$2:$A$100=A2;$B$2:$B$100))

    Эту формулу нужно ввести как формулу массива (Ctrl+Shift+Enter в старых версиях). Она вернёт количество уникальных значений в столбце B для каждой категории из столбца A.

    Ограничения метода:

    • ❌ Не работает с текстом, содержащим более 255 символов
    • ❌ Игнорирует пустые ячейки (их нужно предварительно обработать)
    • ❌ В Excel 365 может конфликтовать с динамическими массивами

    Типичные ошибки и как их избежать

    Даже опытные пользователи Excel сталкиваются с проблемами при подсчёте уникальных значений. Вот самые распространённые ошибки и их решения:

    Ошибка Причина Решение
    Формула возвращает #ЗНАЧ! В диапазоне есть текст и числа одновременно Используйте ЕТЕКСТ или ЕЧИСЛО для фильтрации
    Результат на 1 больше ожидаемого Формула учитывает заголовок столбца Исключите первую строку из диапазона (A2:A100 вместо A1:A100)
    Повторяющиеся значения считаются уникальными В данных есть скрытые символы (пробелы, неразрывные пробелы) Очистите данные с помощью СЖПРОБЕЛЫ или ПЕЧСИМВ

    Ещё несколько лайфхаков:

    • 🔍 Чтобы найти дубликаты перед подсчётом, используйте Условное форматирование → Правила выделения ячеек → Повторяющиеся значения.
    • 📉 Если данные часто обновляются, создайте Именованный диапазон (вкладка Формулы) — так не придётся править формулы при добавлении строк.
    • 🔄 Для проверки чувствительности к регистру используйте =СРАВНИТЬ("Текст";"текст";0) — если результат 0, регистр игнорируется.

    ⚠️ Внимание: Если вы работаете с датами, убедитесь, что ячейки имеют формат Дата, а не Текст. Иначе "01.01.2023" и "1 января 2023" будут считаться разными значениями.

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

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

    Да, но стандартные формулы (например, UNIQUE) не учитывают фильтрацию. Используйте одну из этих альтернатив:

    • 📌 ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3;диапазон) — автоматически учитывает фильтры.
    • 📌 АГРЕГАТ(3;5;диапазон) — параметр 5 игнорирует скрытые строки.
    • 📌 Сводная таблица — она динамически обновляется при фильтрации.

    Пример для фильтрованного столбца A:

    =АГРЕГАТ(3;5;1/(ЧАСТОТА(ЕСЛИ($A$2:$A$100<>"";СТРОКА($A$2:$A$100)-1);ЕСЛИ($A$2:$A$100<>"";СТРОКА($A$2:$A$100)-1))>0))
    Как посчитать уникальные значения по нескольким столбцам одновременно?

    Если нужно найти уникальные комбинации значений (например, "ФИО + Дата"), используйте:

    1. В Excel 365:
      =СЧЁТ(UNIQUE(A2:A100&B2:B100))

      (объединяем столбцы A и B с помощью &)

    2. В старых версиях:
      =СУММ(--(ЧАСТОТА(ЕСЛИ($A$2:$A$100&$B$2:$B$100<>"";СТРОКА($A$2:$A$100)-1);ЕСЛИ($A$2:$A$100&$B$2:$B$100<>"";СТРОКА($A$2:$A$100)-1))>0))

      (вводится как формула массива)

    Для Power Query добавьте пользовательский столбец с объединёнными данными перед группировкой.

    Почему функция UNIQUE не работает в моём Excel?

    Вероятные причины:

    • 🔹 У вас Excel 2016 или более старая версия — UNIQUE появилась только в Excel 365 и 2019.
    • 🔹 Вы используете Excel для Mac — некоторые функции динамических массивов там работают с задержкой.
    • 🔹 В настройках отключены "Динамические массивы" (проверьте Файл → Параметры → Формулы).
    • 🔹 Формула введена неверно — попробуйте =UNIQUE(A2:A10) в пустой ячейке.

    Альтернатива: используйте Power Query или сводные таблицы.

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

    По умолчанию UNIQUE и большинство формул чувствительны к регистру. Если нужно, наоборот, игнорировать регистр:

    • В Excel 365:
      =СЧЁТ(UNIQUE(ПРОПНАЧ(A2:A10)))

      (преобразует всё к верхнему регистру)

    • В старых версиях:
      =СУММ(--(ЧАСТОТА(ЕСЛИ($A$2:$A$100<>"";ПРОПНАЧ($A$2:$A$100)&СТРОКА($A$2:$A$100)-1);ЕСЛИ($A$2:$A$100<>"";ПРОПНАЧ($A$2:$A$100)&СТРОКА($A$2:$A$100)-1))>0))
    Можно ли автоматически обновлять количество уникальных значений при добавлении новых данных?

    Да, для этого подойдут:

    • 🔄 Сводные таблицы — обновляются по кнопке Обновить или при открытии файла.
    • 🔄 Power Query — настройте автоматическое обновление в Параметры запроса.
    • 🔄 Таблицы Excel — преобразуйте диапазон в таблицу (Ctrl+T), а затем используйте формулы сstructured references (например, =СЧЁТ(UNIQUE(Таблица1[Столбец1]))).

    Для формул массива (метод 1) придётся вручную расширять диапазон или использовать Именованный диапазон с функцией СМЕЩ.