Приведение базы контактов к единому формату: телефоны, email и названия компаний — пошаговая нормализация в Excel для CRM

CRM и данные

Приведение базы контактов к единому формату: телефоны, email и названия компаний — пошаговая нормализация в Excel для CRM

База контактов, собранная из нескольких источников, неизбежно содержит разнобой: телефон записан как +7(999)123-45-67, 8-999-1234567 или 89991234567; названия компаний чередуют ООО, кавычки и регистр; в email попадают пробелы и лишние символы. CRM воспринимает каждую вариацию как отдельную запись — дубли растут, фильтры ломаются, рассылка уходит не туда. Эту проблему решает нормализация: приведение всех полей к единому формату ДО загрузки в CRM. В статье — готовые формулы Excel и пошаговая последовательность для очистки телефонов, email, названий компаний и адресов.

Содержание

  1. Почему формат имеет значение
  2. Нормализация телефонов: от зоопарка форматов к единому +7
  3. Email-адреса: пробелы, кавычки и битые домены
  4. Названия компаний: регистр, ООО/ИП и лишние кавычки
  5. Города и адреса: приведение к единому справочнику
  6. Автоматизация: Power Query или VBA-макрос
  7. Проверка результата: контрольные суммы и выборочный аудит

Почему формат имеет значение

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

Что ломается без нормализации:

  • Дубли в CRM: каждая вариация телефона или email создаёт отдельный контакт;
  • Сломанная сегментация: фильтр «компании из Москвы» не найдёт «г. Москва» и «Москва, ул. Тверская» в одной выдаче;
  • Провал рассылки: письмо на email с пробелом или кавычкой уходит в никуда;
  • Искажённая аналитика: количество «уникальных» лидов завышено в 1,5–2 раза.

Хорошая новость: Excel содержит все необходимые функции для нормализации. Не нужен Python, не нужен SQL — достаточно формул и 30 минут времени. Разберём каждый тип данных отдельно.

Нормализация телефонов: от зоопарка форматов к единому +7

Телефонные номера приходят в десятке вариаций:

  • +7 (999) 123-45-67 — с пробелами и скобками;
  • 8-999-123-45-67 — через 8 и дефисы;
  • 89991234567 — слитно;
  • +7(999)1234567 — смешанный формат;
  • 9991234567 — без кода страны.

Цель — привести все номера к формату +7XXXXXXXXXX (11 цифр, начинается с +7).

Шаг 1. Удалить всё, кроме цифр. Функция ПОДСТАВИТЬ убирает конкретные символы, но когда их десяток вариантов, удобнее формула с массивом:

=СЦЕП(ЕСЛИ(ЕЧИСЛО(--ПСТР(A2;СТРОКА($1:$50);1));ПСТР(A2;СТРОКА($1:$50);1);""))

Формула массива (вводится через Ctrl+Shift+Enter в старых версиях Excel). Результат для +7 (999) 123-45-6779991234567.

Шаг 2. Привести код страны к +7. После очистки возможны варианты: 7999..., 8999..., 999.... Приводим к единому префиксу:

=ЕСЛИ(ЛЕВСИМВ(B2;1)="8"; "+7"&ПСТР(B2;2;10);
   ЕСЛИ(ЛЕВСИМВ(B2;1)="7"; "+"&B2;
   ЕСЛИ(ДЛСТР(B2)=10; "+7"&B2;
   "НЕКОРРЕКТНЫЙ")))

Где B2 — ячейка с очищенными цифрами. Формула обрабатывает три случая: номер через 8, номер уже с 7, и номер без кода страны (10 цифр).

Шаг 3. Проверить длину. Корректный российский номер — ровно 11 цифр после + (12 символов с плюсом):

=ЕСЛИ(ДЛСТР(C2)<>12; "ОШИБКА ДЛИНЫ"; C2)

Номера короче 11 цифр помечаются — возможно, это городской телефон без кода или опечатка.

Email-адреса: пробелы, кавычки и битые домены

Типичные проблемы с email из открытых источников и копипасты:

  • пробелы в начале и конце: " info@company.ru ";
  • лишние символы: info@company.ru (точка в конце);
  • кавычки: "info@company.ru";
  • слипшиеся адреса: info@company.ru sales@company.ru;
  • неполные: info@company (без доменной зоны).

Шаг 1. Удалить пробелы и обрезать края. Функция СЖПРОБЕЛЫ убирает лишние пробелы внутри строки, а СЖПРОБЕЛЫ + проверка крайних символов решает основную проблему:

=ПОДСТАВИТЬ(СЖПРОБЕЛЫ(A2);" ";"")

Затем убираем точку или запятую в конце:

=ЕСЛИ(ПРАВСИМВ(B2;1)="."; ЛЕВСИМВ(B2;ДЛСТР(B2)-1);
   ЕСЛИ(ПРАВСИМВ(B2;1)=","; ЛЕВСИМВ(B2;ДЛСТР(B2)-1);
   B2))

Шаг 2. Проверить структуру. Email должен содержать ровно один символ @ и точку после него:

=ЕСЛИ(И(ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;"@";""))=1;
        НАЙТИ(".";A2;НАЙТИ("@";A2))>0);
        A2; "НЕВАЛИДНЫЙ")

Адреса с двумя @ или без точки после собаки маркируются как невалидные и требуют ручной проверки.

Шаг 3. Привести к нижнему регистру. По стандарту локальная часть email регистрозависима, но большинство почтовых систем игнорируют регистр. Для единообразия в CRM — приводим к нижнему:

=СТРОЧН(C2)

Названия компаний: регистр, ООО/ИП и лишние кавычки

Названия компаний — самое грязное поле в любой сборной базе. Одна и та же организация может быть записана как:

  • ООО «Ромашка»;
  • "Ромашка", ООО;
  • РОМАШКА ООО;
  • ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ "РОМАШКА".

Цель — привести к единому формату: ООО «Ромашка» (краткая форма с кавычками-ёлочками).

Шаг 1. Замена длинной формы ОПФ. Создаём таблицу подстановок на отдельном листе и используем ПОДСТАВИТЬ:

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;
        "ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ";"ООО");
        "АКЦИОНЕРНОЕ ОБЩЕСТВО";"АО");
        "ПУБЛИЧНОЕ АКЦИОНЕРНОЕ ОБЩЕСТВО";"ПАО")

Шаг 2. Привести кавычки. Заменяем все варианты кавычек на ёлочки «»:

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(B2;
        """";"«";1); """";"»";1);
        "'";"«")

Важно: заменяем первую и вторую двойную кавычку отдельно (на « и » соответственно).

Шаг 3. Регистр. Название компании приводим к формату «первая буква заглавная»:

=ПРОПНАЧ(C2)

После этой операции ООО «РОМАШКА» превратится в Ооо «Ромашка». Потребуется ручная правка аббревиатур (ООО, АО, ЗАО) — но это быстрее, чем править регистр вручную для всех ячеек.

Города и адреса: приведение к единому справочнику

Поле «Город» страдает от неоднородности не меньше, чем названия компаний:

  • Москва, г. Москва, город Москва, Moscow;
  • Санкт-Петербург, СПб, г. Санкт-Петербург, St. Petersburg.

Решение — справочник синонимов на отдельном листе. Колонка A: все возможные написания города; колонка B: каноническое название. Формула для подстановки:

=ВПР(СЖПРОБЕЛЫ(A2); Справочник!A:B; 2; ЛОЖЬ)

Если город не найден в справочнике, формула вернёт #Н/Д — это сигнал добавить новый вариант в справочник.

Для адресов подход аналогичный: выделяем индекс, город, улицу и дом в отдельные колонки. Полный почтовый адрес лучше хранить отдельно от структурированных полей.

Автоматизация: Power Query или VBA-макрос

Описанные формулы работают для разовой очистки файла на 200–500 строк. Если вы регулярно загружаете новые порции контактов, автоматизируйте процесс.

Вариант 1 — Power Query (рекомендуется). Создайте запрос, который:

  1. загружает исходный файл или все файлы из папки;
  2. применяет шаги очистки: удаление пробелов, замена символов, проверка длины;
  3. выгружает результат на новый лист.

Преимущество: при добавлении нового файла в папку достаточно нажать «Обновить» — все шаги применятся автоматически. Power Query доступен в Excel 2016 и новее (вкладка «Данные» → «Получить данные»).

Вариант 2 — VBA-макрос. Если нужна максимальная гибкость (сложная логика подстановок, обращение к внешним API для валидации), пишем макрос. Шаблон:

Sub NormalizeContacts()
    Dim ws As Worksheet, lastRow As Long, i As Long
    Set ws = ThisWorkbook.Sheets("Контакты")
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
    For i = 2 To lastRow
        ' очистка телефона
        ws.Cells(i, 3).Value = CleanPhone(ws.Cells(i, 3).Value)
        ' очистка email
        ws.Cells(i, 4).Value = CleanEmail(ws.Cells(i, 4).Value)
    Next i
End Sub

Макрос удобен, когда очистка встроена в регулярный бизнес-процесс и выполняется еженедельно.

Проверка результата: контрольные суммы и выборочный аудит

После нормализации обязательно проверьте результат перед импортом в CRM. Три простых теста:

1. Контрольная сумма строк. Количество строк до и после очистки должно совпадать. Если стало меньше — вы случайно удалили записи (например, при удалении дубликатов не проверили диапазон).

2. Подсчёт валидных/невалидных. Добавьте сводную строку внизу таблицы:

=СЧЁТЕСЛИ(D2:D501;"НЕВАЛИДНЫЙ")

Если невалидных больше 5–10% — исходные данные требуют доочистки. Возможно, часть контактов была собрана с ошибками и их лучше исключить из импорта.

3. Выборочная ручная проверка. Возьмите 10–15 случайных строк и сравните исходное значение с очищенным. Откройте пару сайтов компаний и сверьте телефон/email по официальным контактам. Это займёт 5 минут, но обнаружит системные ошибки формул.

Коротко: порядок нормализации перед загрузкой в CRM

  1. Телефоны → удалить всё кроме цифр → привести к +7XXXXXXXXXX → проверить длину (12 символов с +7).
  2. Email → СЖПРОБЕЛЫ → убрать точку/запятую в конце → проверить структуру (@ и точка) → СТРОЧН.
  3. Названия компаний → заменить длинные ОПФ на краткие → привести кавычки к ёлочкам → ПРОПНАЧ.
  4. Города → справочник синонимов → ВПР для подстановки канонического названия.
  5. Проверка → контрольная сумма строк → доля невалидных → выборочный ручной аудит.

После нормализации база готова к импорту. Если хотите разобраться, как правильно загрузить XLSX в CRM и не потерять данные при импорте — читайте Импорт XLSX в CRM без ошибок: проверка полей, дубли и формат дат. А если работаете со сборной базой из разных источников и хотите оценить её полноту — Как оценить полноту отраслевой базы компаний и найти пропуски.

Для тех, кто собирает контакты с отраслевых выставок и регулярно пополняет CRM: каталог готовых баз участников с уже очищенными и проверенными контактами.

Часто задаваемые вопросы

Можно ли нормализовать данные прямо в CRM, без Excel?

Можно, но не рекомендуется. Большинство CRM (AmoCRM, Битрикс24, Salesforce) имеют встроенные средства очистки дублей, но они работают с уже загруженными данными. Если загрузить грязную базу, CRM создаст дубликаты, и потом придётся чистить их внутри системы — это дольше и рискованнее. Предварительная нормализация в Excel экономит часы ручной работы.

Что делать с международными номерами не из России?

Описанная логика для +7 работает аналогично для других кодов стран. Определите страну по коду (первые 1–3 цифры) и примените соответствующий формат. Для Беларуси — +375XXXXXXXXX (12 символов с +375), для Казахстана — +7XXXXXXXXXX (как Россия). Если база содержит номера из нескольких стран, добавьте колонку «Страна» и нормализуйте телефоны отдельно для каждой.

Как быть с названиями на английском языке?

Функция ПРОПНАЧ работает и с латиницей, но англоязычные названия компаний часто содержат аббревиатуры (LLC, Inc, GmbH), которые ПРОПНАЧ превратит в Llc, Inc, Gmbh. После применения ПРОПНАЧ выполните обратную замену этих токенов через ПОДСТАВИТЬ. Для смешанных баз (русские и английские названия) — отдельный проход с проверкой алфавита через ЕСЛИ(КОДСИМВ(…)).

Сколько времени занимает нормализация базы на 1000 контактов?

С формулами — около 30 минут на настройку и 5 минут на выполнение. Power Query сокращает повторную обработку до 1–2 минут (кнопка «Обновить»). Ручная нормализация без формул заняла бы 3–4 часа и гарантированно содержала бы ошибки.

Прокрутить вверх