Мастерская

Как убрать дубли в Excel и удалить дубликаты

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

Сначала главное. Excel считает дублями одинаковые строки. А в реальной базе один и тот же клиент записан по-разному: «Иванов И. И.», «И. И. Иванов», «Иванов Иван». Для Excel это три разных человека. Поэтому кнопка «Удалить дубликаты» находит меньше половины — и создаёт опасное чувство, что база чистая.

Способ 1. Кнопка «Удалить дубликаты»

Данные → Удалить дубликаты → выбрать колонки. Работает, если записи совпадают посимвольно. Ломается на всём остальном:

Что делать: перед кнопкой прогоните колонки через СЖПРОБЕЛЫ() (убирает лишние пробелы) и ПРОПИСН()/СТРОЧН() (приводит регистр). Телефоны и почты кнопка всё равно не сведёт — для них нужен шаг ниже.

Способ 2. Формула СЧЁТЕСЛИ

Добавляете колонку =СЧЁТЕСЛИ(A:A; A2) — она показывает, сколько раз значение встречается. Больше единицы — дубль. Способ хорош тем, что видно, что именно считается дублем, и можно отфильтровать и посмотреть глазами.

Но ловит он ровно то же: совпадение по символам.

Способ 3. Power Query

Данные → Из таблицы. Дальше «Удалить дубликаты» уже внутри запроса. Плюс: повторяется одной кнопкой «Обновить», удобно для регулярной работы. Минус: тот же — сравнение посимвольное. Ещё Power Query удобно использовать для приведения: там есть «Формат → Очистить» и замена, но логику «телефон в одном виде» всё равно придётся описывать вручную.

Способ 4. Дедупликация по надёжному ключу

Это то, что реально работает. Идея простая: сравнивать не имена, а ключи, которые не зависят от написания. Для человека это телефон, почта или ИНН.

Порядок такой:

  1. Привести ключ к одному виду. Телефон — оставить только цифры и заменить ведущую 8 на +7. Почту — привести к нижнему регистру и убрать пробелы.
  2. Сгруппировать по этому ключу. Все записи с одним телефоном — один клиент.
  3. Решить, какую запись оставить. Обычно самую заполненную: где есть и почта, и город, и менеджер.
  4. Проверить, что ничего не потерялось. Сравните число строк до и после и убедитесь, что разница равна числу найденных дублей.
Пример, который всё объясняет. Четыре записи: «Иванов И. И. / +7 999 123-45-67», «И. И. Иванов / 8 999 123 45 67», «Иванов Иван / +79991234567», «Иванов И.И. / 7 999 123-45-67». По имени — четыре разных человека. По телефону — один, и это правильный ответ.

Почему это нельзя доверить кнопке

Есть предел, за которым автоматика обязана остановиться. Вот он:

Свести нельзя молча
«Ромашка»
«ООО «Ромашка»»
«Ромашка (Иванов)»
— могут быть разными юрлицами
Свести можно
+7 999 123-45-67
8 999 123 45 67
+79991234567
— это один и тот же номер

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

Проверка результата

Прежде чем радоваться, посчитайте: строк было − строк стало = дублей убрано. Если числа не сходятся, где-то потерялись данные. И сохраните исходник: чистый файл нужен, но вернуться к тому, что было, иногда нужнее.

Дальше стоит проверить не только дубли, но и весь брак: пустые ячейки, даты в трёх форматах, телефоны в четырёх написаниях. Об этом — как понять, что таблица требует чистки.

ГДЕ ИНСТРУМЕНТ СДАЁТСЯ

Мой инструмент дедупликации делает всё описанное сам: находит дубли по телефону, почте или ИНН, приводит написание к одному виду и отдаёт чистый CSV. Похожие, но не совпавшие записи он показывает отдельно — с процентом сходства и решением за вами. Данные считаются в браузере, никуда не уходят.

Где он сдаётся: если надёжного ключа в базе нет — только имена и адреса, — автоматика не имеет права ничего сливать. Это ручная сверка: я сравниваю написания, адреса и связи и отдаю список решений.

База большая и грязная?
Пришлите файл — скажу, что с ним не так, сколько дублей и что придётся решать вручную. Оценка бесплатная.
Написать мне