Excel, разделить имя с более чем одним словом имени или фамилии или отчества - PullRequest
0 голосов
/ 19 сентября 2019

Как можно разделить last name middle initial и first name

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

Mendoza, John Lloyd Dela Cruz
Torres, Michael Pineda

Как я могу разделить это, если у меня есть различное количество слов в столбце?и получить только первую букву для middle name?Это возможно?Если нет, вы можете предложить мне решение.У меня много данных

Буду признателен за любую помощь.

1 Ответ

1 голос
/ 19 сентября 2019

Ваш вопрос почти идентичен этому вопросу: извлекает имена в excel , за исключением того, что вы хотите вернуть только инициал для второго имени.

В результате мой следующий ответ довольнопочти так же, как тот, который я дал на вышеупомянутый вопрос, за исключением добавления небольшого поворота для поиска инициала для второго имени.

Примечание: Метод 1 будет работать в случае, если имясодержит только одно слово;Метод 2 будет работать, только если имя и фамилия - это одно слово.

Solution

Метод1 Использование функций LEFT + RIGHT + MID + FIND

Имя: =MID(A2,FIND(",",A2)+2,FIND(" ",A2,FIND(" ",A2)+1)-FIND(",",A2)-2)

Отчество: =LEFT(RIGHT(A2,LEN(A2)-FIND(" ",A2,FIND(" ",A2)+1)),1)

Фамилия: =LEFT(A2,FIND(",",A2)-1)

Логика для поиска Имя состоит в том, чтобы найти позицию ,(space) и второе (space) и вернуть символы между ними.Логика для Отчество состоит в том, чтобы найти второе (space) и вернуть все, что находится справа.

Метод 2 Использование функций FILTERXML + SUBSTITUTE

Имя: =FILTERXML("<data><a>"&SUBSTITUTE(SUBSTITUTE(A7,",","")," ","</a><a>")&"</a></data>","/data/a[2]")

Отчество: =LEFT(FILTERXML("<data><a>"&SUBSTITUTE(SUBSTITUTE(A7,",","")," ","</a><a>")&"</a></data>","/data/a[3]"),1)

Фамилия: =FILTERXML("<data><a>"&SUBSTITUTE(SUBSTITUTE(A7,",","")," ","</a><a>")&"</a></data>","/data/a[1]")

Логика заключается в использовании ЗАМЕНА для преобразования полного имени во что-то вроде следующего:

<data><a> Фамилия </a><a> Имя </a><a> Отчество </a></data>

Затем используйте FILTERXML для возврата нужного имени в соответствии с его порядком 1, 2 or 3 в скрипте XML.

Для логики этой формулы вы можете прочитать эту статью: Извлечь слова с помощьюFILTERXML .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...