MS EXCEL. Преобразование строки с полным ФИО в Фамилия И.О
Необходимо в таблице MS Excel преобразовать колонку с полным ФИО вида Фамилия Имя Отчество к виду Фамилия И.О.. Вручную – не вариант, так как записей в колонке несколько тысяч.
Есть ли какие-то инструменты в Excel для такого действия, например, преобразовать по заданному шаблону данные исходного столбца в новые данные и поместить их в новый столбец?
Похоже, формулы exel, связанные с текстом громоздки для решения, и напрашивается применение VBA скрипта, но синтаксис я его не знаю совсем... Хотя, алгоритм прост - разбирается строка полного ФИО на список слов, затем формируется новая строка из преобразованных элементов этого списка и сохраняется в новой ячейке. По идее, нужно добавить возможность указания в качестве параметров начальную ячейку исходного и результирующего столбца.
Ответы (3 шт):
Довольно непростая формула, суть в том, что надо разбивать строку по символам. Например брать пробел, затем брать нужную часть (левую, середину, правую) и всё это затем конкатенировать с помощью &" "&, в имени и отчестве надо брать только первый символ с помощью LEFT.
В данном примере предполагается что в ячейке A2 лежит имя вида "Иванов Иван Иванович"
=LEFT(A2; SEARCH(" ";A2;1)-1)&" "&LEFT(MID(A2;SEARCH(" ";A2) + 1; SEARCH(" "; A2;SEARCH(" ";A2) + 1) - SEARCH(" ";A2) -1);1)&". "&LEFT(RIGHT(A2; LEN(A2) - SEARCH(" "; A2;SEARCH(" ";A2;1)+1));1)&"."
=ЛЕВБ(A2;ПОИСК(" ";A2)+1)&"."&ЛЕВБ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A2;" ";ПОВТОР(" ";50));99;150)))&"."
=ЛЕВБ(A2;ПОИСК(" ";A2)+1)&"."&ПСТР(A2;ПОИСК("/";ПОДСТАВИТЬ(A2;" ";"/";2))+1;1)&"."
UDF с возможностью выбора параметров. Application.Trim - перед обработкой текст очищается от лишних пробелов
Function fFIO_(sTxt As String, Optional sSeparator As String = " ", Optional sSymbol As String = ".")
Dim sTmp As String
sTxt = Application.Trim$(sTxt)
sTmp = Left$(sTxt, InStr(sTxt, sSeparator) + 1) & sSymbol
fFIO_ = sTmp & Left$(Split(sTxt, sSeparator)(2), 1) & sSymbol
End Function
В ячейку:
=fFIO_(A2;" ";".")
Как раз вручную - самый правильный вариант, так как записей в колонке несколько тысяч.
Этот инструмент называется "Мгновенное запронение" (Flash Fill)
