В 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), затем:
- Перейдите на вкладку Главная → Условное форматирование → Правила выделения ячеек → Повторяющиеся значения.
- В выпадающем списке выберите Уникальные и задайте цвет заливки.
- Отфильтруйте столбец по цвету (меню Данные → Фильтр).
- Количество видимых ячеек после фильтрации и будет числом уникальных значений.
Этот способ нагляден, но не автоматизирует подсчёт. Кроме того, он не учитывает пустые ячейки — их придётся исключать вручную.
3. Сводные таблицы: быстрый подсчёт без формул
Сводные таблицы — один из самых надёжных способов, особенно для больших массивов данных (10 000+ строк). Алгоритм:
- Выделите исходный диапазон (включая заголовок столбца).
- На вкладке Вставка выберите Сводная таблица.
- В окне создания сводной таблицы укажите, куда поместить результат (на новый лист или в текущий).
- В области Строки перетащите поле с данными, для которых нужно посчитать уникальные значения.
- В область Значения перетащите то же поле, но выберите агрегацию Количество (не сумма!).
По умолчанию сводная таблица покажет количество всех записей, включая дубликаты. Чтобы получить уникальные:
- 🔹 Кликните правой кнопкой по ячейке в области Значения.
- 🔹 Выберите Параметры полей значений → Дополнительные параметры.
- 🔹 Поставьте галочку Показывать значения как → % от строки (это временный шаг).
- 🔹 Вернитесь обратно и выберите Количество уникальных значений.
Этот метод работает даже с текстовыми данными и игнорирует пустые ячейки. Однако в Excel 2010–2013 опция "Количество уникальных значений" может отсутствовать — в таком случае используйте формулы.
Почему сводная таблица показывает неверное количество уникальных значений?
Если в исходных данных есть скрытые символы (пробелы, перenosы строк), Excel воспринимает их как уникальные значения. Очистите данные функцией СЖПРОБЕЛЫ или инструментом Текст по столбцам (вкладка Данные).
4. Power Query: обработка миллионов строк
Для диапазонов свыше 100 000 строк или сложных критериев (например, уникальные комбинации из нескольких столбцов) оптимален Power Query (доступен в Excel 2016+ и Microsoft 365). Инструкция:
- Выделите исходные данные и на вкладке Данные выберите Из таблицы/диапазона (в Excel 2016 — Получить данные).
- В открывшемся редакторе Power Query выделите столбец, по которому нужно посчитать уникальные значения.
- На вкладке Главная нажмите Группировка.
- В окне группировки укажите:
- 🔹 Новое имя столбца: "Уникальные значения"
- 🔹 Операция: Количество всех строк
Преимущество 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+):
- Импортируйте данные в модель Power Pivot (вкладка Power Pivot → Добавить в модель данных).
- Создайте вычисляемый столбец с формулой конкатенации (например,
=[Столбец1] & "|" & [Столбец2]). - Используйте меру
DISTINCTCOUNTдля подсчёта уникальных значений в новом столбце.
⚠️ Внимание: При конкатенации текстовых и числовых данных преобразуйте числа в текст с помощьюТЕКСТ, иначе Excel может округлить значения (например,1.23станет1,2).
Удалите лишние пробелы (СЖПРОБЕЛЫ)|Преобразуйте числа в текст (ТЕКСТ)|Проверьте регистр (при необходимости используйте ПРОПИСН/СТРОЧН)|Убедитесь, что нет скрытых символов (включите отображение непечатаемых знаков)
-->
7. Автоматизация: VBA-макрос для подсчёта уникальных значений
Если вам регулярно нужно считать уникальные значения в больших таблицах, создайте пользовательскую функцию на VBA:
- Нажмите
Alt+F11, чтобы открыть редактор VBA. - Вставьте новый модуль (Insert → Module).
- Скопируйте код:
Function CountUnique(rng As Range) As LongDim 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
- Закройте редактор и используйте функцию в 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+ убедитесь, что поле добавлено в область Значения с агрегацией Количество.