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

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

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

В этой статье мы разберём 5 рабочих методов — от элементарных формул для начинающих до продвинутых инструментов вроде Power Query и VBA. Вы узнаете, как:

  • 🔹 Использовать комбинацию СЧЁТЕСЛИМН + вспомогательный столбец для небольших таблиц
  • 🔹 Применять УНИК (в Excel 365) для мгновенного результата без формул
  • 🔹 Создавать сводные таблицы для визуального анализа уникальных данных
  • 🔹 Автоматизировать процесс с помощью Power Query (без программирования!)
  • 🔹 Писать простые макросы на VBA для обработки миллионов строк

Особое внимание уделим распространённой ошибке при работе с текстом: Excel может не распознавать уникальность строк, если в ячейках есть скрытые пробелы или разные регистры ("Иванов" vs "иванов"). Мы покажем, как это исправить.

📊 Какой версии Excel вы пользуетесь?
Excel 2010-2016
Excel 2019
Excel 365 (онлайн/десктоп)
Macros for Excel
Другая

Метод 1: Формула с вспомогательным столбцом (работает во всех версиях)

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

Допустим, у вас данные в столбцах A (Имя) и B (Фамилия). В столбце C создаём формулу:

=A2 & "|" & B2

Символ | нужен как разделитель (можно использовать любой редко встречающийся символ). Затем в любой свободной ячейке (например, D1) вводим:

=СЧЁТЕСЛИМН(C2:C100; "<>" & "") - СЧЁТЕСЛИМН(C2:C100; C2:C100; C2:C100; "<>" & C2:C100)
⚠️ Внимание: Если в ваших данных есть ячейки с символом |, замените разделитель на другой (например, или §). В противном случае уникальные идентификаторы будут сформированы некорректно.
Имя (A)Фамилия (B)Идентификатор (C)
АннаИвановаАнна|Иванова
ПётрПетровПётр|Петров
АннаИвановаАнна|Иванова
МарияСидороваМария|Сидорова

В этом примере формула вернёт значение 3, так как строка "Анна|Иванова" повторяется.

Скопируйте данные в новый лист

Убедитесь, что нет пустых строк в диапазоне

Замените все пробелы в начале/конце ячеек (функция СЖПРОБЕЛЫ)

Проверьте регистр (при необходимости используйте ПРОПИСН или СТРОЧН)

-->

Метод 2: Функция УНИК (только Excel 365 и 2021)

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

Предположим, ваши данные находятся в диапазоне A2:B100. В любой свободной ячейке введите:

=СТРОКА(УНИК(A2:B100))

Затем используйте СЧЁТ для подсчёта количества строк в полученном массиве:

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

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

  • 🚀 Мгновенный результат без дополнительных действий
  • 🔄 Автоматическое обновление при изменении исходных данных
  • 📊 Возможность вывести сами уникальные строки (а не только их количество)
⚠️ Внимание: Функция УНИК чувствительна к регистру. Если в ваших данных есть дубликаты с разным регистром ("Иванов" и "иванов"), они будут считаться уникальными. Используйте ПРОПИСН или СТРОЧН для нормализации:
=СЧЁТ(УНИК(ПРОПИСН(A2:A100) & "|" & ПРОПИСН(B2:B100)))
Что делать если УНИК не работает?

Если функция УНИК возвращает ошибку #ИМЯ?, проверьте:

1. Вашу версию Excel (должна быть 365 или 2021)

2. Региональные настройки (в русскоязычной версии функция называется именно "УНИК", в англоязычной — "UNIQUE")

3. Формат ячеек (должен быть "Общий", а не "Текст")

Метод 3: Сводная таблица (визуально + быстро)

Сводные таблицы — это мощный инструмент, который позволяет не только посчитать уникальные строки, но и проанализировать их распределение. Этот метод подходит для любых версий Excel и особенно удобен при работе с большими наборами данных.

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

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

Результат: сводная таблица покажет все уникальные комбинации строк и их количество. Чтобы получить только число уникальных строк, просто посчитайте количество строк в сводной таблице (исключая строку "Итог").

Строки (Имя)Столбцы (Фамилия)Количество
АннаИванова2
МарияСидорова1
ПётрПетров1
Итог3

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

Power Query (или Get & Transform в новых версиях Excel) — это инструмент для извлечения, преобразования и загрузки данных. Он идеально подходит для обработки крупных таблиц (десятки тысяч строк) и позволяет создавать повторяемые процессы.

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

  1. Выделите исходный диапазон данных
  2. Перейдите на вкладку ДанныеИз таблицы/диапазона (в Excel 2016+)
  3. В открывшемся редакторе Power Query выделите все столбцы, по которым нужно определить уникальность
  4. На вкладке Главная нажмите Удалить строкиУдалить дубликаты
  5. Нажмите Закрыть и загрузить в... и выберите Только создать соединение
  6. Создайте сводную таблицу на основе этого соединения

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

  • 📈 Обрабатывает миллионы строк без зависаний
  • 🔄 Сохраняет шаги преобразования для повторного использования
  • 🔗 Может объединять данные из нескольких источников
⚠️ Внимание: При работе с Power Query убедитесь, что исходные данные не содержат объединённых ячеек. Это может привести к ошибке загрузки. Если объединения есть, сначала разъедините ячейки (выделите → ГлавнаяОбъединить и центрировать → отменить объединение).

Метод 5: VBA-макрос (для продвинутых пользователей)

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

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

Sub CountUniqueRows()

Dim rng As Range

Dim dict As Object

Dim cell As Range

Dim key As String

Dim uniqueCount As Long

Set dict = CreateObject("Scripting.Dictionary")

Set rng = Range("A2:B100")

For Each cell In rng.Columns(1).Cells

If cell.Value <> "" Then

key = cell.Value & "|" & cell.Offset(0, 1).Value

If Not dict.exists(key) Then

dict.Add key, 1

End If

End If

Next cell

uniqueCount = dict.Count

MsgBox "Количество уникальных строк: " & uniqueCount

End Sub

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

  1. Нажмите Alt + F11 для открытия редактора VBA
  2. Вставьте код в новый модуль (InsertModule)
  3. Запустите макрос нажатием F5 или через Макросы в меню Разработчик

Для обработки больших диапазонов замените Range("A2:B100") на динамический диапазон:

Set rng = Range("A2", Range("A" & Rows.Count).End(xlUp)).Resize(, 2)

Частые ошибки и как их избежать

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

  1. Скрытые пробелы или непечатаемые символы

    Используйте СЖПРОБЕЛЫ и ПЕЧСИМВ для очистки данных:

    =СЖПРОБЕЛЫ(ПЕЧСИМВ(A2))
  2. Разный регистр

    Приведите все данные к одному регистру с помощью ПРОПИСН или СТРОЧН перед сравнением.

  3. Объединённые ячейки

    Разъедините их перед анализом (выделите → ГлавнаяОбъединить и центрировать → отменить).

  4. Пустые строки в диапазоне

    Используйте СЧЁТЕСЛИМН с условием "<>"&"" для игнорирования пустых ячеек.

  5. Данные в формате текста вместо чисел

    Преобразуйте формат с помощью ЗНАЧЕН или текстового импорта.

Если вы работаете с данными, импортированными из CSV или баз данных, обязательно проверьте их на наличие невидимых символов (табуляции, переводы строк). Для этого используйте функцию:

=КОДСИМВ(ЛЕВСИМВ(A2))

Если результат — 9 (табуляция), 10 (перевод строки) или 13 (возврат каретки), очистите данные с помощью ПОДСТАВИТЬ.

FAQ: Ответы на популярные вопросы

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

Да, в Excel 365 это можно сделать с помощью функции УНИК (см. Метод 2). В более старых версиях придётся использовать либо Power Query, либо VBA, либо сводные таблицы. Вспомогательные столбцы — самый надёжный способ для универсальной совместимости.

Почему функция УНИК возвращает ошибку #ПУСТО?

Ошибка #ПУСТО! появляется, если в исходном диапазоне нет данных или все ячейки пустые. Проверьте:

  • Диапазон действительно содержит данные
  • Нет фильтров, скрывающих строки
  • Формат ячеек не "Текст" (попробуйте изменить на "Общий")
Как посчитать уникальные строки с учётом только определённых столбцов?

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

  • Для формул: создавайте вспомогательный столбец только для нужных столбцов
  • Для Power Query: выделяйте только необходимые столбцы перед удалением дубликатов
  • Для сводных таблиц: перетаскивайте в область "Строки" только те столбцы, которые нужно учитывать
Можно ли автоматически обновлять количество уникальных строк при изменении данных?

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

  • УНИК + СЧЁТ (автоматически обновляется в Excel 365)
  • Сводные таблицы (обновляйте вручную или настройте автоматическое обновление при открытии файла)
  • Power Query (обновляется по команде или при открытии файла)

Формулы с вспомогательными столбцами также обновляются автоматически, но могут замедлять работу при большом объёме данных.

Как посчитать уникальные строки в Google Таблицах?

В Google Sheets используйте аналогичные методы:

  • Формула: =COUNTA(UNIQUE(A2:B100))
  • Сводная таблица: алгоритм такой же, как в Excel
  • Apps Script: аналог VBA для автоматизации

Обратите внимание, что в Google Таблицах функция UNIQUE нечувствительна к регистру (в отличие от Excel).