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

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

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

В этой статье мы разберём 5 проверенных методов подсчёта уникальных значений — от базовых функций до продвинутых инструментов вроде Power Query. Вы узнаете, какой способ выбрать в зависимости от версии Excel (2010, 2016, 2019, 365) и структуры ваших данных. А ещё научитесь избегать типичных ошибок, из-за которых формулы возвращают неверные результаты.

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

Способ 1: Функция СЧЁТЕСЛИ для простых случаев

Если вам нужно быстро посчитать уникальные значения в небольшом диапазоне, начнём с самой простой функции — СЧЁТЕСЛИ. Она не идеальна для этой задачи, но подходит для базового анализа.

Формула выглядит так:

=СУММ(--(ЧАСТОТА(диапазон; диапазон)>0))

Где диапазон — это столбец с вашими данными (например, A2:A100). Функция ЧАСТОТА создаёт массив с количеством повторений каждого значения, а СУММ(--(ЧАСТОТА(...)>0)) считает, сколько из них встречаются хотя бы раз.

  • ✅ Подходит для Excel 2010 и новее
  • ✅ Не требует дополнительных столбцов
  • ❌ Не учитывает регистр (например, "Товар" и "товар" будут считаться одинаковыми)
  • ❌ Может тормозить на больших массивах (10 000+ строк)

Пример: если в ячейках A2:A6 записаны значения Яблоко, Банан, Яблоко, Груша, Банан, формула вернёт 3 — количество уникальных фруктов.

Способ 2: Комбинация УНИК и СЧЁТЗ (Excel 365 и 2021)

В новых версиях Excel появилась революционная функция УНИК (UNIQUE), которая упрощает работу с уникальными значениями. В паре со СЧЁТЗ она позволяет решить задачу в одну строку:

=СЧЁТЗ(УНИК(A2:A100))

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

  1. УНИК(A2:A100) возвращает массив всех уникальных значений из диапазона.
  2. СЧЁТЗ считает количество непустых ячеек в этом массиве.
Версия Excel Поддержка УНИК Альтернатива
Excel 365 ✅ Да Нет нужды
Excel 2021 ✅ Да Нет нужды
Excel 2019 ❌ Нет Используйте ЧАСТОТА или Power Query
Excel 2016 ❌ Нет Сводная таблица или VBA

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

📊 Какую версию Excel вы используете?
Excel 365
Excel 2021
Excel 2019
Excel 2016
Другую

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

Сводные таблицы — это «швейцарский нож» для анализа данных. Они позволяют посчитать уникальные значения даже в очень больших массивах (миллионы строк) и визуализировать результаты.

Инструкция по шагам:

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

Сводная таблица даёт дополнительные плюсы:

  • 📊 Можно группировать данные по категориям (например, посчитать уникальные товары в каждом регионе).
  • 🔄 Легко обновлять одним кликом по кнопке Обновить.
  • 📌 Можно добавить фильтры (например, учитывать только записи за последний месяц).
Как посчитать уникальные значения с условием?

Если нужно посчитать уникальные значения только для строк, отвечающих определённому критерию (например, только для категории "Электроника"), добавьте столбец в область Фильтры сводной таблицы и выберите нужное значение.

Минус метода — сводная таблица занимает место на листе и требует ручного обновления при изменении данных. Но для разовых отчётов это один из самых надёжных способов.

Способ 4: Power Query для больших данных

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

Алгоритм действий:

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

    • 🔄 Автоматическое обновление при изменении исходных данных (достаточно кликнуть Обновить все).
    • 🧹 Возможность очистки данных «на лету» (удаление дубликатов, замена значений, фильтрация).
    • 📂 Поддержка внешних источников (базы данных, CSV, JSON).

    Удалите пустые строки в начале/конце диапазона

    Проверить формат данных (текст/числа/даты)

    Убедитесь, что заголовок столбца уникален

    Сохраните исходную таблицу как "умную таблицу" (Ctrl+T)-->

    Единственный нюанс: для новичков интерфейс Power Query может показаться сложным. Но после первых 2–3 использований вы оцените его мощь.

    Способ 5: VBA для автоматизации (продвинутый уровень)

    Если вам нужно посчитать уникальные значения регулярно и в больших объёмах, стоит освоить VBA (Visual Basic for Applications). Этот метод подходит для создания пользовательских функций или макросов.

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

    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

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

    1. Нажмите Alt+F11, чтобы открыть редактор VBA.
    2. Вставьте код в новый модуль (InsertModule).
    3. Вернитесь в Excel и введите в ячейке формулу =CountUnique(A2:A100).

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

    • ⚡ Мгновенная обработка даже очень больших диапазонов.
    • 🔧 Гибкость: можно доработать код под специфические задачи (например, игнорировать пробелы или учитывать только числа).
    • 📥 Возможность интеграции с другими процессами (например, автоматически отправлять результаты по email).

    Минус метода — требует базовых знаний VBA и может быть заблокирован политиками безопасности в корпоративных сетях.

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

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

    ⚠️ Внимание: Если ваша формула возвращает #ЗНАЧ!, проверьте, нет ли в диапазоне ячеек с ошибками (например, #ДЕЛ/0!). Функции ЧАСТОТА и УНИК не умеют их игнорировать.

    Чек-лист для диагностики проблем:

    • 🔍 Пустые ячейки: Большинство методов (кроме УНИК) считают пустые ячейки как отдельные уникальные значения. Используйте СЖПРОБЕЛЫ для очистки данных.
    • 🔤 Регистр: По умолчанию "Текст" и "текст" считаются одинаковыми. Для учёта регистра используйте VBA или УНИК(диапазон; ;ИСТИНА) в Excel 365.
    • 📏 Диапазон: Убедитесь, что в формуле указан правильный диапазон. Ошибка в одной букве (например, B2:B100 вместо A2:A100) приведёт к неверному результату.
    • 🔢 Формат ячеек: Числа, хранящиеся как текст (например, '123 вместо 123), могут считаться отдельными значениями. Используйте ЗНАЧЕН для преобразования.
    Симптом Возможная причина Решение
    Формула возвращает 0 Диапазон пуст или содержит только ошибки Проверьте данные на наличие значений
    Результат больше ожидаемого Учитываются пустые ячейки или пробелы Используйте СЖПРОБЕЛЫ или фильтр
    Ошибка #ИМЯ? Опечатка в названии функции Проверьте синтаксис (например, УНИК вместо UNIQUE)
    Долгий расчёт Слишком большой диапазон или сложная формула Сузьте диапазон или используйте Power Query
    ⚠️ Внимание: Если вы используете ЧАСТОТА в формуле массива, не редактируйте отдельные ячейки с результатом — это нарушит работу формулы. Всегда изменяйте всю формулу целиком.

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

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

    Да, но стандартные функции (например, СЧЁТЕСЛИ или УНИК) не учитывают фильтрацию. Решения:

    • Используйте Power Query с предварительной фильтрацией данных.
    • В Excel 365 применяйте ФИЛЬТР перед УНИК:
      =СЧЁТЗ(УНИК(ФИЛЬТР(A2:A100; B2:B100="Да")))
    • Для старых версий Excel напишите VBA-функцию с учётом видимых ячеек.
    Как посчитать уникальные значения в нескольких столбцах одновременно?

    Если нужно найти уникальные комбинации значений из нескольких столбцов (например, уникальные пары "Товар + Регион"), используйте:

    • В Excel 365:
      =СЧЁТЗ(УНИК(A2:A100 & "|" & B2:B100))

      (символ | нужен как разделитель).

    • В старых версиях:
      1. Добавьте вспомогательный столбец с формулой =A2 & "|" & B2.
      2. Примените к нему ЧАСТОТА или сводную таблицу.
    • В Power Query: объедините столбцы перед группировкой (Добавить столбецНастраиваемый столбец).
    Почему функция УНИК возвращает ошибку #ЗНАЧ! в моём Excel?

    Ошибка #ЗНАЧ! в функции УНИК обычно возникает по трём причинам:

    1. У вас Excel 2019 или старше: УНИК появилась только в Excel 365 и 2021. Проверьте версию в ФайлУчётная запись.
    2. Диапазон содержит ошибки: Удалите или исправьте ячейки с ошибками типа #ДЕЛ/0! или #Н/Д.
    3. Неправильный синтаксис: Убедитесь, что формула введена как =УНИК(A2:A100), а не =UNIQUE(A2:A100) (если у вас русская версия Excel).

    Если проблема не исчезает, попробуйте перезапустить Excel или обновить Office до последней версии.

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

    В Excel 2016 нет встроенных функций для учёта регистра, но есть обходные пути:

    1. VBA-решение (рекомендуется):
      Function CountUniqueCaseSensitive(rng As Range) As Long
      

      Dim dict As Object, cell As Range

      Set dict = CreateObject("Scripting.Dictionary")

      For Each cell In rng

      If Not IsEmpty(cell) Then

      dict(cell.Value) = 1

      End If

      Next cell

      CountUniqueCaseSensitive = dict.Count

      End Function

      Используйте как =CountUniqueCaseSensitive(A2:A100).

    2. Вспомогательный столбец:
      1. Добавьте столбец с формулой =КОДСИМВ(A2;1) & КОДСИМВ(A2;2) & ... (преобразует текст в коды символов).
      2. Примените ЧАСТОТА к этому столбцу.

      Минус: громоздко и неудобно для длинных текстов.

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

    Да, в Google Таблицах для этого есть функция UNIQUE, аналогичная УНИК в Excel. Примеры:

    • Простой подсчёт:
      =COUNTA(UNIQUE(A2:A100))
    • С учётом регистра:
      =COUNTA(UNIQUE(ARRAYFORMULA(CODE(A2:A100))))

      (преобразует каждый символ в его код).

    • С условием:
      =COUNTA(UNIQUE(FILTER(A2:A100; B2:B100="Да")))

    Google Таблицы также поддерживают Power Query-подобный инструмент под названием Query, но его синтаксис отличается от Excel.