„Excel“ formulė: gaukite pavardę iš vardo

Turinys

Bendroji formulė

=RIGHT(name,LEN(name)-FIND("*",SUBSTITUTE(name," ","*",LEN(name)-LEN(SUBSTITUTE(name," ","")))))

Santrauka

Jei jums reikia išgauti pavardę iš viso vardo, galite tai padaryti naudodami šią gana sudėtingą formulę, kurioje naudojamos kelios funkcijos. Bendrąja formulės forma (aukščiau) vardas yra visas vardas, tarpas skiriantis vardą nuo kitų vardo dalių.

Pavyzdyje aktyvioje langelyje yra ši formulė:

=RIGHT(B4,LEN(B4)-FIND("*",SUBSTITUTE(B4," ","*",LEN(B4)-LEN(SUBSTITUTE(B4," ","")))))

Paaiškinimas

Iš esmės ši formulė naudoja funkciją RIGHT, kad išgautų simbolius, prasidedančius iš dešinės. Kitos funkcijos, sudarančios sudėtingą šios formulės dalį, atlieka tik vieną dalyką: jos apskaičiuoja, kiek simbolių reikia išgauti.

Aukštame lygyje formulė paskutinę pavadinimo vietą pakeičia žvaigždute „*“ ir tada naudodama FIND nustato žvaigždutės vietą pavadinime. Padėtis naudojama norint išsiaiškinti, kiek simbolių išskleisti naudojant RIGHT.

Kaip funkcija pakeičia tik paskutinę tarpą? Tai yra protinga dalis.

Užsegimas, paaiškinimas tampa šiek tiek techninis.

Jie yra šios formulės raktai:

SUBSTITUTE(B4," ","*",LEN(B4)-LEN(SUBSTITUTE(B4," ","")))

Kuris iš tikrųjų pakeičia paskutinę vietą „*“.

SUBSTITUTE turi ketvirtą (neprivalomą) argumentą, nurodantį, kurį radimo teksto „egzempliorių“ reikėtų pakeisti. Jei šiam argumentui nieko nepateikiama, visi egzemplioriai pakeičiami. Tačiau jei, tarkime, pateikiamas skaičius 2, pakeičiama tik antroji instancija. Aukščiau pateiktame fragmente egzempliorius apskaičiuojamas naudojant antrąjį PAKEITIMĄ:

LEN(B4)-LEN(SUBSTITUTE(B4," ",""))

Čia vardo ilgis be tarpų atimamas iš tikrojo vardo ilgio. Jei pavadinime yra tik viena tarpas, jis sukuria 1. Jei yra du tarpai, rezultatas yra 2 ir t. T.

B4 pavyzdžio pavadinime pavadinime yra du tarpai, todėl gauname:

15 - 13 = 2

Ir du naudojami kaip egzemplioriaus numeryje:

SUBSTITUTE(B4," ","*",2)

kuris antrąją erdvę pakeičia „*“. Tada pavadinimas atrodo taip:

„Susan Ann * Chang“

Tada funkcija RASTI, kad išsiaiškintų, kur varde yra „*“:

FIND("*", "Susan Ann*Chang")

Rezultatas yra 10 (* yra 10-oje pozicijoje), kuris atimamas iš bendro vardo ilgio:

LEN(B4)-10

Kadangi vardas yra 15 simbolių, turime:

15–10 = 5

Skaičius 5 RIGHT naudojamas taip:

=RIGHT(B4,5)

Rezultatas yra „Chang“

Kaip matote, aukščiau reikia daug dirbti, norint apskaičiuoti tą paprastą 5!

Nenuoseklių erdvių tvarkymas

Papildomi tarpai sukels problemų dėl šios formulės. Vienas iš būdų yra iš pradžių panaudoti TRIM funkciją, kad išvalytumėte reikalus, tada naudokite analizavimo formulę.

Įdomios straipsniai...