Как поменять местами слова в ячейке excel
Перейти к содержимому

Как поменять местами слова в ячейке excel

Как поменять местами слова в ячейке excel

anabioss13, здравствуйте.

Предлагаю так. Обратите внимание, где-то у Вас есть запятая после марки, где нет, поэтому моя формула цепляется за первый пробел. На конце оставляю запятую, если она есть в начале.

anabioss13, здравствуйте.

Предлагаю так. Обратите внимание, где-то у Вас есть запятая после марки, где нет, поэтому моя формула цепляется за первый пробел. На конце оставляю запятую, если она есть в начале.

Сообщение anabioss13, здравствуйте.

Предлагаю так. Обратите внимание, где-то у Вас есть запятая после марки, где нет, поэтому моя формула цепляется за первый пробел. На конце оставляю запятую, если она есть в начале.

Функция перемещения слова в строке

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

Function Move_SubString(Ячейка As String, Номер_подстроки As Long, Новое_место As Long, Optional Разделитель As String = " ") ‘Ячейка — текст или ссылка на ячейку с текстом ‘Номер_подстроки — это номер слова в строке, которое перемещаем. ‘Новое_место — куда в строке перемещаем. ‘Разделитель — необязательный аргумент. По умолчанию — пробел. Dim sStr, li As Long, lcnt As Long Dim sNewWord As String, sTmpStr As String sStr = Split(Application.Trim(Ячейка), Разделитель) If Номер_подстроки >= UBound(sStr) + 1 Then Номер_подстроки = UBound(sStr) + 1 For li = LBound(sStr) To UBound(sStr) If li = Номер_подстроки — 1 Then sTmpStr = sStr(li): sStr(li) = "" Next li For li = LBound(sStr) To UBound(sStr) If sStr(li) <> "" Then lcnt = lcnt + 1 If lcnt = Новое_место Then sNewWord = sNewWord & Разделитель & sTmpStr & Разделитель & sStr(li) Else sNewWord = sNewWord & Разделитель & sStr(li) End If End If Next li If Новое_место >= UBound(sStr) + 1 Then sNewWord = sNewWord & Разделитель & sTmpStr Move_SubString = Application.Trim(sNewWord) End Function

Чтобы правильно использовать приведенный код, необходимо сначала ознакомиться со статьей Что такое функция пользователя(UDF)?. Вкратце: скопировать текст кода выше, перейти в редактор VBA( Alt + F11 ) -создать стандартный модуль(InsertModule) и в него вставить скопированный текст. После чего функцию можно будет вызвать из Диспетчера функций( Ctrl + F3 ), отыскав её в категории Определенные пользователем (User Defined Functions) .
Синтаксис:
=Move_SubString( A2 ;2;5)

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

Номер_подстроки (2) — это номер слова в строке, которое перемещаем. Если для Номер_подстроки указать число заведомо большее, чем кол-во слов в строке(скажем 1000), то будет перемещено последнее слово на позицию, указанную аргументом Новое_место.

Новое_место (5) — номер позиции слова в строке, куда перемещаем.

Разделитель — необязательный аргумент. По умолчанию — пробел. Этим символом будет разделено перемещаемое слово.

С помощью функции можно либо переместить слово с одной позиции в предложении на другую или поменять слова в предложении местами. В файле-примере вы найдете примеры применения обоих вариантов.

Поменять порядок слов в ячейках

В редких, но оттого не менее важных случаях при работе с Excel требуется изменить порядок слов внутри ячеек.

Сортировка данных (слов и чисел) в ячейке по алфавиту

Такая операция может потребоваться, например в процессе поиска и удаления неявных дублей или при построении сводных таблиц. Так или иначе, речь об операциях, в которых не важен порядок слов внутри ячеек.

Сортировать слова внутри ячейки по алфавиту А-Я

Поменять местами слова в ячейке Excel

Речь обычно о ситуациях, когда в ячейке два слова. Наглядный пример — когда данные в формате Фамилия-Имя нужно переделать в формат Имя-Фамилия. Но если слов 3 и более, они также предстанут в зеркальном порядке.

Меняем местами имя и фамилию в списке

Переставить определенные слова в начало или конец ячейки

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

Поможет в этом случае меню «Изменить слова«, т.к. в большей степени задача относится к словам, чем ячейкам, — изменяется позиция конкретных слов в ячейке, а не ячейка как независимая сущность.

Пример применения функции «переставить слова в начало ячейки».

Поменять порядок слов в ячейках быстро и без сложных формул поможет !SEMTools.
Скачивайте и начинайте экономить время и силы для решения более важных задач!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *