Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Преобразование ИОФ в ФИО
 
Добрый Вечер!
Тема всем уже надоедливая как я понял и заезженная - Изменить порядок слов в ФИО, ИОФ, ФОИ и.т.д
У меня проблема есть список с ИОФ нужно преобразовать в ФИО взять третье слово и поставить его на первую позицию, сколько не про бывал не могу добиться данного действия. В прикрепленном примере привожу 6 примеров "Формул" но все они делают не то, что нужно(((
Прошу помощи от вас мастера excel)
Спасибо!
 
Известно ли изначально, где находится имя, отчество, фамилия?
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Владимир, Оно всегда находится в столбце A (в одной ячейке ИОФ), преобразовать надо в соседнем столбце для далнейше работы с этими данными)
Изменено: Dotodot500 - 28 Фев 2017 16:10:30
 
UDF
Код
Function FIO(cell As String) As String
  FIO = Split(cell, " ")(2) & " " & Split(cell, " ")(0) & " " & Split(cell, " ")(1)
End Function
 
Я имел ввиду другое. ИОФ - это истинно? Или может быть ФОИ, ОФИ и пр..
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
=ПСТР(A1;ПОИСК(СИМВОЛ(2);ПОДСТАВИТЬ(A1;" ";СИМВОЛ(2);2))+1;ДЛСТР(A1)) & " " &
ЛЕВСИМВ(A1;ПОИСК(СИМВОЛ(2);ПОДСТАВИТЬ(A1;" ";СИМВОЛ(2);2))-1)


PS. В формуле я сделал перенос на следующую строку для удобства (с помощью Alr+Enter).
 
Владимир, не совсем понимаю вас, но попробую ещё раз ответить) ИОФ истина - все записи в таком формате
 
еще вариант
Код
=СЖПРОБЕЛЫ(ПРАВСИМВ(ПОДСТАВИТЬ(A1;" ";ПОВТОР(" ";100));50)&" "&ЛЕВСИМВ(ПОДСТАВИТЬ(A1;" ";ПОВТОР(" ";100));200))
Лень двигатель прогресса, доказано!!!
 
Kuzmich, Karataev, Сергей, Спасибо огромное! Помогли!  :)
 
И та же формула (из поста 6), но с использованием имени (вкладка Главная - Диспетчер имен) (формула в "C1"):
=ПСТР(A1;поз+1;ДЛСТР(A1)) & " " & ЛЕВСИМВ(A1;поз-1)
 
добрый вечер,еще вариант функций uuu в B1 и vvv в C1
 
Код
Function uuu$(t$)
   With CreateObject("VBScript.RegExp"): .Global = True: .IgnoreCase = True
       .Pattern = "(?:[^а-яё]|^)[а-яё]+(?=[^а-яё]|$)"
    uuu = Trim(.Execute(t)(2) & Chr(32) & .Execute(t)(0) & Chr(32) & .Execute(t)(1))
    End With
End Function
Код
Function vvv$(t$)
   With CreateObject("VBScript.RegExp"): .Global = True: .IgnoreCase = True
       .Pattern = "([а-яё]+) ([а-яё]+) ([а-яё]+)"
    vvv = .Replace(t, "$3 $1 $2")
    End With
End Function
Изменено: sv2013 - 28 Фев 2017 17:53:12
Страницы: 1
Читают тему (гостей: 1)