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

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

В этой статье разберём 5 проверенных методов: от элементарных формул для новичков до продвинутых инструментов вроде Power Query и Dynamic Arrays (доступны в Excel 365). Вы узнаете, как обойти типичные ошибки (например, учёт регистра или скрытых символов), и сможете выбрать оптимальный способ в зависимости от версии программы и структуры данных. А в конце — бонус: сравнительная таблица производительности методов на больших массивах (10 000+ строк).

Если вы работаете с данными, где важна точная статистика уникальных значений (например, количество уникальных email-адресов в базе или SKU в прайс-листе), эта инструкция сэкономит вам часы ручной работы. Даже если вы никогда не использовали формулы сложнее СУММ, после прочтения сможете применить хотя бы 2-3 метода из статьи.

📊 Какую версию Excel вы используете?
Excel 2010-2019
Excel 365 (или 2021)
Mac-версия Excel
Google Sheets
Другая

1. Способ: Функция СЧЁТЕСЛИ для небольших диапазонов

Начнём с самого простого метода, который работает во всех версиях Excel (начиная с 2007 года). Он подходит для диапазонов до 1 000–2 000 строк, так как требует создания вспомогательного столбца. Суть в том, чтобы отметить каждое первое вхождение текста, а затем посчитать эти метки.

Допустим, у вас есть список наименований товаров в столбце A (диапазон A2:A100). В столбце B рядом введите формулу:

=ЕСЛИ(СЧЁТЕСЛИ($A$2:A2; A2)=1; 1; "")

Эта формула проверяет, сколько раз текущее значение из A2 встречалось выше текущей строки (включая её саму). Если это первое вхождение, ставится 1, иначе — пустая ячейка. Затем просто просуммируйте столбец B функцией =СУММ(B2:B100).

  • Плюсы: работает в старых версиях, не требует дополнительных надстроек.
  • Минусы: создаёт вспомогательный столбец, тормозит на больших данных (10 000+ строк).
  • ⚠️ Нюанс: формулу нужно растягивать вниз до последней строки диапазона.

Критическая особенность метода: он учитывает регистр символов. Если в списке есть "Яблоко" и "яблоко", они будут считаться разными значениями. Чтобы игнорировать регистр, модифицируйте формулу:

=ЕСЛИ(СЧЁТЕСЛИ($A$2:A2; ПРОПИСН(A2))=1; 1; "")

2. Способ: Комбинация СУММПРОИЗВ и ЕЧИСЛО

Этот метод не требует вспомогательных столбцов и подходит для диапазонов до 5 000–10 000 строк. Он использует формулу массива (вводится через Ctrl+Shift+Enter в старых версиях Excel):

=СУММ(--(ЧАСТОТА(СТРОКА(A2:A100)-СТРОКА(A2)+1; СТРОКА(A2:A100)-СТРОКА(A2)+1; ЕСЛИ(A2:A100<>""; СОВПАД(А2:A100; А2:A100; 0)))=1))

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

  1. СОВПАД сравнивает каждое значение со всеми остальными и возвращает массив ИСТИНА/ЛОЖЬ.
  2. ЧАСТОТА подсчитывает, сколько раз каждое значение встречается в списке.
  3. СУММ(--(...=1)) суммирует только те значения, которые встречаются ровно 1 раз (уникальные).

Для игнорирования регистра замените СОВПАД на:

=СУММ(--(ЧАСТОТА(СТРОКА(A2:A100)-СТРОКА(A2)+1; СТРОКА(A2:A100)-СТРОКА(A2)+1; ЕСЛИ(A2:A100<>""; СОВПАД(ПРОПИСН(A2:A100); ПРОПИСН(A2:A100); 0)))=1))
⚠️ Внимание: В Excel 365 формулы массива вводятся без Ctrl+Shift+Enter — просто нажмите Enter. В старых версиях забывчивое нажатие приведёт к ошибке #ЗНАЧ!.

3. Способ: Функция УНИК (UNIQUE) в Excel 365

Если вы используете Microsoft 365 или Excel 2021, у вас есть доступ к динамическим массивам и функции УНИК (UNIQUE). Это самый простой и эффективный способ:

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

Функция УНИК автоматически извлекает все уникальные значения из диапазона, а СЧЁТ подсчитывает их количество. Преимущества метода:

  • 🔹 Мгновенный результат — не требует вспомогательных столбцов или сложных формул.
  • 🔹 Автоматическое обновление при изменении исходных данных.
  • 🔹 Поддержка игнорирования регистра: используйте =СЧЁТ(УНИК(ПРОПИСН(A2:A100))).

Ограничение: в бесплатной версии Excel для веб функция УНИК может быть недоступна.

4. Способ: Сводная таблица (для визуализации + подсчёта)

Сводные таблицы — универсальный инструмент, который не только подсчитает уникальные значения, но и позволит группировать данные по категориям. Алгоритм действий:

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

Чтобы получить только количество, добавьте в область Значения тот же столбец, но с настройкой Количество (вместо суммы). Затем отсортируйте данные по убыванию, чтобы увидеть самые частые значения.

МетодМакс. строкТребует вспом. столбцаУчитывает регистрВремя выполнения (10к строк)
СЧЁТЕСЛИ~2 000ДаДа~3 сек
СУММПРОИЗВ~10 000НетДа (можно игнорировать)~1 сек
УНИК (Excel 365)100 000+НетДа (можно игнорировать)~0.5 сек
Сводная таблица100 000+НетДа~2 сек
Power Query1 000 000+НетДа (настраивается)~1 сек

Сводные таблицы идеальны, если вам нужно не только количество, но и аналитика по категориям. Например, вы можете узнать, сколько уникальных товаров приходится на каждого поставщика или в какой месяц было больше всего новых клиентов.

Удалить пустые строки в исходном диапазоне|

Проверить отсутствие объединённых ячеек|

Убедиться, что в столбце нет формул (только значения)|

Преобразовать диапазон в таблицу (Ctrl+T) для автоматического обновления-->

5. Способ: Power Query для больших данных (100к+ строк)

Если вы работаете с очень большими массивами (100 000+ строк), стандартные формулы Excel будут тормозить или выдавать ошибки. Здесь на помощь придёт Power Query — инструмент для преобразования данных, встроенный в Excel 2016+ и Excel 365.

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

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

Чтобы получить только количество уникальных значений, после группировки добавьте шаг:

  1. Выделите столбец Count.
  2. На вкладке Добавить столбец выберите СтатистикаКоличество строк.

Power Query имеет ряд преимуществ:

  • 📊 Обрабатывает миллионы строк без зависаний.
  • 🔄 Позволяет автоматизировать обновление данных (например, при добавлении новых строк в исходный диапазон).
  • 🛠️ Гибкая настройка: можно игнорировать регистр, удалять пробелы, заменять символы перед подсчётом.
⚠️ Внимание: После загрузки данных из Power Query Excel создаёт связанную таблицу. Если исходные данные изменятся, обновите запрос через ДанныеОбновить все.
Как игнорировать регистр в Power Query?

В редакторе Power Query выделите столбец → вкладка "Преобразование" → "Формат" → "ПРОПИСНЫЕ" (или "строчные"). Затем выполните группировку по этому столбцу.

6. Распространённые ошибки и как их избежать

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

  • 🔍 Скрытые символы: Пробелы, табуляции или непечатаемые символы (например, CHAR(160) — неразрывный пробел) делают одинаковые слова "разными". Используйте =ПЕЧСИМВ(A2) или =СЖПРОБЕЛЫ(A2) для очистки.
  • 📏 Объединённые ячейки: Формулы не работают с объединёнными ячейками. Разъедините их через ГлавнаяОбъединить и центрировать.
  • 📊 Формулы vs. значения: Если ваш диапазон содержит формулы (например, =A1&B1), функции вроде УНИК могут давать неожиданные результаты. Преобразуйте формулы в значения (КопироватьСпециальная вставкаЗначения).
  • 🔠 Числа в текстовом формате: Числа, хранящиеся как текст (например, '123), будут считаться отдельно от чисел 123. Используйте =ЗНАЧЕН(A2) для преобразования.
  • 🌍 Языковые настройки: В некоторых локалях Excel функции вроде СОВПАД могут требовать точку с запятой (;) вместо запятой (,) в формулах.

Проверьте свои данные на наличие этих проблем с помощью контрольного списка:

Удалить лишние пробелы (=СЖПРОБЕЛЫ())|

Заменить неразрывные пробелы (=ЗАМЕНИТЬ(A2; СИМВОЛ(160); " "))|

Преобразовать текстовые числа в числовой формат|

Разъединить объединённые ячейки|

Проверить регистр (при необходимости привести к единому виду)-->

Критический момент: если ваши данные импортированы из внешних источников (например, CSV или базы данных), они могут содержать невидимые символы конца строки (CHAR(10)) или разделители. Используйте =ЧИСТ(A2) для их удаления.

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

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

Да, в Google Sheets работает аналогичный метод с функцией UNIQUE:

=COUNTA(UNIQUE(A2:A100))

Также доступны аналоги COUNTIF и SUMPRODUCT. Главное отличие: в Google Sheets нет Power Query, но есть собственные инструменты вроде QUERY для сложных запросов.

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

Используйте конкатенацию (объединение) столбцов. Например, для столбцов A и B:

=СЧЁТ(УНИК(A2:A100 & "|" & B2:B100))

Символ "|" нужен как разделитель, чтобы избежать совпадений (например, если в A2 "abc", а в B2 "def", а в другой строке наоборот).

Почему формула СУММПРОИЗВ выдаёт #ЗНАЧ!?

Ошибка #ЗНАЧ! в формулах массива возникает по трём причинам:

  1. В диапазоне есть пустые ячейки или ошибки (#Н/Д). Используйте =ЕСЛИОШИБКА(формула; 0).
  2. В старых версиях Excel формула не введена как массивовая (забыли Ctrl+Shift+Enter).
  3. Диапазоны в формуле разного размера (например, A2:A100 vs B2:B99).
Как посчитать уникальные значения с учётом условий (например, только для строк, где в столбце B стоит "Да")?

Используйте комбинацию ФИЛЬТР и УНИКExcel 365):

=СЧЁТ(УНИК(ФИЛЬТР(A2:A100; B2:B100="Да")))

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

=СУММ(--(ЧАСТОТА(ЕСЛИ(B2:B100="Да"; СТРОКА(A2:A100)-СТРОКА(A2)+1); ЕСЛИ(B2:B100="Да"; СТРОКА(A2:A100)-СТРОКА(A2)+1))=1))

Не забудьте ввести её как формулу массива (Ctrl+Shift+Enter).

Можно ли автоматизировать подсчёт уникальных значений при добавлении новых данных?

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

  • Сводные таблицы: Преобразуйте исходный диапазон в таблицу (Ctrl+T), затем сводная таблица будет обновляться автоматически.
  • Power Query: Настройте запрос один раз, а затем обновляйте его по кнопке Обновить все.
  • VBA-макрос: Напишите скрипт, который будет запускаться при открытии файла или изменении данных.

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

Sub CountUnique()

Dim ws As Worksheet

Set ws = ActiveSheet

Dim lastRow As Long

lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

Dim uniqueCount As Long

uniqueCount = ws.Evaluate("SUMPRODUCT(--(FREQUENCY(MATCH(A2:A" & lastRow & ";A2:A" & lastRow & ";0);MATCH(A2:A" & lastRow & ";A2:A" & lastRow & ";0))=1))")

MsgBox "Уникальных значений: " & uniqueCount

End Sub