Неморфный способ решения этой же проблемы состоит в том, чтобы разбить 3 имени как формулу и объединить их. Я обычно использовал бы менеджер имен для этого, но также покажу расширенную формулу, которая не использует управление именами. (Все эти примеры будут использовать ячейку a1 как имеющую имя Name (пробел) Name (пробел) Name name Шаг 1 получит First name.
Fname =+LEFT(Лист1!А1, НАЙТИ ("", Лист1!A1)) Это ищет первый пробел и возвращает все влево
Lname =+RIGHT (Лист1!A1, LEN (Лист1!A1) -FIND ("", Sheet1!A1,1+LEN (Fname))) Возвращает фамилию. Нам нужно имя и фамилия, чтобы заключить в скобки ответ. Это предполагает, что есть только 2 пробела, и ищет 2-й пробел, выполняя поиск, который начинается после первого пробела.
Mname = MID (Лист1!A1,1+LEN (Fname), LEN (Лист1!A1) -LEN (Fname) -LEN (Lname)) Возвращает полное отчество, используя Fname и Lname в скобках.
положить все это вместе
- =(Fname & LEFT(MName, 1) & "." & Lname) "." После левого (mname, 1) может быть "", если не требуется точка.
В одной строке без использования имен
- = ВЛЕВО (А1, НАЙТИ ("", А1))& ВЛЕВО (СРЕДНИЙ (А1, НАЙТИ ("", А1)+1,1))& "." & ВПРАВО (А1, LEN (А1)-FIND ("", A1,1+FIND ("", A1)))
Проблемы с этим подходом,
- Чувствительный к проблемам структуры данных, поместите перед собой iferror с "Ошибка формата имени", например:
- =+IFERROR(Fname & LEFT(MName, 1)& "" & Lname, "Ошибка формата имени")
Также может понадобиться сделать замену, чтобы заменить двойные пробелы одиночными пробелами.
- Aname = замена (a1, "", "")
Что может понадобиться в зависимости от того, насколько хорош ваш источник данных в точном соответствии с форматом.