Priimek in začetnice iz polnega imena - funkcija VBA. Kako izbrati ime in priimek iz niza v Excelu Kako narediti začetnice priimka v Excelu

Excel za Office 365 Excel za Office 365 za Mac Excel 2019 Excel 2016 Excel 2019 za Mac Excel 2013 Excel 2010 Excel 2007 Excel 2016 za Mac Excel za Mac 2011 Excel Online Excel za iPad Excel za iPhone Excel za tablične računalnike Android Excel za telefone Android Excel Mobile Excel Starter 2010 Manj

Recimo, da želite ustvariti en popolnoma kvalificiran stolpec imena tako, da združite dva druga stolpca, ime in priimek. Če želite združiti imena in priimke, uporabite funkcijo CONCATENATE ali operator ampersand (&).

Pomembno: To funkcijo v programih Excel 2016Excel Mobile in Excel Online je nadomestila funkcija UNION. Čeprav je funkcija CONCATENATE še vedno na voljo za združljivost s prejšnjimi različicami, je treba od zdaj naprej uporabljati COMBINES. To je zato, ker CONCATENATE morda ne bo na voljo v prihodnjih različicah Excela.

Primer

Kopirajte naslednje na prazen list papirja.

Priimek

Vladimir

Formula

Opis (rezultat)

Združuje zgornja imena, ločena s presledkom (Belova)

Združuje zgornja imena in jih ločuje s podpičjem (Novikov, Pavel)

ZDRUŽI (A2;" ";B2)

Seznam v Excelu je mogoče popraviti s pomočjo formul - zamenjati imena in priimke z začetnicami, združiti besede iz celic v stavek, vstaviti besede v Excelov seznam.
Imamo tabelo, kjer so v različnih celicah zapisani priimek, ime in patronim. Postaviti jih moramo v eno celico. Ročno prepisovanje seznama traja dolgo. Toda v tabeli Excel obstaja posebna funkcija. Obstajata dve možnosti.
Prva možnost.
Imamo ta seznam.
V celico D1 moramo napisati svoje polno ime v enem stavku. V to celico (D1) zapišemo formulo. Kliknite na celico (naj bo aktivna).
Pojdite na zavihek »Formule« v razdelku »Knjižnica funkcij«, izberite »Besedilo« in izberite funkcijo »CONCATENATE«. V oknu, ki se prikaže, navedemo naslove celic, ki jih moramo združiti v en stavek. Izkazalo se je takole.

Polno ime je zapisano brez presledkov. Da bi to popravili, je treba formulo izboljšati. Med naslovi celic za podpičjem napišite »«. Rezultat je naslednja formula.
=ZDRUŽI(A1;" ";B1;" ";C1)
Izkazalo se je takole.
Zdaj kopirajte formulo navzdol po stolpcu.
Druga možnost.
Namesto CONCATENATE lahko preprosto pritisnete gumb & (&). Formula bo videti takole.
=A2&B2&C1
Rezultat je enak kot v prvi možnosti. Če med besedami ni presledkov, vstavite presledek (" ").
Formula bo takšna. =A2&" "&B2&" "&C2
Kombinirate lahko ne le besede, ampak tudi številke. Iz podatkov celice v Excelu lahko naredite stavek.
Formule lahko nastavite v zahtevanih celicah obrazca. Na primer, imamo seznam strank z naslovi.

Dati moramo predlog. V celico zapišemo formulo.
=A2&" "&B2&" "&C2&" "&"živi na"&" "&"g."&" "&D2&" "&"st."&" "&E2&" "&"d."&" "&F2& " ."
To je bil predlog.

To načelo uporabljamo pri pripravi morebitnih predlogov.
Če je besedilo v celicah že napisano, vendar moramo pred obstoječe besede vnesti dodatne besede, lahko to storimo s formulo. Imamo ta seznam.
Pred priimki moramo vstaviti besedo »Najemnik«. V celico novega stolpca zapišemo formulo.
= "Najemnik"&" "&A8
Kopirajte to formulo navzdol po stolpcu. Rezultat je tak seznam.
Prvi stolpec lahko skrijete ali kopirate vrednost novega stolpca brez formul, prvi stolpec in drugega s formulami pa lahko izbrišete.
Za drug način dodajanja besedila, številk, simbolov besedilu v celici glejte članek »Dodajanje besedila celicam z besedilom Excel«.
S pomočjo formul lahko pretvorite seznam, kjer so imena, srednji in priimki v celoti zapisani v seznam s priimkom in začetnicami. Na primer, celica pravi:
V naslednji stolpec zapišemo naslednjo formulo.
=ZDRUŽI(LEVO(PRESLED (A1),NAJDI(" ",PRESLED(A1),1)),PSTR(PRESLED(A1),NAJDI(" ",PRESLED(A1),1)+1,1);" ";PSTR(PRESLEDNICA(A1);NAJDI(" ";PRESLEDNICA(A1); NAJDI(" ";PRESLEDNICA(A1);1)+1)+1;1);."")
Zgodilo se je.
Če so med besedami dodatni presledki, jih lahko odstranite. Preberite več o tem v članku "Kako odstraniti odvečne presledke v Excelu". Z istimi metodami lahko odstranite presledke med številkami v formuli, ker Dodatni presledki lahko povzročijo napako pri izračunu ali pa formula ne bo štela.
Podatke v vrstici lahko premaknete iz zadnjih celic v prvo ali pa vrstico obrnete. Na primer, v celicah je zapisano: v prvi celici je Ivanov, v drugi - Maria. V prvo celico moramo napisati Marijo, v drugo Ivanovo. Kako to storiti hitro v veliki tabeli, glejte članek "".

Imel sem sto primerov, ko je bilo treba s seznama zaposlenih dobiti priimek ali ime. Hkrati je bil seznam sestavljen iz vsaj nekaj sto ljudi in zelo žalostno je bilo to narediti ročno. Dobro je, da ima Excel vsa potrebna orodja za optimizacijo tega procesa in rešitev težave v nekaj minutah. Excelove besedilne formule vam omogočajo reševanje podobnih problemov. Zdaj vam bom vse podrobno razložil na primeru več akterjev, ki jih je prijazno posredovala prva stran Googla.

Excelove besedilne formule, ki jih potrebujemo

Za rešitev te težave potrebujemo sam Excel in naslednje standardne besedilne funkcije:

  • ISKANJE - omogoča iskanje besedila ali pomena v besedilu
  • LENGTH - prešteje število znakov v celici z besedilom
  • DESNO - vrne določeno število znakov od konca besedila
  • Naš posebej pametni bralec je morda že uganil, kako rešiti našo težavo, vendar bom vseeno vsem korak za korakom razložil, kako bi to potreboval jaz :)

    Za rešitev našega problema potrebujemo:

  • Izračunajte dolžino besedila v polnem imenu s funkcijo LENGTH
  • S funkcijo ISKANJE poiščite številko znaka, s katerim se začne priimek
  • Dolžino priimka izračunajte kot razliko rezultatov 1. in 2. točke
  • Izpišite priimek s funkcijo RIGHT in dolžino priimka iz tretjega odstavka.
  • Sliši se kot akcijski načrt. Začnimo!

    Funkcija DLST

    Ta Excelova besedilna funkcija je ena najpreprostejših. Samo določiti mora celico in podati število znakov v njej. Na primeru se lahko prepričate sami:


    funkcija ISKANJE

    Funkcija iskanja namesto nas poišče številko znaka ali besedila. Glede na to, da se vsi priimki začnejo z različnimi črkami, bomo iskali presledek pred srednjim imenom in priimkom. Naslednji znak za tem bo začetek patronimika ali priimka.

    Pomembno je upoštevati, da je presledek ali iskalno besedilo v tej funkciji zapisano v narekovajih. Zlasti bo nekaj takega =SEARCH(" "; 'celica z besedilom').

    Glede na to, da je priimek za drugim presledkom, bomo uporabili dve iskanji, eno od njiju bo ugnezdeno za iskanje prvega presledka, kot v spodnjem primeru:


    funkcija RIGHT

    Vsi smo pripravljeni izluščiti priimek iz polnega imena in rešiti svoj problem. Da bi to naredili, določimo celico s polnim imenom igralca v argumentih funkcije in izračunamo število znakov kot razliko med prvim in drugim dejanjem. Kot rezultat smo sestavili rešitev.

    Funkcija kot parameter prejme besedilni niz v obliki "Priimek, ime in patronim", ter odreže ime in patronim, pusti samo začetnice - v obliki "Priimek I. O."

    To funkcijo lahko uporabite kot UDF (uporabniško definirana funkcija) v celicah Excelovega delovnega lista.
    (glej primer v prilogi)

    Opis funkcij funkcije - na forumu: programmersforum.ru/showpost.php?p=757147&postcount=6

    Natančnega formalnega algoritma za razdelitev polnega imena na dele ni.
    Nemogoče je formalno ločiti priimek od imena brez poznavanja genealogije in jezika maternega govorca. Uporabite lahko le različne hevristike.

    Poleg tega so različni organi (v različnih obdobjih) imeli različne poglede na to, kako bi morale biti začetnice v določenem primeru.
    Eno so dokumenti zvezne službe za migracije, drugo so registrarji centralne banke, drugo pa je priprava komercialnih dokumentov.
    Tako nekatere storitve zahtevajo, da se 2-3 kompleksna kratka imena jugovzhodne Azije ne skrajšajo. Nekateri pa ne.

    Da, z vprašanjem, kje naj bodo začetnice na desni ali levi - ni nedvoumnosti. Ne, seveda obstajajo pravila ruskega jezika ... Vendar prevladujejo pravila poslovnega prometa ene ali druge strukture (ali preprosto, kot hoče leva zadnja noga uradnika, ki sprejema dokumente) ...

    Mnogi imajo morda vprašanje: od kod prihaja ves ta živalski vrt in zakaj je vse to potrebno? Vsi ti Don Pedro so praviloma tuji državljani, ki prejmejo ruski potni list na podlagi dokumentov, ki so bili predhodno izdani zunaj jurisdikcije Ruske federacije. Pravne situacije so različne. In pogosto je v nov ruski potni list vpisana transliteracija v cirilico iz maternega jezika.
    Ruski potni listi z -ogly in -kyzy se zdaj izdajajo v Tatarstanu. Srečal sem stranko, katere ime po potnem listu iz leta 2007 je bilo Mustafa Oleg ogly ...

    Možnost Primerjaj besedilo Začetnice javne funkcije (s kot niz, neobvezno ToLeft kot logično = napačno) Dim sv kot različica, sФ kot niz, sИ kot niz, sО kot niz, i kot dolgo, k kot dolgo Application.Volatile True If InStr(s , ".") > 0 Ali Len(Trim$(s)) = 0 Then Initials = s "Initials specificed explicitno or prazen niz Exit Function End If "Normalize input string s = Replace(Application.Trim(s), Chr( 30), "-" ) s = Zamenjaj(Zamenjaj(e, " -" , "-") , "- " , "-") s = Zamenjaj(Zamenjaj(e, "" " , """) , " "" , """ ) " O "Henry Alexander; O" Henry Alexander; N" Homo; D" Treville sv = Split(s) sИ = vbNullString: sО = vbNullString: sФ = vbNullString i = UBound (sv) Če i< 1 Then Инициалы = s: Exit Function Select Case sv(i) Case "оглы" , "кызы" , "заде" "бей, бек, заде, зуль, ибн, кызы, оглы, оль, паша, уль, хан, шах, эд, эль i = i - 1 sО = UCase(Left$(sv(i), 1)) & "." i = i - 1 Case "паша" , "хан" , "шах" , "шейх" i = i - 1 Case Else Select Case Right$(sv(i), 3) Case "вич" , "вна" If i >= 2 Nato "Standardna končnica za ruska patronimika sО = СropWord(sv(i)) Else "Vrsta imena Bosan Slavich sИ = СropWord(sv(i)): sФ = sv(0) End If i = i - 1 Case Else k = InStr(sv(i), "-" ) If k > 0 Then Select Case Mid$(sv(i), k + 1) Case "ogly", "kyzy", "zade", "ugli", "uul " , "ool" "Različica tipa nasab "-ogly" in "-zade" Mahmud-ogly sО = UCase(Left$(sv(i), 1)) & "." i = i - 1 Če je i = 0 Nato sИ = sО sО = vbNullString End If End Izberite ElseIf i > 2 Nato izberite Case sv(i - 1) Case "ibn", "ben", "bin" sО = UCase(Left$(sv(i), 1) ) & "." " Usertal Alisher bin Suleiman i = i - 2 End Select Else " Ben Eduard sИ = UCase(Left$(sv(i), 1)) If Len(sv(i)) > 1 Then sИ = sИ & " ." i = i - 1 End If End Select End Select Select Case sv(0) Case "de" , "del" , "dos" , "sept" , "van" , "von" , "tsu" If i > = 2 Potem je sФ = sv(0) & " " & StrConv(sv(1), vbProperCase) sИ = СropWord(sv(2)) Else "De Nikolai Če Len(sИ) > 0 Potem je sФ = sv(0 ) & " " & StrConv(sv(1), vbProperCase) Else sФ = StrConv(sv(0), vbProperCase): sИ = СropWord(sv(1)) End If End If Case Else If Len(sФ) = 0 Then "More ni definiral priimka sФ = StrConv(sv(0), vbProperCase) If Len(sИ) = 0 Then sИ = СropWord(sv(1)) End If End Select If ToLeft Then Initials = sИ & sО & " " & sФ Else Začetnice = sФ & " " & sИ & sО Končna funkcija Javna funkcija СropWord(s As Variant ) As String If Len(s) = 1 Then СropWord = s Else ss$ = UCase(Left$(s, 1) ) & "." : k = InStr(s, "-") Če je k > 0 Potem je ss$ = ss$ & "-" & Mid$(s, k + 1, 1) & "." CropWord = ss$ Funkcija End If End

    Velikost priloge

    Pogosto pri sestavljanju pogodbe, računa, poslovnega predloga ali drugega dokumenta delamo s priimkom, imenom in patronimom stranke. Včasih je treba v besedilu dokumenta ločiti polno ime in pridobiti samo ime, včasih je treba narediti stolpec s podpisnikom, pri čemer pustite priimek in začetnice.

    Seveda lahko napišete formulo, ki bo izluščila potrebne podatke iz vašega polnega imena, vendar bo tudi izkušena oseba za to potrebovala 5-7 minut. Kaj pa, če ne poznate lokacije priimka v besedilu vnaprej? Veliko lažje in bolj priročno je uporabljati že pripravljene funkcije iz dodatka VBA-Excel.

    Poiščite priimek v polnem imenu

    Po namestitvi dodatka bo na voljo nova funkcija = PRIIMEK(POLNO IME), kjer

    • Polno ime – besedilo ali povezava do celice, ki vsebuje polno ime

    Namen te funkcije je, da iz celice izvleče samo priimek. Poleg tega ji vrstni red ni pomemben. Priimek je lahko na začetku, na koncu ali na sredini besedila.

    Poiščite ime v polnem imenu

    Podobna funkcija za ime =NAME(polno ime) . Izvleče ime iz besedila s polnim imenom, ne glede na to, kje se nahaja.

    V polnem imenu poiščite srednje ime

    Zadnja funkcija v tem nizu je funkcija =PATERNICAL(POLNO IME) za ekstrahiranje srednjega imena.

    Primeri dela s polnim imenom v Excelu Prikažite priimek in začetnice

    Ena od pogostih nalog pri sestavljanju dokumentov je pretvorba besedila oblike Priimek Ime Patronim v besedilo Priimek I. O. Rešite ga lahko z naslednjo formulo:

    PRIIMEK(A1)&" "&LEVO(IME(A1))&". "&LEVO(IME(A1))&"."

    Je nekoliko dolg, a verjemite, da bi bil veliko krajši in preglednejši, če ne bi uporabljali funkcij iz dodatka.

    Še en plus je, da nam mesto priimka v besedilu ni pomembno, funkcija bo vse določila samodejno.