Страницы: 1
RSS
Как получить второе слово с конца в ячейке?
 
Продолжаю работать над своей задачей, пользовался поиском, нашёл тут же замечательную тему, которая очень похожа на мою задачу.
Но мне надо получить второе слово с конца.
У меня есть ячейка ETIMAT 6 1p+N C63, формула должна вернуть 1p+N
Можно ли такое сделать?
 
Конечно можно, только не у всех есть
Цитата
igorasas написал:
меня есть ячейка ETIMAT 6 1p+N C63
 а без этого сложно
Цитата
igorasas написал:
формула должна вернуть 1p+N
Если автоматизировать бардак, то получится автоматизированный бардак.
 
=СЖПРОБЕЛЫ(ПРАВСИМВ(ПОДСТАВИТЬ(ЛЕВСИМВ(A1;ПОИСК("@";ПОДСТАВИТЬ(A1;" ";"@";ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;" ";""))))-1);" ";ПОВТОР(" ";100));100))
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
вариант функций, в D1 uuu
Код
 Function uuu$(t$)
    Dim O As Object
   With CreateObject("VBScript.RegExp"): .Pattern = "[\S]+": .Global = True : Set O=.Execute(t)
     uuu = O(O.Count - 2)
  End With
 End Function

Function vvv$(t$)
  vvv = StrReverse(Split(StrReverse(t), " ", 3)(1))
End Function
Изменено: кузя1972 - 15.04.2018 19:14:14
 
=СЖПРОБЕЛЫ(ЛЕВБ(ПРАВБ(ПОДСТАВИТЬ(A1;" ";ПОВТОР(" ";50));99);50))
UDF
Код
Function ToWord(sStr As String, Optional Delim As String = " ") As String
     ToWord = StrReverse(Split(StrReverse(Trim$(sStr)), Delim)(1))
End Function

P.S.
Не досмотрел, есь уже такая UDF. Но у меня с изменяемым разделителем. Пусть остается.
 
=TRIM(MID(SUBSTITUTE(" " & A2;" ";REPT(" ";LEN(A2)));(LEN(A2)-LEN(SUBSTITUTE(A2;" ";"")))*LEN(A2);2*LEN(A2)))
и попроще с надеждой что строка не слишком длинная=TRIM(MID(SUBSTITUTE(" " & A2;" ";REPT(" ";99));(LEN(A2)-LEN(SUBSTITUTE(A2;" ";"")))*99;2*99))

Хотя переворот от Victur снова превосходен.
Изменено: БМВ - 15.04.2018 20:04:25
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх