Страницы: 1
RSS
Выделить из имени и отчества первые буквы
 
Добрый день!
Подскажите пожалуйста как можно решить такую задачу:

В ячейке А1 имеется значение Иванов Иван Иванович
Необходимо, чтобы в ячейке А2 получилось значение Иванов ИИ
 
Код
=ЛЕВСИМВ(A1;НАЙТИ(" ";A1;1)+1)&"."&ПСТР(A1;НАЙТИ(" ";A1;НАЙТИ(" ";A1;1)+1)+1;1)&"."
Изменено: skiv17 - 14.04.2018 00:39:22
 
Добрый. Еще через UDF:
Скрытый текст
Изменено: Пытливый - 12.04.2018 21:42:09
Кому решение нужно - тот пример и рисует.
 
Спасибо большое, всё получилось!!!
 
еще вариант функции в D1
Код
 Function yyy$(t$)
 Dim t1$, t2$, t3$
   With CreateObject("VBScript.RegExp"): .Global = True: .IgnoreCase = True
    .Pattern = "(?:[^а-яё]|^)[а-яё]+(?=[^а-яё]|$)": t3 = .Execute(t)(0): t2 = .Execute(t)(2): t1 = .Execute(t)(1)
    .Pattern = "[А-ЯЁ]":   yyy = t3 & Chr(32) & .Execute(t1)(0) & .Execute(t2)(0)
  End With
End Function
Изменено: кузя1972 - 14.04.2018 00:04:12
 
Пытливый а как в Вашей UDF добавить точки после инициалов? типа Семенов В.В.
 
Цитата
edkudin написал: добавить точки
Код
Function FIO(T As Range)
    FIO = Split(Trim(T), " ")(0) & " " & _
        Left(Split(T, " ")(1), 1) & "." & _
        Left(Split(T, " ")(2), 1) & "."
End Function
Согласие есть продукт при полном непротивлении сторон
 
Большое спасибо, работает
Еще вопрос- почему помещая эту UDF в личную книгу макросов, при последующем обращении к ней она называется не "FIO" а "PERSONAL.XLSB!FIO"
Страницы: 1
Наверх