Как удалить текст после первого пробела в Excel: от простых способов до автоматизации

Проблема: лишние данные после пробела портят аналитику

Вы загрузили в Excel данные из , выгрузили отчёт из Google Analytics или получили таблицу от коллег — и обнаружили, что в ячейках вместе с нужной информацией хранится мусор: фамилии с инициалами ("Иванов И.П."), артикулы с описаниями ("ART-12345 Черный"), города с регионами ("Москва Московская обл."). Всё это разделено пробелами, но вам нужна только первая часть. Ручное редактирование сотен строк? Это не про Excel.

В этой статье — 7 проверенных способов удалить текст после пробела (или нескольких пробелов), включая:

  • 🔹 Функции без макросов — для новичков и тех, кто боится кода
  • 🔹 Power Query — если данные обновляются регулярно
  • 🔹 VBA-макросы — для обработки тысяч строк за секунды
  • 🔹 Регулярные выражения — когда пробелов много или они нестандартные

Каждый метод проиллюстрирован скриншотами (для Excel 2019 и Office 365) и адаптирован под реальные задачи: от очистки списка email до разделения ФИО. А в конце — FAQ с ответами на типовые ошибки, например, когда после удаления остаются "висячие" пробелы или формулы не работают с кириллицей.

📊 Какой способ удаления текста после пробела вы используете чаще?
Функции LEFT/FIND
Текст по столбцам
Power Query
Макросы
Не знаю, как это сделать

Способ 1: Функция LEFT + FIND — универсальное решение для одного пробела

Если в ячейке ровно один пробел (например, "Москва Московская обл."), и вам нужна только часть до него, комбинация LEFT + FIND — самый надёжный вариант. Формула работает даже с текстом на кириллице и не ломается при обновлении данных.

Вот как её применить:

  1. В пустую ячейку (например, B2) введите формулу:
    =LEFT(A2; FIND(" "; A2) - 1)

    где A2 — ячейка с исходным текстом.

  2. Нажмите Enter.
  3. Протяните формулу вниз за маркер автозаполнения (маленький крестик в правом нижнем углу ячейки).

🔍 Как это работает:

  • 📍 FIND(" "; A2) находит позицию первого пробела в тексте (в примере выше это 7-й символ).
  • 📏 LEFT извлекает все символы слева от этой позиции, отнимая 1 (чтобы пробел не попал в результат).

Пример: для ячейки с текстом "ART-12345 Черный" формула вернёт "ART-12345".

☑️ Проверка перед использованием LEFT+FIND

Выполнено: 0 / 4
⚠️ Внимание: Если в ячейке нет пробелов, формула вернёт ошибку #ЗНАЧ!. Чтобы избежать этого, оберните её в IFERROR:
=IFERROR(LEFT(A2; FIND(" "; A2) - 1); A2)

Способ 2: Текст по столбцам — когда пробелов много и они разные

Если пробелов в ячейке несколько (например, "Иванов Иван Петрович"), а вам нужна только первая часть, или пробелы нестандартные (табуляции, неразрывные пробелы), используйте инструмент "Текст по столбцам". Этот метод не требует формул и подходит для одноразовой обработки.

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

  1. Выделите столбец с данными (например, A:A).
  2. Перейдите на вкладку ДанныеТекст по столбцам.
  3. В первом окне мастера выберите С разделителямиДалее.
  4. Снимите все галочки, кроме Пробел (если пробелы стандартные) или укажите другой разделитель (например, табуляцию).
  5. Нажмите Готово.

📌 Результат: Excel разобьёт текст по пробелам на отдельные столбцы. Вам останется скопировать первый столбец с нужными данными и вставить его поверх исходного (или удалить лишние столбцы).

Исходные данные После "Текст по столбцам" Результат (скопирован первый столбец)
Иванов Иван Петрович Иванов | Иван | Петрович Иванов
ART-12345 Черный M ART-12345 | Черный | M ART-12345
Москва Московская обл. ЦАО Москва | Московская | обл. | ЦАО Москва
⚠️ Внимание: Если в тексте есть несколько пробелов подряд (например, "Москва ЦАО"), Excel воспримет их как пустые столбцы. Чтобы избежать этого, предварительно замените двойные пробелы на одиночные (Ctrl+H → найти " " → заменить на " ").

Способ 3: Power Query — автоматическая очистка при обновлении данных

Если ваши данные регулярно обновляются (например, выгружаются из базы или Google Sheets), Power Query — идеальный инструмент. Он позволяет создать повторяемый сценарий очистки, который будет применятся при каждом обновлении.

Инструкция для Excel 2016+ и Office 365:

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

🔄 Преимущество: Теперь при обновлении исходных данных (кнопка Обновить все на вкладке Данные) текст будет автоматически очищаться от всего, что идёт после первого пробела.

Как вернуть исходные данные, если что-то пошло не так?

В Power Query все преобразования сохраняются в виде шагов. Чтобы отменить изменения, откройте редактор запросов (Данные → Получение данных → Запросы), выделите последний шаг в правой панели и нажмите крестик рядом с его названием.

Способ 4: Формула с REGEX — для сложных случаев (неразрывные пробелы, табуляции)

Если пробелы в ваших данных нестандартные (например, неразрывные пробелы  , табуляции \t или комбинации из нескольких пробелов), обычные функции LEFT/FIND не сработают. Здесь поможет регулярное выражение через пользовательскую функцию VBA.

🛠 Инструкция:

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. Вставьте новый модуль: ВставкаМодуль.
  3. Скопируйте в него этот код:
    Function ExtractBeforeSpace(rng As Range) As String
    

    Dim regex As Object

    Set regex = CreateObject("VBScript.RegExp")

    regex.Pattern = "^[^\s]+"

    ExtractBeforeSpace = regex.Execute(rng.Value)(0)

    End Function

  4. Закройте редактор VBA.
  5. Теперь в любой ячейке можно использовать формулу:
    =ExtractBeforeSpace(A2)

🔍 Что делает код:

  • 📜 ^[^\s]+ — это регулярное выражение, которое ищет всю последовательность символов от начала строки до первого пробела (включая неразрывные пробелы и табуляции).
  • 🔄 Функция возвращает только эту последовательность, игнорируя всё остальное.

Пример: Для текста "Иванов Иван Петрович" (с неразрывными пробелами) формула вернёт "Иванов".

⚠️ Внимание: Пользовательские функции VBA не работают в веб-версии Excel и Excel для Mac (если не включена поддержка макросов). Перед использованием сохраните файл в формате .xlsm (с поддержкой макросов).

Способ 5: Макрос для массовой обработки — когда данных тысячи

Если нужно очистить десятки тысяч строк, ручное применение формул или "Текст по столбцам" займёт слишком много времени. В этом случае поможет VBA-макрос, который обработает все данные за секунды.

🚀 Макрос для удаления текста после первого пробела:

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. Вставьте новый модуль и скопируйте туда код:
    Sub DeleteAfterSpace()
    

    Dim rng As Range

    Dim cell As Range

    Dim spacePos As Integer

    Set rng = Selection 'Выделенный диапазон

    Application.ScreenUpdating = False

    For Each cell In rng

    spacePos = InStr(cell.Value, " ")

    If spacePos > 0 Then

    cell.Value = Left(cell.Value, spacePos - 1)

    End If

    Next cell

    Application.ScreenUpdating = True

    MsgBox "Обработка завершена!", vbInformation

    End Sub

  3. Закройте редактор и вернитесь в Excel.
  4. Выделите диапазон с данными и запустите макрос: РазработчикМакросы → выберите DeleteAfterSpaceВыполнить.

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

  • 🔥 Обрабатывает 10 000 строк за 1-2 секунды (против минут при ручном вводе формул).
  • 📎 Не требует создания дополнительных столбцов.
  • 🔄 Можно адаптировать под другие разделители (замените " " на Chr(9) для табуляций).

Если в ваших данных используются нестандартные пробелы (например, Chr(160) для неразрывного пробела), замените в макросе строку InStr(cell.Value, " ") на InStr(cell.Value, Chr(160)).

Способ 6: Функция TEXTBEFORE (Excel 365 и 2021) — современное решение

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

📌 Синтаксис:

=TEXTBEFORE(A2; " ")

где:

  • A2 — ячейка с исходным текстом,
  • " " — разделитель (пробел).

🔹 Примеры:

Исходный текст Формула Результат
ART-12345 Черный =TEXTBEFORE(A2; " ") ART-12345
Иванов Иван Петрович =TEXTBEFORE(A2; " ") Иванов
Москва (ЦАО) =TEXTBEFORE(A2; " ") Москва

Плюсы TEXTBEFORE:

  • 🆕 Работает с любыми разделителями (пробелы, запятые, тире).
  • 📈 Быстрее чем комбинация LEFT+FIND, особенно на больших массивах.
  • 🔄 Поддерживает динамические массивы (результат автоматически "проливается" вниз).
⚠️ Внимание: Функция TEXTBEFORE не работает в Excel 2019 и более ранних версиях. Если вы видите ошибку #ИМЯ?, используйте альтернативные способы из этой статьи.

Способ 7: Замена через "Найти и заменить" — если пробелов мало и они в конце

Если текст после пробела всегда находится в конце ячейки (например, "ART-12345 Черный"), и вам нужно просто его убрать, можно обойтись без формул — достаточно стандартного инструмента Найти и заменить (Ctrl+H).

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

  1. Выделите диапазон с данными.
  2. Нажмите Ctrl+H (или ГлавнаяНайти и выделитьЗаменить).
  3. В поле Найти введите: * (пробел + звёздочка).
  4. Поле Заменить на оставьте пустым.
  5. Нажмите Заменить всё.

🔍 Что происходит:

  • 🔍 Символ * в Excel означает любое количество символов.
  • 📌 Таким образом, * ищет пробел и всё, что идёт после него, и заменяет это на пустоту.

⚠️ Ограничения метода:

  • ❌ Не сработает, если после пробела есть несколько слов (например, "Москва Московская обл." → останется "Москва Московская").
  • ❌ Удалит все пробелы с последующим текстом, даже если их несколько в одной ячейке.

FAQ: Частые ошибки и решения

🔹 Почему формула LEFT+FIND возвращает ошибку #ЗНАЧ?

Ошибка #ЗНАЧ! появляется, если в ячейке нет пробелов. Чтобы исправить:

  1. Используйте IFERROR:
    =IFERROR(LEFT(A2; FIND(" "; A2) - 1); A2)

    Это вернёт исходное значение, если пробела нет.

  2. Проверьте, нет ли в тексте неразрывных пробелов (Chr(160)). Замените их на обычные через Ctrl+H (найти: Alt+0160, заменить на пробел).
🔹 Как удалить текст после последнего пробела, а не первого?

Если нужно оставить только последнее слово (например, из "Иванов Иван Петрович" получить "Петрович"), используйте:

=TRIM(RIGHT(SUBSTITUTE(A2; " "; REPT(" "; 100)); 100))

🔍 Как это работает:

  1. SUBSTITUTE заменяет все пробелы на 100 пробелов.
  2. RIGHT берёт последние 100 символов (гарантированно захватывая последнее слово).
  3. TRIM убирает лишние пробелы.
🔹 Можно ли удалить текст после пробела без создания нового столбца?

Да, есть два способа:

  1. Макрос (см. Способ 5) — заменяет данные "на месте".
  2. Power Query (см. Способ 3) — можно загрузить данные в тот же лист.

⚠️ Формулы всегда требуют дополнительного столбца, так как Excel не может переписывать исходные данные автоматически (это нарушило бы целостность вычислений).

🔹 Почему после использования "Текст по столбцам" появляются пустые ячейки?

Это происходит, если в исходном тексте:

  • 🔸 Несколько пробелов подряд (например, "Москва ЦАО").
  • 🔸 Пробелы в начале/конце (например, " Москва").

🔧 Решение:

  1. Перед разделением примените =TRIM(A2), чтобы убрать лишние пробелы.
  2. Или вручную замените двойные пробелы на одиночные (Ctrl+H → найти " " → заменить на " ").
🔹 Как удалить текст после пробела в Google Таблицах?

В Google Sheets работают те же принципы, но с небольшими отличиями:

  1. Аналог LEFT+FIND:
    =LEFT(A2; FIND(" "; A2) - 1)

    (синтаксис идентичен Excel).

  2. Аналог TEXTBEFORE:
    =REGEXEXTRACT(A2; "^[^ ]+")

    (использует регулярные выражения).

  3. "Текст по столбцам": ДанныеРазделить текст на столбцы.

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