![](https://cdn.wiki-base.com/2973009/excel_formula_get_last_name_from_name__2.png.webp)
Обща формула
=RIGHT(name,LEN(name)-FIND("*",SUBSTITUTE(name," ","*",LEN(name)-LEN(SUBSTITUTE(name," ","")))))
Обобщение
Ако трябва да извлечете фамилното име от пълно име, можете да го направите с тази доста сложна формула, която използва няколко функции. В общата форма на формулата (по-горе) name е пълно име, с интервал, разделящ първото име от другите части на името.
В примера активната клетка съдържа тази формула:
=RIGHT(B4,LEN(B4)-FIND("*",SUBSTITUTE(B4," ","*",LEN(B4)-LEN(SUBSTITUTE(B4," ","")))))
Обяснение
В основата си тази формула използва функцията НАДЯСНО за извличане на символи, започващи отдясно. Другите функции, които съставляват сложната част на тази формула, правят само едно: те изчисляват колко символа трябва да бъдат извлечени.
На високо ниво формулата заменя последното интервал в името със звездичка "*" и след това използва FIND, за да определи позицията на звездичката в името. Позицията се използва, за да се определи колко символа да се извлекат с НАДЯСНО.
Как функцията замества само последното интервал? Това е умната част.
Пристегнете се, обяснението става малко техническо.
Те са ключови за тази формула е този бит:
SUBSTITUTE(B4," ","*",LEN(B4)-LEN(SUBSTITUTE(B4," ","")))
Което прави действителната подмяна на последното интервал с "*".
SUBSTITUTE има четвърти (незадължителен) аргумент, който указва кой „екземпляр“ на текста за намиране трябва да бъде заменен. Ако нищо не е предоставено за този аргумент, всички екземпляри се заменят. Ако обаче, да речем, че числото 2 е предоставено, се заменя само втората инстанция. В фрагмента по-горе екземпляр се изчислява с помощта на втората ЗАМЕСТИТЕЛ:
LEN(B4)-LEN(SUBSTITUTE(B4," ",""))
Тук дължината на името без интервали се изважда от действителната дължина на името. Ако в името има само едно интервал, то се получава 1. Ако има две интервали, резултатът е 2 и т.н.
В примерното име в B4 има две интервали в името, така че получаваме:
15 - 13 = 2
И две се използва както в номера на екземпляра:
SUBSTITUTE(B4," ","*",2)
което заменя второто пространство с "*". Тогава името изглежда така:
"Сюзън Ан * Чанг"
След това функцията FIND поема, за да разбере къде е "*" в името:
FIND("*", "Susan Ann*Chang")
Резултатът е 10 (* е на 10-то място), което се изважда от общата дължина на името:
LEN(B4)-10
Тъй като името е 15 знака, имаме:
15-10 = 5
Числото 5 се използва НАДЯСНО така:
=RIGHT(B4,5)
Което води до "Чанг"
Както можете да видите, много работа е по-горе, за да се изчисли това просто 5!
Работа с несъвместими интервали
Излишните интервали ще създадат проблеми с тази формула. Едно от решенията е да използвате функцията TRIM първо, за да почистите нещата, след това да използвате формулата за синтактичен анализ.