Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Обратный порядок слов в ячейке - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Обратный порядок слов в ячейке (Формулы/Formulas)
Обратный порядок слов в ячейке
disub Дата: Воскресенье, 31.01.2016, 12:29 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Доброго времени суток! Подскажите каким образом можно сделать обратный порядок слов в ячейке. Пример прилагаю.
К сообщению приложен файл: 7903981.xls (34.0 Kb)
 
Ответить
СообщениеДоброго времени суток! Подскажите каким образом можно сделать обратный порядок слов в ячейке. Пример прилагаю.

Автор - disub
Дата добавления - 31.01.2016 в 12:29
Manyasha Дата: Воскресенье, 31.01.2016, 12:33 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
disub, не могу открыть Ваш файл - пишет, что поврежден.


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеdisub, не могу открыть Ваш файл - пишет, что поврежден.

Автор - Manyasha
Дата добавления - 31.01.2016 в 12:33
disub Дата: Воскресенье, 31.01.2016, 12:38 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Manyasha, перезалил
К сообщению приложен файл: __1.xls (26.0 Kb)
 
Ответить
СообщениеManyasha, перезалил

Автор - disub
Дата добавления - 31.01.2016 в 12:38
Manyasha Дата: Воскресенье, 31.01.2016, 12:48 | Сообщение № 4
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
хм...у меня все равно не открывается. Скачайте свой файл, у Вас открывается?
По теме, UDF подойдет?[vba]
Код
Function строка_наоборот(cell As Range)
    Dim arr, res$, i&
    arr = Split(cell, " ")
    For i = UBound(arr) To 0 Step -1
        res = res & arr(i) & " "
    Next i
    строка_наоборот = Mid(res, 1, Len(res) - 1)
End Function
[/vba]
К сообщению приложен файл: qwer123.xls (31.0 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениехм...у меня все равно не открывается. Скачайте свой файл, у Вас открывается?
По теме, UDF подойдет?[vba]
Код
Function строка_наоборот(cell As Range)
    Dim arr, res$, i&
    arr = Split(cell, " ")
    For i = UBound(arr) To 0 Step -1
        res = res & arr(i) & " "
    Next i
    строка_наоборот = Mid(res, 1, Len(res) - 1)
End Function
[/vba]

Автор - Manyasha
Дата добавления - 31.01.2016 в 12:48
CREATER Дата: Воскресенье, 31.01.2016, 12:52 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
хм...у меня все равно не открывается. Скачайте свой файл, у Вас открывается?

У меня открываются все файлы. У него разделитель только не пробел, а дефис.


Творим, что хотим!
 
Ответить
Сообщение
хм...у меня все равно не открывается. Скачайте свой файл, у Вас открывается?

У меня открываются все файлы. У него разделитель только не пробел, а дефис.

Автор - CREATER
Дата добавления - 31.01.2016 в 12:52
Manyasha Дата: Воскресенье, 31.01.2016, 12:55 | Сообщение № 6
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
не пробел, а дефис
[vba]
Код
Function строка_наоборот(cell As Range)
Dim arr, res$, i&
arr = Split(cell, " ")
For i = UBound(arr) To 0 Step -1
res = res & arr(i) & "-"'Вот здесь менять разделитель
Next i
строка_наоборот = Mid(res, 1, Len(res) - 1)
End Function
[/vba]
[offtop]
У меня открываются
значит у меня что-то с офисом :( [/offtop]


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщение
не пробел, а дефис
[vba]
Код
Function строка_наоборот(cell As Range)
Dim arr, res$, i&
arr = Split(cell, " ")
For i = UBound(arr) To 0 Step -1
res = res & arr(i) & "-"'Вот здесь менять разделитель
Next i
строка_наоборот = Mid(res, 1, Len(res) - 1)
End Function
[/vba]
[offtop]
У меня открываются
значит у меня что-то с офисом :( [/offtop]

Автор - Manyasha
Дата добавления - 31.01.2016 в 12:55
disub Дата: Воскресенье, 31.01.2016, 14:07 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Manyasha, Спасибо, UDF подойдет, но прописываю данную функцию, и порядок слов нарушается, то есть, кроме дефисов есть еще и пробелы, например у меня в файле названия городов -Черный Яр- и получается при применении функции Яр Черный, а так не должно быть т. д. В этом случае как должна выглядеть функция?
 
Ответить
СообщениеManyasha, Спасибо, UDF подойдет, но прописываю данную функцию, и порядок слов нарушается, то есть, кроме дефисов есть еще и пробелы, например у меня в файле названия городов -Черный Яр- и получается при применении функции Яр Черный, а так не должно быть т. д. В этом случае как должна выглядеть функция?

Автор - disub
Дата добавления - 31.01.2016 в 14:07
krosav4ig Дата: Воскресенье, 31.01.2016, 14:18 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
disub, Марина (Manyasha) просто забыла еще в 1 строке поменять разделитель[vba]
Код
Function строка_наоборот(cell As Range)
Dim arr, res$, i&
arr = Split(cell, "-")'Вот тут тоже менять разделитель
For i = UBound(arr) To 0 Step -1
res = res & arr(i) & "-"'Вот здесь менять разделитель
Next i
строка_наоборот = Mid(res, 1, Len(res) - 1)
End Function
[/vba]

еще 1 вариант UDF
[vba]
Код
Function ReverseWords$(s$, Optional delim$ = "-")
    Dim arr$(), i&
    arr = Split(StrReverse(s), delim)
    For i = 0 To UBound(arr)
        arr(i) = StrReverse(arr(i))
    Next
    ReverseWords = Join(arr, delim)
End Function
[/vba]
К сообщению приложен файл: 2687109.xls (41.5 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеdisub, Марина (Manyasha) просто забыла еще в 1 строке поменять разделитель[vba]
Код
Function строка_наоборот(cell As Range)
Dim arr, res$, i&
arr = Split(cell, "-")'Вот тут тоже менять разделитель
For i = UBound(arr) To 0 Step -1
res = res & arr(i) & "-"'Вот здесь менять разделитель
Next i
строка_наоборот = Mid(res, 1, Len(res) - 1)
End Function
[/vba]

еще 1 вариант UDF
[vba]
Код
Function ReverseWords$(s$, Optional delim$ = "-")
    Dim arr$(), i&
    arr = Split(StrReverse(s), delim)
    For i = 0 To UBound(arr)
        arr(i) = StrReverse(arr(i))
    Next
    ReverseWords = Join(arr, delim)
End Function
[/vba]

Автор - krosav4ig
Дата добавления - 31.01.2016 в 14:18
disub Дата: Воскресенье, 31.01.2016, 14:42 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
krosav4ig, Спасибо за помощь!
 
Ответить
Сообщениеkrosav4ig, Спасибо за помощь!

Автор - disub
Дата добавления - 31.01.2016 в 14:42
disub Дата: Вторник, 02.02.2016, 15:21 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
krosav4ig, Доброго времени суток! В продолжении этой темы. Подскажите, можно ли избежать изменения порядка слов в названии города, который имеет дефис, например, получается при применении этой функции название Спас-Клепики переходит в Клепики-Спас, а такого не должно быть.


Сообщение отредактировал disub - Вторник, 02.02.2016, 15:22
 
Ответить
Сообщениеkrosav4ig, Доброго времени суток! В продолжении этой темы. Подскажите, можно ли избежать изменения порядка слов в названии города, который имеет дефис, например, получается при применении этой функции название Спас-Клепики переходит в Клепики-Спас, а такого не должно быть.

Автор - disub
Дата добавления - 02.02.2016 в 15:21
Manyasha Дата: Вторник, 02.02.2016, 21:25 | Сообщение № 11
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
disub, для этого придется задать список городов с дефисом. У меня в файле смотрите имя "города" (ctrl + f3).
На основе кода от krosav4ig:
[vba]
Код
Function ReverseWords$(s$, Optional delim$ = "-")
    Dim arr$(), i&
    For Each cell In Range("города")
        s = Replace(s, cell.Value, Replace(cell.Value, delim, "|||"))
    Next cell
    arr = Split(StrReverse(s), delim)
    For i = 0 To UBound(arr)
        arr(i) = StrReverse(arr(i))
    Next
    ReverseWords = Replace(Join(arr, delim), "|||", "-")
End Function
[/vba]
К сообщению приложен файл: 2687109-1.xls (44.5 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеdisub, для этого придется задать список городов с дефисом. У меня в файле смотрите имя "города" (ctrl + f3).
На основе кода от krosav4ig:
[vba]
Код
Function ReverseWords$(s$, Optional delim$ = "-")
    Dim arr$(), i&
    For Each cell In Range("города")
        s = Replace(s, cell.Value, Replace(cell.Value, delim, "|||"))
    Next cell
    arr = Split(StrReverse(s), delim)
    For i = 0 To UBound(arr)
        arr(i) = StrReverse(arr(i))
    Next
    ReverseWords = Replace(Join(arr, delim), "|||", "-")
End Function
[/vba]

Автор - Manyasha
Дата добавления - 02.02.2016 в 21:25
disub Дата: Среда, 03.02.2016, 10:28 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Manyasha, огромное спасибо!!!!
 
Ответить
СообщениеManyasha, огромное спасибо!!!!

Автор - disub
Дата добавления - 03.02.2016 в 10:28
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Обратный порядок слов в ячейке (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!