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

Работа с данными в Microsoft Excel часто требует анализа уникальных записей: будь то список клиентов, номера заказов или категории товаров. Подсчёт количества ячеек с разными значениями — одна из самых востребованных операций, но многие пользователи сталкиваются с трудностями при её выполнении. В отличие от стандартного подсчёта через СЧЁТ или СЧЁТЗ, здесь нужны специальные формулы или комбинации функций.

На первый взгляд задача кажется простой: достаточно удалить дубликаты и посчитать оставшиеся строки. Однако этот метод разрушает исходные данные и не подходит для динамических таблиц. К счастью, в Excel есть несколько способов решить проблему без изменения структуры таблицы — от базовых функций до массивов и Power Query. В этой статье мы разберём все актуальные методы, их плюсы и минусы, а также типичные ошибки, которые портят результаты.

Особое внимание уделим динамическим диапазонам и работе с текстовыми/числовыми данными — это ключевые моменты, где многие ошибаются. Например, функция ЕСЛИОШИБКА может спасти расчёты, если в таблице есть пустые ячейки или ошибки #Н/Д. А для больших массивов данных (10 000+ строк) пригодятся оптимизированные формулы, которые не тормозят файл.

📊 Какой версии Excel вы пользуетесь?
Excel 2019/2021
Excel 365 (онлайн/десктоп)
Excel 2016 или старше
LibreOffice Calc

1. Базовый метод: функция СЧЁТЕСЛИМН для уникальных значений

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

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

=СУММ(1/СЧЁТЕСЛИМН(диапазон; диапазон))

Где диапазон — это адрес ячеек, в которых вы ищете уникальные значения (например, A2:A100). Важно: это формула массива, поэтому в старых версиях Excel (до 2019 года) её нужно вводить через Ctrl+Shift+Enter.

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

  1. СЧЁТЕСЛИМН подсчитывает, сколько раз каждое значение встречается в диапазоне.
  2. Мы делим 1 на результат подсчёта для каждой записи, получая массив дробей (например, {1/3; 1/2; 1/1; ...}).
  3. СУММ складывает все эти дроби, что в итоге даёт количество уникальных значений.

Пример: если в столбце A2:A6 записаны значения {10; 20; 10; 30; 20}, формула вернёт 3 (уникальные числа: 10, 20, 30).

Почему формула возвращает ошибку #ДЕЛ/0!?

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

=СУММ(ЕСЛИ(диапазон<>""; 1/СЧЁТЕСЛИМН(диапазон; диапазон)))

В Excel 365 можно упростить до:

=СУММ(1/СЧЁТЕСЛИМН(ФИЛЬТР(диапазон; диапазон<>""); ФИЛЬТР(диапазон; диапазон<>"")))

2. Функция УНИК в Excel 365: революционный подход

Пользователи Microsoft 365 или Excel 2021 получили мощный инструмент — функцию УНИК (UNIQUE). Она автоматически извлекает все уникальные значения из диапазона, после чего их можно просто посчитать через СЧЁТ или СТРОКА.

Синтаксис:

=УНИК(диапазон; [по_столбцам]; [точное_совпадение])

Где:

  • 📌 диапазон — ячейки для анализа (например, A2:A100).
  • 🔄 [по_столбцам] — если ИСТИНА, сравнение идёт по столбцам (по умолчанию ЛОЖЬ — по строкам).
  • 🔍 [точное_совпадение] — если ИСТИНА, учитывается регистр (по умолчанию ЛОЖЬ).

Чтобы посчитать количество уникальных значений, обернём УНИК в СТРОКА:

=СТРОКА(УНИК(A2:A100))
Эта формула вернёт массив уникальных значений, а СТРОКА подсчитает их количество. В Excel 365 результат отобразится автоматически как одно число.

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

  • Мгновенный расчёт даже для больших массивов (100 000+ строк).
  • 🔄 Работает с динамическими диапазонами (например, Таблица1[Столбец1]).
  • 📊 Можно комбинировать с СОРТИРОВКА или ФИЛЬТР для сложной обработки.

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

Часто требуется посчитать уникальные записи с учётом дополнительных критериев. Например, количество уникальных клиентов из определённого города или уникальных товаров в категории "Электроника". Для этого комбинируем СЧЁТЕСЛИМН с ЕСЛИ.

Формула для подсчёта уникальных значений в диапазоне A2:A100, соответствующих условию в диапазоне B2:B100 (например, B2:B100="Москва"):

=СУММ(--(ЧАСТОТА(ЕСЛИ(B2:B100="Москва"; СМЕЩ(A2;;;СЧЁТЕСЛИ(B2:B100; "Москва"))); ЕСЛИ(B2:B100="Москва"; СМЕЩ(A2;;;СЧЁТЕСЛИ(B2:B100; "Москва"))))>0))
Разберём по шагам:
  1. ЕСЛИ(B2:B100="Москва"; ...) — фильтрует только те ячейки из A2:A100, где в B стоит "Москва".
  2. ЧАСТОТА подсчитывает, сколько раз каждое значение встречается в отфильтрованном массиве.
  3. --(ЧАСТОТА(...)>0) преобразует результат в массив 1 и 0, где 1 — уникальные значения.
  4. СУММ складывает все 1, давая итоговое количество.

Для Excel 365 формулу можно упростить с помощью ФИЛЬТР:

=СЧЁТ(УНИК(ФИЛЬТР(A2:A100; B2:B100="Москва")))

Исключены пустые ячейки в диапазоне|Учтён регистр (если важен)|Проверены все условия фильтрации|Формула введена как массив (Ctrl+Shift+Enter для старых версий)

-->

4. Использование Power Query для сложных задач

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

  • 🧹 Удалить дубликаты за 2 клика.
  • 🔄 Объединить данные из нескольких источников.
  • 📊 Создать динамические таблицы, которые обновляются автоматически.

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

  1. Выделите диапазон с данными и нажмите Данные → Получить данные → Из таблицы/диапазона.
  2. В открывшемся редакторе Power Query выберите столбец, по которому ищете уникальные значения.
  3. Нажмите Главная → Удалить строки → Удалить дубликаты.
  4. Вернитесь в Excel через Главная → Закрыть и загрузить. Уникальные значения загрузятся на новый лист.
  5. Используйте СЧЁТ или СТРОКА, чтобы посчитать количество строк в результате.

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

  • 🔄 Не разрушает исходные данные — все преобразования сохраняются в отдельном запросе.
  • 📈 Поддерживает миллионы строк (в отличие от формул, которые тормозят на больших массивах).
  • 🔄 Можно настроить автоматическое обновление при изменении исходных данных.

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

Допустим, вам нужно посчитать уникальные пары значений из двух столбцов (например, "Город + Улица" или "Товар + Категория"). Здесь стандартные методы не сработают — требуется специальный подход.

Решение для Excel 365:

=СЧЁТ(УНИК(A2:A100 & "|" & B2:B100))
Пояснения:
  • 🔗 Символ "|" (или любой другой разделитель) нужен, чтобы избежать ошибок при склеивании. Например, если в A2 записано "abc", а в B2"def", то "abcdef" может совпасть с другим сочетанием (например, "ab" + "cdef").
  • 🔍 УНИК извлекает все уникальные склеенные пары, а СЧЁТ подсчитывает их количество.

Для старых версий Excel используйте формулу массива:

=СУММ(1/СЧЁТЕСЛИМН(A2:A100 & "|" & B2:B100; A2:A100 & "|" & B2:B100))
⚠️ Внимание: Если в данных есть пустые ячейки, добавьте проверку ЕСЛИ:
=СУММ(--(ЧАСТОТА(ЕСЛИ((A2:A100<>"")(B2:B100<>""); СМЕЩ(A2;;;СЧЁТЗ(A2:A100)) & "|" & СМЕЩ(B2;;;СЧЁТЗ(B2:B100))); ЕСЛИ((A2:A100<>"")(B2:B100<>""); СМЕЩ(A2;;;СЧЁТЗ(A2:A100)) & "|" & СМЕЩ(B2;;;СЧЁТЗ(B2:B100))))>0))

Пример расчёта уникальных пар "Товар + Цвет":

ТоварЦветУникальная пара
СтулКрасныйСтул|Красный
СтолБелыйСтол|Белый
СтулКрасныйДубликат
СтулСинийСтул|Синий
СтолБелыйДубликат

Итоговое количество уникальных пар: 3.

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

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

Ошибка 1: Игнорирование пустых ячеек

Формулы вроде СЧЁТЕСЛИМН или ЧАСТОТА учитывают пустые ячейки как отдельные уникальные значения. Чтобы исключить их, добавьте условие:

=СУММ(--(ЧАСТОТА(ЕСЛИ(A2:A100<>""; A2:A100); ЕСЛИ(A2:A100<>""; A2:A100))>0))

Ошибка 2: Регистрозависимость

По умолчанию Excel не различает регистр (например, "Товар" и "товар" считаются одинаковыми). Если это критично, используйте:

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

Или в Excel 365:

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

Ошибка 3: Динамические диапазоны

Если вы добавляете новые строки в таблицу, а формула ссылается на фиксированный диапазон (например, A2:A100), результаты станут неактуальными. Решение:

  • 📌 Используйте Таблицы Excel (вкладка Вставка → Таблица) и ссылайтесь на столбцы по имени (например, Таблица1[Столбец1]).
  • 🔄 Заменяйте фиксированные диапазоны на динамические:
    =СЧЁТ(УНИК(A2:INDEX(A:A; СЧЁТЗ(A:A))))
⚠️ Внимание: Формулы массива (вводимые через Ctrl+Shift+Enter) могут значительно замедлить работу файла, если применяются к диапазонам более 10 000 строк. В таких случаях используйте Power Query или VBA.

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

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

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

  • 🔄 В Excel 365 используйте ФИЛЬТР:
    =СЧЁТ(УНИК(ФИЛЬТР(диапазон; (диапазон<>"")*(ПОДСЧЁТ(диапазон)>0))))
  • 📊 Создайте сводную таблицу на основе фильтрованных данных и используйте поле "Значения" с настройкой "Количество уникальных".
Как посчитать уникальные значения по цвету ячейки?

Стандартные функции Excel не работают с цветами. Варианты:

  • 🎨 Используйте VBA-скрипт:
    Function CountByColor(rng As Range, color As Range) As Long
    

    Dim cl As Range, count As Long

    count = 0

    For Each cl In rng

    If cl.Interior.Color = color.Interior.Color Then count = count + 1

    Next cl

    CountByColor = count

    End Function

    Вызывайте её как =CountByColor(A1:A100; B1), где B1 — ячейка с нужным цветом.

  • 🔄 Экспортируйте данные в Power Query и добавьте столбец с цветом через VBA или надстройку Kutools.
Почему формула с ЧАСТОТА возвращает неверный результат?

Частые причины:

  • 🔢 В диапазоне есть ошибки (#Н/Д, #ЗНАЧ!). Добавьте проверку:
    =СУММ(--(ЧАСТОТА(ЕСЛИОШИБКА(ЕСЛИ(A2:A100<>""; A2:A100); ""); ЕСЛИОШИБКА(ЕСЛИ(A2:A100<>""; A2:A100); ""))>0))
  • 📏 Диапазоны в ЧАСТОТА имеют разный размер. Они должны совпадать.
  • 🔄 Формула не введена как массив (в старых версиях Excel нужно нажимать Ctrl+Shift+Enter).
Как посчитать уникальные значения в Google Sheets?

В Google Таблицах используйте:

  • 📊 =COUNTA(UNIQUE(A2:A100)) — аналог УНИК + СЧЁТ.
  • 🔢 =SUM(1/COUNTIF(A2:A100; A2:A100)) — формула массива (вводится без Ctrl+Shift+Enter).

Для уникальных комбинаций по нескольким столбцам:

=COUNTA(UNIQUE(ARRAYFORMULA(A2:A100 & "|" & B2:B100)))
Можно ли автоматически обновлять количество уникальных значений?

Да, если использовать:

  • 🔄 Таблицы Excel (вкладка Вставка → Таблица). Формулы внутри таблицы автоматически расширяются на новые строки.
  • 📊 Power Query с настройкой Обновить при открытии файла.
  • 🔢 VBA-макрос, который пересчитывает значения по событию (например, при изменении листа).