Содержание статьи

В таблицах Excel часто требуется изменить порядок слов в одной ячейке – например, чтобы из записи «Иванов Иван» получить «Иван Иванов». Такая задача встречается при подготовке отчетов, выгрузке данных из CRM или корректировке списков клиентов. Сделать это можно без ручного редактирования, используя формулы, встроенные инструменты или VBA.
Самый доступный способ – применить функции ПСТР, НАЙТИ и ДЛСТР. С их помощью можно выделить отдельные слова и объединить их в нужном порядке. Если структура ячейки сложнее, стоит использовать инструмент «Текст по столбцам», который разделяет содержимое по пробелам, после чего слова можно переставить и объединить обратно.
Для автоматизации процесса подходит макрос VBA, который выполняет перестановку сразу во всех ячейках выбранного диапазона. При работе с объемными таблицами такой способ экономит время и снижает риск ошибок. Еще один вариант – воспользоваться Power Query для преобразования текстовых данных с настройкой правил перестановки.
Перестановка слов в одной ячейке с помощью формул

Если в ячейке Excel указаны два слова, например «Иванов Иван», их можно поменять местами с помощью комбинации текстовых функций. Предположим, что исходная строка находится в ячейке A1.
Пример формулы:
=ПСТР(A1;НАЙТИ(» «;A1)+1;ДЛСТР(A1))&» «&ЛЕВСИМВ(A1;НАЙТИ(» «;A1)-1)
Формула сначала находит позицию пробела, выделяет второе слово, а затем добавляет первое. В результате получается запись «Иван Иванов». Этот способ работает при наличии ровно одного пробела между словами.
Если слов больше, необходимо использовать более гибкие выражения с функцией ПОДСТАВИТЬ и повторным поиском пробелов. Например, для трёх слов можно применить вложенные формулы или использовать ТЕКСТДОСТОЛБЦОВ с разделителем «пробел», а затем объединить результат функцией СЦЕПИТЬ или знаком &.
| Исходное значение | Формула | Результат |
|---|---|---|
| Иванов Иван | =ПСТР(A1;НАЙТИ(» «;A1)+1;ДЛСТР(A1))&» «&ЛЕВСИМВ(A1;НАЙТИ(» «;A1)-1) | Иван Иванов |
| Петров Сергей Николаевич | =ПСТР(A1;НАЙТИ(» «;A1;НАЙТИ(» «;A1)+1)+1;ДЛСТР(A1))&» «&ПСТР(A1;НАЙТИ(» «;A1)+1;НАЙТИ(» «;A1;НАЙТИ(» «;A1)+1)-НАЙТИ(» «;A1)-1)&» «&ЛЕВСИМВ(A1;НАЙТИ(» «;A1)-1) | Николаевич Сергей Петров |
При работе с массивами строк одинаковой структуры можно скопировать формулу на весь диапазон, что позволит быстро изменить порядок слов во множестве ячеек без макросов и внешних инструментов.
Использование функции «Текст по столбцам» для разделения слов

Инструмент «Текст по столбцам» позволяет быстро разделить содержимое ячейки на несколько частей, если слова в ней отделены пробелами, запятыми или другими символами. Этот способ удобен, когда нужно переставить слова вручную или с последующим объединением через формулу.
Чтобы применить функцию, выделите столбец с данными и откройте вкладку Данные → Текст по столбцам. В мастере выберите параметр С разделителями и задайте нужный символ – чаще всего это пробел. После нажатия Готово каждое слово из ячейки будет размещено в отдельной колонке.
Например, строка «Иванов Иван Петрович» превратится в три ячейки: A1 – «Иванов», B1 – «Иван», C1 – «Петрович». Чтобы поменять порядок слов, достаточно поменять местами содержимое этих ячеек или использовать объединяющую формулу:
=B1&» «&A1&» «&C1
Такой способ подходит для однотипных строк, где количество слов одинаково. После объединения можно скопировать результат и вставить его как значения, чтобы зафиксировать текст без формул.
Замена порядка слов через объединение ячеек и формулы СЦЕПИТЬ
После разделения текста на отдельные ячейки можно изменить порядок слов, используя формулу СЦЕПИТЬ или оператор &. Такой способ особенно удобен, когда нужно создать новый текст из нескольких элементов в заданной последовательности.
Допустим, после применения функции «Текст по столбцам» фамилия находится в ячейке A1, имя – в B1, а отчество – в C1. Чтобы поменять порядок и получить формат «Имя Фамилия Отчество», используйте формулу:
=СЦЕПИТЬ(B1;» «;A1;» «;C1)
Аналогичный результат даст выражение с оператором объединения:
=B1&» «&A1&» «&C1
Если нужно применить перестановку к множеству строк, формулу можно скопировать вниз по столбцу. После получения нужного результата рекомендуется скопировать формулы и вставить их как значения, чтобы сохранить только текст. Это предотвратит изменение данных при последующем редактировании исходных ячеек.
Для однотипных таблиц с фиксированным числом слов формула СЦЕПИТЬ позволяет быстро перестраивать текст, создавая новые форматы отображения данных без необходимости использовать макросы или дополнительные инструменты.
Автоматическая перестановка слов с помощью VBA-макроса

Когда требуется обработать большой объем данных, удобнее использовать макрос VBA, который выполняет перестановку слов в ячейках автоматически. Такой подход исключает ручные операции и обеспечивает одинаковый результат для всего диапазона.
Чтобы создать макрос, откройте редактор VBA сочетанием клавиш Alt + F11, выберите пункт Вставка → Модуль и вставьте следующий код:
Sub SwapWords()
Dim c As Range, arr As Variant
For Each c In Selection
arr = Split(c.Value, » «)
If UBound(arr) = 1 Then
c.Value = arr(1) & » » & arr(0)
End If
Next c
End Sub
Этот макрос обрабатывает выделенные ячейки, разделяет текст по пробелу и меняет местами два слова. Если слов больше, можно адаптировать код, добавив цикл для изменения порядка элементов массива arr.
Для выполнения макроса выделите нужные ячейки в Excel и запустите его через меню Разработчик → Макросы. После выполнения в каждой ячейке слова будут переставлены без необходимости применять формулы или дополнительные шаги.
Такой способ особенно полезен при работе с однотипными записями, где структура текста повторяется, например в списках фамилий и имён, выгруженных из различных систем.
Изменение порядка слов с применением Power Query

Power Query позволяет переставлять слова в тексте без формул и макросов, используя пошаговую обработку данных. Этот инструмент особенно полезен при работе с таблицами, где нужно изменить структуру сразу для многих строк.
Чтобы начать, выделите диапазон с текстом и выберите команду Данные → Получить и преобразовать → Из таблицы/диапазона. В открывшемся редакторе Power Query добавьте шаг Разделить столбец по разделителю и укажите пробел. Каждое слово из ячейки будет помещено в отдельный столбец.
Затем используйте пункт Добавить столбец → Настраиваемый столбец и введите выражение на языке M, которое изменяет порядок элементов:
=Text.Combine(List.Reverse(Text.Split([Столбец1], » «)), » «)
Команда Text.Split разбивает строку на список слов, List.Reverse переворачивает их порядок, а Text.Combine объединяет обратно через пробел. После применения изменений закройте редактор с загрузкой результата в Excel.
Этот метод подходит для больших таблиц, где требуется массовая перестановка слов в однотипных строках. Power Query сохраняет шаги преобразования, что позволяет повторно применять их при обновлении данных.
Способы обработки ячеек с разным количеством слов

Ячейки Excel могут содержать переменное число слов, что усложняет их перестановку. Для таких случаев применяются более гибкие методы.
- Формулы с условием: используй
Вопрос-ответ:
Как поменять местами два слова в одной ячейке без использования макросов?
Для ячейки с двумя словами, например «Иванов Иван», можно применить формулу =ПСТР(A1;НАЙТИ(» «;A1)+1;ДЛСТР(A1))&» «&ЛЕВСИМВ(A1;НАЙТИ(» «;A1)-1). Она находит пробел, выделяет второе слово и соединяет его с первым через пробел, меняя их порядок.
Можно ли переставить слова в ячейке, если их количество разное?
Да, для ячеек с разным числом слов лучше использовать Power Query или макрос VBA. В Power Query текст разделяется на список слов, после чего порядок элементов меняется функцией List.Reverse, а затем слова объединяются обратно. В VBA можно написать цикл, который переставляет слова в зависимости от их количества.
Как быстро поменять местами слова во всех строках столбца?
Если столбец содержит однотипные записи с одинаковым количеством слов, можно применить формулу с ссылкой на соответствующие ячейки и протянуть её вниз. Для переменного числа слов удобнее использовать макрос VBA, который автоматически обрабатывает выделенный диапазон и переставляет слова согласно заданной логике.
Зачем использовать формулу СЦЕПИТЬ при перестановке слов?
Формула СЦЕПИТЬ или оператор & позволяет объединять содержимое нескольких ячеек в нужном порядке. После разделения текста с помощью Текст по столбцам можно переставить колонки и объединить их обратно, создавая новую строку с изменённым порядком слов без ручного редактирования.
Можно ли поменять слова в ячейке Excel автоматически при обновлении данных?
Да, если использовать Power Query или макрос VBA. В Power Query шаги преобразования сохраняются, и при обновлении исходных данных перестановка слов применяется автоматически ко всем новым строкам. В VBA можно запускать макрос после каждой загрузки или вставки данных, чтобы обработка выполнялась без ручного вмешательства.
