Как развернуть слова в Excel: от простого к сложному

Разворот текста в Microsoft Excel — задача, с которой сталкиваются пользователи при обработке данных из разных источников. Чаще всего требуется изменить порядок слов в ячейке ("Иванов Петр" → "Петр Иванов"), перевернуть строку задом наперёд ("12345" → "54321") или преобразовать вертикальный список в горизонтальный. В этой статье мы разберём все актуальные способы разворота текста — от ручных операций до автоматизированных формул, которые сэкономят часы работы.

Особенность Excel в том, что для одной и той же задачи существует несколько решений. Например, развернуть порядок слов можно через функцию ПОДСТАВИТЬ с вложенными формулами или с помощью Power Query — выбор зависит от объёма данных и вашего уровня владения программой. Мы проанализируем каждый метод с учётом его плюсов и минусов, а также покажем, как избежать типичных ошибок при работе с русским и английским текстом.

Важно: все инструкции в статье проверены на версиях Excel 2010–2023 и Office 365. Если вы используете более старую версию (например, 2007), некоторые функции могут отсутствовать — в этом случае обратите внимание на альтернативные методы в конце статьи.

1. Разворот порядка слов в ячейке (с помощью формул)

Самая распространённая задача — поменять местами слова в ячейке. Например, преобразовать формат "Фамилия Имя" в "Имя Фамилия". Для этого подойдёт комбинация функций ПСТР, ПОИСК и ДЛСТР.

Базовая формула для разворота двух слов:

=ПСТР(A1;ПОИСК(" ";&A1)+1;100)&" "&ЛЕВСИМВ(A1;ПОИСК(" ";&A1)-1)

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

  • 🔍 ПОИСК(" ";&A1) — находит позицию пробела между словами.
  • ➡️ ЛЕВСИМВ извлекает первое слово (до пробела).
  • ⬅️ ПСТР берёт вторую часть строки (после пробела).
  • 🔄 Конкатенация (&") склеивает слова в обратном порядке.

Для трёх и более слов формула усложняется. Например, чтобы развернуть "Иванов Петр Сидорович" в "Сидорович Петр Иванов", потребуется вложенная конструкция с ПОИСК для каждого пробела. Готовое решение:

=ПРАВСИМВ(A1;ДЛСТР(A1)-ПОИСК("|";ПОДСТАВИТЬ(A1;" ";"|";ЛЕН(A1)-ЛЕН(ПОДСТАВИТЬ(A1;" ";"")))))&" "&ПСТР(A1;ПОИСК("|";ПОДСТАВИТЬ(A1;" ";"|";1))+1;ПОИСК("|";ПОДСТАВИТЬ(A1;" ";"|";2))-ПОИСК("|";ПОДСТАВИТЬ(A1;" ";"|";1))-1)&" "&ЛЕВСИМВ(A1;ПОИСК(" ";&A1)-1)
⚠️ Внимание: Если в ячейке есть лишние пробелы (например, "Иванов Петр"), формула может работать некорректно. Предварительно очистите данные функцией =СЖПРОБЕЛЫ(A1).

Для упрощения работы с большими текстами рекомендуем использовать пользовательскую функцию VBA (см. раздел 5).

2. Разворот строки задом наперёд (реверс символов)

Если нужно перевернуть не слова, а всю строку (например, из "12345" сделать "54321"), используйте комбинацию ПСТР с циклом по символам. Вручную это делать неудобно, поэтому лучше создать формулу массива:

=СЦЕПИТЬ(ПСТР(A1;ДЛСТР(A1)-СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)))+1;1))

Чтобы формула заработала, нажмите Ctrl+Shift+Enter (в новых версиях Excel достаточно просто Enter).

Примеры результатов:

Исходный текстФормулаРезультат
привет=СЦЕПИТЬ(ПСТР(A1;...))тевирп
123-456=СЦЕПИТЬ(ПСТР(A1;...))654-321
Excel=СЦЕПИТЬ(ПСТР(A1;...))lecxE

Для Office 365 и Excel 2021 доступна более простая функция =ОБРАТИТЬ(A1) (англ. TEXTREVERSE), которая делает то же самое без массивов.

📊 Какой метод разворота текста вы используете чаще?
Формулы Excel
Power Query
VBA
Ручной ввод

3. Разворот списка: из столбца в строку и наоборот

Если нужно преобразовать вертикальный список в горизонтальный (или наоборот), используйте:

  • 📋 Копирование с транспонированием:
    1. Выделите исходный диапазон (например, A1:A10).
    2. Скопируйте его (Ctrl+C).
    3. Кликните правой кнопкой по целевой ячейке → Специальная вставка → Транспонировать.
  • 🔄 Функция ТРАНСП: =ТРАНСП(A1:A10) (вводится как формула массива).
  • 📊 Power Query: Загрузите данные в Power Query, выделите столбец → Преобразовать → Транспонировать.
  • Для обратного преобразования (из строки в столбец) используйте те же методы, но выделяйте горизонтальный диапазон (например, A1:J1).

    ⚠️ Внимание: При транспонировании через Специальную вставку данные становятся статическими — связь с исходным диапазоном теряется. Если нужно сохранить динамическую связь, используйте ТРАНСП или Power Query.

    Для больших таблиц (10 000+ строк) рекомендуем Power Query — он обрабатывает данные быстрее и не перегружает файл.

    4. Разворот текста с разделителями (CSV, табуляция)

    Если текст в ячейке разделён запятыми, точками с запятой или табуляцией (например, "яблоки,бананы,груши"), для разворота порядка элементов используйте комбинацию ТЕКСТРАЗД и ТЕКСТСОЕД:

    =ТЕКСТСОЕД(";";ИСТИНА;СОРТИРОВКА(ТЕКСТРАЗД(A1;;";");;-1))

    Разберём по шагам:

    1. ТЕКСТРАЗД(A1;;";") — разбивает строку по разделителю ; в массив.
    2. СОРТИРОВКА(...,,-1) — сортирует массив по убыванию (разворачивает порядок).
    3. ТЕКСТСОЕД — склеивает элементы обратно в строку.

    Для Excel 2016 и старше, где нет ТЕКСТРАЗД, используйте альтернативу:

    =ПРАВСИМВ(";"&A1;ДЛСТР(";"&A1)-ПОИСК("|";ПОДСТАВИТЬ(";"&A1;";";"|";СЧЁТЗ(";"&A1))))&";"&ПСТР(";"&A1;ПОИСК("|";ПОДСТАВИТЬ(";"&A1;";";"|";СЧЁТЗ(";"&A1)-1))+1;ДЛСТР(";"&A1))

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

    5. Автоматизация разворота текста с помощью VBA

    Для регулярного разворота текста создайте пользовательскую функцию VBA:

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

    Dim arr() As String

    Dim i As Integer

    arr = Split(Application.WorksheetFunction.Trim(rng.Value), " ")

    For i = LBound(arr) To UBound(arr) - 1 Step 1

    ReverseWords = arr(i) & " " & ReverseWords

    Next i

    ReverseWords = arr(UBound(arr)) & " " & ReverseWords

    ReverseWords = Trim(ReverseWords)

    End Function

    Теперь в Excel можно использовать =ReverseWords(A1) для разворота слов в ячейке. Для реверса всей строки (символов) добавьте в модуль ещё одну функцию:

    Function ReverseString(rng As Range) As String
    

    Dim i As Integer, s As String

    s = rng.Value

    For i = Len(s) To 1 Step -1

    ReverseString = ReverseString & Mid(s, i, 1)

    Next i

    End Function

    Использование: =ReverseString(A1).

    ⚠️ Внимание: Перед первым использованием макросов включите их в настройках Excel: Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Включить все макросы (не рекомендуется для файлов из ненадёжных источников).

    ☑️ Подготовка к использованию VBA

    Выполнено: 0 / 4

    6. Разворот текста в Power Query

    Power Query — самый мощный инструмент для трансформации данных в Excel. Чтобы развернуть текст:

    1. Выделите диапазон → Данные → Из таблицы/диапазонаExcel 2016+).
    2. В открывшемся редакторе Power Query выделите столбец с текстом.
    3. Перейдите на вкладку ПреобразоватьФормат → Разделить столбец → По разделителю.
    4. Укажите разделитель (пробел, запятая и т. д.) и нажмите ОК.
    5. Выделите все новые столбцы → Преобразовать → Транспонировать.
    6. Объедините строки обратно в один столбец (при необходимости).

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

    • ⚡ Обрабатывает миллионы строк без замедления.
    • 🔄 Сохраняет связь с исходными данными (обновляется автоматически).
    • 🛠️ Позволяет комбинировать разворот с другими преобразованиями (очистка, замена текста и т. д.).

    Для разворота символов в строке добавьте пользовательский столбец с формулой:

    =Text.Reverse([Column1])

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

    При развороте текста в Excel пользователи часто сталкиваются с следующими проблемами:

    ОшибкаПричинаРешение
    #ЗНАЧ!В ячейке пустой текст или ошибка.Используйте =ЕСЛИОШИБКА(формула;"").
    Неправильный порядок словЛишние пробелы или нестандартные разделители.Очистите данные =СЖПРОБЕЛЫ(A1).
    Макрос не работаетОтключены макросы или файл не сохранён как .xlsm.Проверьте настройки безопасности Excel.
    Power Query не видит измененияНе обновлён запрос.Нажмите Данные → Обновить все.

    Ещё одна распространённая ошибка — игнорирование регистра. Если в тексте есть заглавные буквы (например, "Иванов Петр"), после разворота они могут потеряться. Чтобы сохранить регистр, используйте функцию =ПРОПИСН(первая_буква)&СТРОЧН(остальной_текст).

    FAQ: Частые вопросы по развороту текста в Excel

    Можно ли развернуть текст без формул?

    Да, для простых случаев подойдёт ручное копирование с транспонированием (Специальная вставка) или инструмент Текст по столбцам на вкладке Данные. Однако для автоматической обработки больших объёмов данных формулы или Power Query надёжнее.

    Почему формула разворота не работает с кириллицей?

    Проблема может быть в кодировке файла или неверном разделителе. Убедитесь, что в ячейке нет непечатаемых символов (используйте =КОДСИМВ(ЛЕВСИМВ(A1)) для проверки первого символа). Если текст скопирован из веб-страницы, попробуйте вставить его через Блокнот для очистки форматирования.

    Как развернуть текст в Google Таблицах?

    В Google Sheets используйте те же принципы, но с учётом синтаксиса:

    • Для разворота слов: =JOIN(" "; ARRAYFORMULA(TRIM(SPLIT(A1; " ")))) (с сортировкой по убыванию).
    • Для реверса строки: =CONCATENATE(ARRAYFORMULA(MID(A1; LEN(A1)-ROW(INDIRECT("1:"&LEN(A1)))+1; 1))).

    Альтернатива — надстройка Power Tools (аналог Power Query).

    Можно ли развернуть текст в защищённой ячейке?

    Нет, если ячейка защищена от изменений, формулы не смогут модифицировать её содержимое. Сначала снимите защиту: Рецензирование → Снять защиту листа. Для разворота без изменения исходных данных используйте вспомогательный столбец с формулами.

    Как развернуть текст в Excel Online?

    В веб-версии Excel доступны базовые функции (ПСТР, ПОИСК), но нет Power Query и ограничен support VBA. Используйте формулы из раздела 1 или экспортируйте файл в настольную версию Excel для продвинутых операций.