Разделение текста в Excel: 7 способов разбить содержимое ячейки на столбцы

Вы когда-нибудь сталкивались с ситуацией, когда в одной ячейке Excel скопились фамилия, имя и отчество через пробел, а вам нужно разнести их по отдельным столбцам? Или когда в одной колонке перемешаны артикулы, названия и цены через запятую? Разделение текста на части — одна из самых востребованных операций при работе с данными. Без этого не обойтись при импорте данных из , CRM-систем или веб-скрапинга.

В этой статье мы разберём все возможные способы разделения текста в Excel — от стандартных инструментов до малоизвестных функций. Вы узнаете, как разбивать данные по разделителям (пробел, запятая, точка с запятой), по фиксированной ширине, а также как автоматизировать процесс с помощью формул. Особое внимание уделим типичным ошибкам, которые портят данные при разбивке, и способам их избежать.

1. Стандартный инструмент "Текст по столбцам" — быстрый способ для новичков

Самый простой метод — встроенная функция Текст по столбцам (или Text to Columns в английской версии). Она подходит для 90% задач и работает даже в Excel 2010. Найдёте её на вкладке Данные в группе Работа с данными.

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

  • 📌 Выделите ячейки с текстом, который нужно разделить.
  • 🔧 Нажмите Данные → Текст по столбцам.
  • 📋 Выберите формат данных: С разделителями (если текст разбивается по символам) или Фиксированная ширина (если разбивка по позициям).
  • ✅ Настройте разделители (пробел, табуляция, запятая, точка с запятой) или укажите ширину столбцов.
  • 📍 Выберите ячейку, куда будут выведены результаты (по умолчанию — справа от исходных данных).

Преимущество метода: не требует знания формул и работает даже с большими объёмами данных (десятки тысяч строк). Однако у него есть ограничения:

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

2. Разделение по фиксированной ширине — когда нет явных разделителей

Если ваши данные выровнены по столбцам визуально, но не содержат явных разделителей (например, отчёт из банка или старый экспорт из 1С 7.7), используйте режим Фиксированная ширина в том же инструменте Текст по столбцам.

Пример: у вас есть строка "ИвановИванИванович19850515", где:

  • Фамилия — первые 6 символов,
  • Имя — следующие 4,
  • Отчество — 9 символов,
  • Дата рождения — последние 8.

В этом случае:

  1. Выделите столбец с данными.
  2. Запустите Текст по столбцам → Фиксированная ширина.
  3. В окне предварительного просмотра кликните мышью в тех местах, где должны быть границы столбцов (появится вертикальная линия).
  4. Нажмите Далее и выберите формат для каждого нового столбца (например, Текстовый для ФИО и Дата для даты рождения).

3. Формулы для разделения текста: гибкость и автоматизация

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

Функция Синтаксис Пример использования Когда применять
ЛЕВСИМВ =ЛЕВСИМВ(текст; количество_символов) =ЛЕВСИМВ(A1; 3) → вернёт первые 3 символа из ячейки A1 Для извлечения начала строки (например, кода региона в номере телефона).
ПРАВСИМВ =ПРАВСИМВ(текст; количество_символов) =ПРАВСИМВ(A1; 4) → вернёт последние 4 символа (например, год из даты "15.05.1985") Для извлечения конца строки (расширение файла, год рождения).
ПСТР =ПСТР(текст; начальная_позиция; количество_символов) =ПСТР(A1; 4; 3) → вернёт 3 символа, начиная с 4-го Для извлечения фрагмента из середины строки (например, месяц из даты "15051985").
НАЙТИ/ПОИСК =НАЙТИ(искомый_текст; текст; [нач_позиция]) =НАЙТИ(" "; A1) → найдёт позицию первого пробела в ячейке A1 Для определения позиции разделителя (пробела, запятой) перед использованием ПСТР.

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

=ПСТР(A1; НАЙТИ(" "; A1)+1; НАЙТИ(" "; A1; НАЙТИ(" "; A1)+1) - НАЙТИ(" "; A1) - 1)

Эта формула:

  1. Находит позицию первого пробела (НАЙТИ(" "; A1)).
  2. Находит позицию второго пробела (НАЙТИ(" "; A1; НАЙТИ(" "; A1)+1)).
  3. Извлекает текст между ними (ПСТР).
Как работает формула для извлечения отчества?

Для отчества логика аналогична, но нужно искать второй и третий пробелы:

=ПСТР(A1; НАЙТИ(" "; A1; НАЙТИ(" "; A1)+1)+1; ДЛСТР(A1) - НАЙТИ(" "; A1; НАЙТИ(" "; A1)+1))

Здесь ДЛСТР(A1) возвращает общую длину строки, а вычитание даёт количество символов от второго пробела до конца.

4. Функция ТЕКСТРАЗД — новое решение для Excel 365 и 2021

В последних версиях Excel появилась революционная функция ТЕКСТРАЗД (TEXTSPLIT в английской версии), которая заменяет собой десятки формул и упрощает разбивку текста в 10 раз. Она умеет:

  • 🔹 Разбивать текст по одному или нескольким разделителям (например, пробел + запятая).
  • 🔹 Учитывать пустые ячейки (не удаляет их, как это делает Текст по столбцам).
  • 🔹 Работать с динамическими массивами (результат автоматически заливается в соседние ячейки).

Синтаксис:

=ТЕКСТРАЗД(текст; разделитель_столбцов; [разделитель_строк]; [не учитывать пустые]; [соответствие]; [разделитель_последовательный])

Примеры:

  • Разбить по запятой: =ТЕКСТРАЗД(A1; ",")
  • Разбить по пробелу или запятой: =ТЕКСТРАЗД(A1; {",", " "})
  • Разбить по пробелу и игнорировать пустые ячейки: =ТЕКСТРАЗД(A1; " "; ; ИСТИНА)

Важно! Функция ТЕКСТРАЗД доступна только в Excel 365, Excel 2021 и Excel для веб. В более старых версиях (2019 и ранее) её нет.

5. Разделение текста с помощью Power Query — для больших данных

Если вам нужно обработать десятки тысяч строк или данные обновляются регулярно (например, ежедневный экспорт из Google Analytics), используйте Power Query (вкладка Данные → Получить данные). Этот инструмент позволяет:

  • 📊 Разбивать текст по разделителям без потери исходных данных.
  • 🔄 Автоматически обновлять результаты при изменении источника.
  • 🔧 Применять дополнительные преобразования (замена текста, удаление дубликатов).

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

  1. Выделите ваши данные и нажмите Данные → Из таблицы/диапазона (или Get Data → From Table/Range).
  2. В открывшемся окне Power Query выделите столбец с текстом.
  3. На вкладке Преобразование (Transform) выберите Разделить столбец → По разделителю.
  4. Укажите разделитель (пробел, запятая и т.д.) и нажмите ОК.
  5. Нажмите Закрыть и загрузить, чтобы вернуть данные в Excel.

Преимущество Power Query: все шаги сохраняются, и вы можете обновить данные одним кликом (кнопка Обновить все на вкладке Данные). Это незаменимо для регулярных отчётов.

🔹 Убедитесь, что исходные данные оформлены как таблица (Вставка → Таблица)

🔹 Проверьте, что в тексте нет лишних пробелов (используйте =СЖПРОБЕЛЫ())

🔹 Замените нестандартные разделители (например, ";" на ",") с помощью Заменить значения в Power Query

🔹 Сохраните файл перед началом работы (Power Query может замедлять Excel при больших объёмах)

-->

6. Разделение текста с помощью макросов (VBA) — для продвинутых пользователей

Если вам нужно автоматизировать разбивку для повторяющихся задач, напишите простой макрос. Например, этот код разобьёт текст в выделенных ячейках по пробелу и запишет результаты в соседние столбцы:

Sub SplitTextBySpace()

Dim rng As Range

Dim cell As Range

Dim arr() As String

Dim i As Integer

Set rng = Selection

For Each cell In rng

If Not IsEmpty(cell.Value) Then

arr = Split(cell.Value, " ")

For i = LBound(arr) To UBound(arr)

cell.Offset(0, i).Value = arr(i)

Next i

End If

Next cell

End Sub

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

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Выделите ячейки с текстом в Excel.
  4. Запустите макрос (Alt + F8 → Выберите SplitTextBySpace → Выполнить).

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

7. Типичные ошибки при разбивке текста и как их избежать

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

⚠️ Внимание! Если в тексте есть несколько подряд идущих разделителей (например, два пробела), функция Текст по столбцам создаст пустые ячейки. Чтобы их убрать, используйте формулу =ЕСЛИ(ЯЧЕЙКА=""; ""; ЯЧЕЙКА) или отметьте галочку Сжимать подряд идущие разделители в настройках инструмента.
Ошибка Причина Решение
Данные разбиваются некорректно (смещены на 1 символ) В тексте есть невидимые символы (табуляция, неразрывный пробел) Используйте =СЖПРОБЕЛЫ(A1) или =ПЕЧСИМВ(A1), чтобы увидеть скрытые символы
Формулы возвращают ошибку #ЗНАЧ! В тексте нет искомого разделителя (например, ищете пробел, а его нет) Проверьте данные на наличие разделителя или используйте =ЕСЛИОШИБКА(формула; "")
После разбивки числа отображаются как текст (выровнены влево) Инструмент Текст по столбцам по умолчанию присваивает текстовой формат На шаге выбора формата данных укажите Общий или Числовой
Результаты разбивки не обновляются при изменении исходных данных Использован инструмент Текст по столбцам, который не динамичен Замените на формулы (ТЕКСТРАЗД, ПСТР) или Power Query
⚠️ Внимание! Если вы разбиваете данные с датами в текстовом формате (например, "15.05.2023"), Excel может интерпретировать их как 15 мая 2023 или 05.15.2023 (в зависимости от региональных настроек). Чтобы избежать путаницы, предварительно преобразуйте столбец в формат Текстовый или используйте формулу =ДАТАЗНАЧ() после разбивки.

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

Можно ли разделить текст в Excel Online?

Да, в Excel для веб (Online) доступны:

  • Инструмент Текст по столбцам (вкладка Данные).
  • Функция ТЕКСТРАЗД (только в последних версиях).
  • Классические формулы (ЛЕВСИМВ, ПСТР и др.).

Power Query и VBA в онлайн-версии недоступны.

Как разделить текст по переносу строки (Alt+Enter)?

Символ переноса строки в ячейке (вставляется по Alt + Enter) имеет код CHAR(10). Чтобы разделить текст по нему:

  1. Используйте Текст по столбцам и в качестве разделителя укажите другое, затем нажмите Ctrl + J (это вставит символ переноса).
  2. Или примените формулу: =ТЕКСТРАЗД(A1; СИМВОЛ(10)) (для Excel 365).
Почему после разбивки числа отображаются как ######?

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

Как разделить текст, если разделитель — это слово (например, "и")?

Для этого подойдёт:

  1. Формула с ПОИСК и ПСТР:
    =ЛЕВСИМВ(A1; ПОИСК(" и "; A1)-1)  // извлечёт текст до " и "
    

    =ПРАВСИМВ(A1; ДЛСТР(A1)-ПОИСК(" и "; A1)-2) // извлечёт текст после " и "

  2. Функция ТЕКСТРАЗД (Excel 365): =ТЕКСТРАЗД(A1; " и ")
  3. Power Query: используйте опцию Разделить столбец → По разделителю и введите " и " вручную.

Обратите внимание, что регистр имеет значение: " и " ≠ " И ". Для игнорирования регистра используйте =НАЙТИ(НИЖН.РЕГ(" и "); НИЖН.РЕГ(A1)).

Можно ли разделить текст в Google Таблицах?

Да, в Google Sheets есть аналогичные инструменты:

  • Данные → Разделить текст на столбцы (аналог Текст по столбцам).
  • Функция SPLIT (аналог ТЕКСТРАЗД): =SPLIT(A1; " ").
  • Функции LEFT, RIGHT, MID (аналоги ЛЕВСИМВ, ПРАВСИМВ, ПСТР).

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