Как быстро убрать дефисы между числами в Excel: от замены до автоматизации

Дефисы между цифрами в Microsoft Excel часто появляются при импорте данных из внешних источников (1С, CRM, банковские выписки) или после копирования номеров телефонов, серийных кодов и идентификаторов типа 123-456-7890. Проблема в том, что такие значения Excel воспринимает как текст, а не как числа — их нельзя просуммировать, отсортировать по возрастанию или использовать в вычислениях. Например, при попытке применить функцию СУММ() к столбцу с дефисами результат будет равен нулю, хотя визуально данные выглядят как числовые.

В 80% случаев пользователи пытаются решить задачу через ручную замену (Ctrl+H), но этот метод работает только для простых случаев. Если дефисы стоят в случайных позициях (например, 12-345-67-89), или данные содержат другие разделители (пробелы, точки, запятые), требуются более гибкие подходы. Ниже разобраны все актуальные способы — от элементарных до автоматизированных, с учётом нюансов форматирования и производительности для больших таблиц (10 000+ строк).

1. Быстрая замена дефисов через «Найти и заменить»

Самый очевидный метод — использование стандартного инструмента Найти и заменить (Ctrl+H). Он подходит для случаев, когда дефисы стоят в фиксированных позициях (например, в номерах телефонов XXX-XXX-XXXX) и не перемешаны с другими символами. Алгоритм:

  1. Выделите диапазон ячеек с данными (или весь лист — Ctrl+A).
  2. Нажмите Ctrl+H, чтобы открыть окно замены.
  3. В поле «Найти» введите - (дефис).
  4. Поле «Заменить на» оставьте пустым.
  5. Нажмите «Заменить всё».

⚠️ Внимание: Если в данных есть другие знаки препинания (например, тире или минус ), они не будут удалены. Чтобы удалить все типы дефисов, используйте подстановочный знак ~? в поле «Найти» (работает только при включённом параметре «Подстановочные знаки» в расширенных настройках).

2. Преобразование текста в числа с удалением дефисов

Когда дефисы удалены, но Excel по-прежнему воспринимает данные как текст (выравнивание по левому краю, зелёный индикатор ошибки), требуется принудительное преобразование формата. Способы:

  • 📊 Через «Текст по столбцам»:
    1. Выделите столбец → вкладка ДанныеТекст по столбцам.
    2. Выберите С разделителями → нажмите Далее.
    3. Снимите все галочки с разделителей (табуляция, точка с запятой и т. д.) → Готово.
  • 🔢 Умножение на 1: В соседнем столбце введите формулу =A1*1 и протяните её вниз. Скопируйте результаты → Специальная вставкаЗначения.
  • 🖱️ Двойной клик: Дважды кликните по ячейке с текстом и нажмите Enter — Excel автоматически преобразует значение в число, если это возможно.
  • Если после преобразования числа отображаются в экспоненциальном формате (например, 1.23E+10), увеличьте ширину столбца или примените пользовательский формат без экспоненты: выделите ячейки → Формат ячеекЧисловой → укажите количество десятичных знаков 0.

    Почему Excel не распознаёт числа после удаления дефисов?

    Скорее всего, в данных остались невидимые символы (например, неразрывный пробел или символ конца строки). Чтобы их удалить, используйте функцию =ПЕЧСИМВ(A1) — она покажет скрытые знаки. Для очистки примените =СЖПРОБЕЛЫ(ПОДСТАВИТЬ(A1;СИМВОЛ(160);" ")).

    3. Удаление дефисов формулами (для динамических данных)

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

    ФормулаПримерКогда применять
    =ПОДСТАВИТЬ(A1;"-";"")1234567890 из 123-456-7890Дефисы стоят в фиксированных позициях
    =СЦЕПИТЬ(РАЗБИТЬТЕКСТ(A1;"-"))1234567890 из 12-34-56-78-90Дефисы в случайных позициях, но нет других разделителей
    =ЗАМЕНИТЬ(A1;ПОИСК("-";A1);1;"")Удаляет только первый дефисНужно удалить конкретный дефис по позиции
    =--ПОДСТАВИТЬ(A1;"-";"")Преобразует текст в число сразуДефисы удалены, но требуется преобразование формата

    Для обработки больших массивов данных (более 10 000 строк) формулы могут замедлять работу книги. В этом случае:

    1. Примените формулу к одному столбцу.
    2. Скопируйте результаты → Специальная вставкаЗначения.
    3. Удалите столбец с формулами.
    📊 Какой метод удаления дефисов вы используете чаще?
    Формулы
    Найти и заменить
    Power Query
    Текст по столбцам

    4. Автоматизация через Power Query (для сложных случаев)

    Power Query (вкладка ДанныеИз таблицы/диапазона) — самый мощный инструмент для очистки данных с дефисами, особенно если:

    • 📂 Дефисы стоят в случайных позициях (например, 12-3456-789).
    • 🔄 Данные импортируются регулярно, и нужно сохранить шаги очистки.
    • 📊 В одном столбце смешаны разные форматы (например, 123-456 и 123.456).

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

    1. Выделите исходные данные → ДанныеИз таблицы/диапазона.
    2. В редакторе Power Query выделите столбец → ПреобразоватьЗаменить значения.
    3. В поле «Значение для поиска» введите -, поле «Замена» оставьте пустым.
    4. Нажмите Закрыть и загрузить — данные вернутся в Excel без дефисов.

    Критичный нюанс: Если после удаления дефисов числа отображаются как текст (например, 0001234567 вместо 1234567), в Power Query добавьте шаг преобразования типа данных: выделите столбец → ПреобразоватьЧисловой.

    ✅ Проверьте, что в столбце нет ячеек с ошибками (#Н/Д, #ЗНАЧ!)

    ✅ Убедитесь, что дефисы — это именно символ "-" (а не тире "—" или минус "−")

    ✅ Преобразуйте диапазон в таблицу (Ctrl+T) для удобства обновления

    ✅ Сохраните книгу перед импортом в Power Query

    -->

    5. Удаление дефисов с помощью VBA (для опытных пользователей)

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

    Sub УдалитьДефисы()
    

    Dim rng As Range

    For Each rng In Selection

    If rng.Value Like "-" Then

    rng.Value = Replace(rng.Value, "-", "")

    End If

    Next rng

    End Sub

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

    1. Нажмите Alt+F11, чтобы открыть редактор VBA.
    2. Вставьте код в новый модуль (InsertModule).
    3. Вернитесь в Excel, выделите нужный диапазон и запустите макрос (Alt+F8 → выберите УдалитьДефисыВыполнить).

    ⚠️ Внимание: Макрос заменит все дефисы в выделенных ячейках, включая те, что могут быть частью текста (например, в фамилиях типа Иванов-Петров). Чтобы обработать только числовые ячейки, модифицируйте код:

    Sub УдалитьДефисыВЧислах()
    

    Dim rng As Range

    For Each rng In Selection

    If IsNumeric(Replace(rng.Value, "-", "")) Then

    rng.Value = Replace(rng.Value, "-", "")

    End If

    Next rng

    End Sub

    6. Обработка нестандартных форматов (смешанные разделители)

    Иногда дефисы комбинируются с другими символами, например: 123-456.789, 12/34-5678 или 123,456-789. В таких случаях нужна многоступенчатая очистка:

    1. Удалите все нечисловые символы: =ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;"-";"");".";"");",";"");"/";"")
    2. Преобразуйте в число: Умножьте результат на 1 или используйте =ЗНАЧЕН().
    3. Восстановите формат: Если нужно сохранить разряды (например, для денежных сумм), примените пользовательский формат # ##0.

    Пример для номера телефона с разными разделителями ((123)-456-7890):

    =--ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;"(";"");")";"");"-";"")

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

    Даже опытные пользователи допускают ошибки при удалении дефисов. Рассмотрим типичные проблемы и решения:

    ОшибкаПричинаРешение
    После замены числа стали текстомExcel сохраняет формат ячейкиПримените Текст по столбцам или умножьте на 1
    Удалены не все дефисыВ данных используются разные символы тире (, )Используйте СИМВОЛ(45) для точного поиска дефиса
    Числа отображаются в экспоненциальном форматеСлишком большие значения для стандартного отображенияУвеличьте ширину столбца или примените формат Числовой с 0 десятичных знаков
    Формулы не протягиваются на все строкиВ данных есть пустые ячейки или ошибкиИспользуйте Специальную вставкуФормулы и форматы чисел

    ⚠️ Внимание: Если после удаления дефисов числа округляются (например, 1234567890 становится 1.23E+09), это означает, что Excel интерпретирует их как числа с плавающей запятой. Чтобы сохранить точность, примените пользовательский формат 0 (без десятичных знаков).

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

    Можно ли удалить дефисы только в начале или конце числа?

    Да, используйте формулы:

    • Для удаления дефиса в начале: =ЕСЛИ(ЛЕВСИМВ(A1)="-";ПРАВСИМВ(A1;ДЛСТР(A1)-1);A1)
    • Для удаления дефиса в конце: =ЕСЛИ(ПРАВСИМВ(A1)="-";ЛЕВСИМВ(A1;ДЛСТР(A1)-1);A1)
    Как удалить дефисы, но сохранить минус перед отрицательными числами?

    Используйте комбинацию функций:

    =ЕСЛИ(A1<0;ПОДСТАВИТЬ(A1;"-";"");ПОДСТАВИТЬ(A1;"-";""))*ЕСЛИ(A1<0;-1;1)

    Эта формула удаляет все дефисы, но восстанавливает знак минус для отрицательных значений.

    Почему после удаления дефисов числа становятся датами?

    Excel автоматически преобразует числа типа 01-02-2023 или 12/34/5678 в даты. Чтобы этого избежать:

    1. Перед удалением дефисов примените текстовый формат к ячейкам.
    2. Используйте апостроф перед числом: '123-456 → после удаления дефиса останется текст 123456.
    Как удалить дефисы в Google Таблицах?

    Алгоритм аналогичен Excel:

    1. ПравкаНайти и заменить (Ctrl+H).
    2. В поле «Найти» введите -, поле «Заменить на» оставьте пустым.
    3. Для формул используйте =ПОДСТАВИТЬ(A1;"-";"").

    Отличие: В Google Таблицах нет Power Query, но есть Apps Script для автоматизации.

    Можно ли вернуть дефисы обратно после удаления?

    Да, если вы знаете исходный формат. Например, чтобы вернуть формат телефона XXX-XXX-XXXX:

    =ЛЕВСИМВ(A1;3)&"-"&СРЕДЗНАЧ(A1;4;3)&"-"&ПРАВСИМВ(A1;4)

    Для произвольных позиций дефисов потребуется VBA или регулярные выражения в Power Query.