Формула на Excel: Вземете фамилно име от име -

Съдържание

Обща формула

=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 първо, за да почистите нещата, след това да използвате формулата за синтактичен анализ.

Интересни статии...