Как поменять местами слова в ячейке 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 ) -создать стандартный модуль(Insert —Module) и в него вставить скопированный текст. После чего функцию можно будет вызвать из Диспетчера функций( Ctrl + F3 ), отыскав её в категории Определенные пользователем (User Defined Functions) .
Синтаксис:
=Move_SubString( A2 ;2;5)
Ячейка ( A2 ) — текст или ссылка на ячейку с текстом, в котором необходимо переместить слово.
Номер_подстроки (2) — это номер слова в строке, которое перемещаем. Если для Номер_подстроки указать число заведомо большее, чем кол-во слов в строке(скажем 1000), то будет перемещено последнее слово на позицию, указанную аргументом Новое_место.
Новое_место (5) — номер позиции слова в строке, куда перемещаем.
Разделитель — необязательный аргумент. По умолчанию — пробел. Этим символом будет разделено перемещаемое слово.
С помощью функции можно либо переместить слово с одной позиции в предложении на другую или поменять слова в предложении местами. В файле-примере вы найдете примеры применения обоих вариантов.
Поменять порядок слов в ячейках
В редких, но оттого не менее важных случаях при работе с Excel требуется изменить порядок слов внутри ячеек.
Сортировка данных (слов и чисел) в ячейке по алфавиту
Такая операция может потребоваться, например в процессе поиска и удаления неявных дублей или при построении сводных таблиц. Так или иначе, речь об операциях, в которых не важен порядок слов внутри ячеек.
Сортировать слова внутри ячейки по алфавиту А-Я
Поменять местами слова в ячейке Excel
Речь обычно о ситуациях, когда в ячейке два слова. Наглядный пример — когда данные в формате Фамилия-Имя нужно переделать в формат Имя-Фамилия. Но если слов 3 и более, они также предстанут в зеркальном порядке.
Меняем местами имя и фамилию в списке
Переставить определенные слова в начало или конец ячейки
Иногда слова во фразах идут не в том порядке, который хочется, но известен заранее список слов, которые должны идти в начале или конце строк.
Поможет в этом случае меню «Изменить слова«, т.к. в большей степени задача относится к словам, чем ячейкам, — изменяется позиция конкретных слов в ячейке, а не ячейка как независимая сущность.
Пример применения функции «переставить слова в начало ячейки».
Поменять порядок слов в ячейках быстро и без сложных формул поможет !SEMTools.
Скачивайте и начинайте экономить время и силы для решения более важных задач!