Sodelovanje oseb, ki rade delajo sezname v wordu, s tistimi, ki raje delaje sezname v excelu je lahko tudi zabavno in predvsem povod za nastanek takega prispevka. Povod je bil zelo bizaren in predvsem mu je botrovala velika lenoba avtorja (sem že omenil, da je lenoba gibalo napredka?). Bilo je približno tako. Nekdo je naredil lično oštevilčen seznam oseb, ki naj bi prejele pošto. Seveda se avtorju ni ljubilo brisati številk, še manj se mu je ljubilo uporabljati kombinacijo tipk ctrl+h. Zato je seveda izkoristil excelovi funkciji =LEFT() in RIGHT(), ter še nekater druge.
Poglejmo si torej seznam oseb. Zarad varstva osebnih podatkov so imena oseb narejena z generatorjem imen (Fantasy Name Generator). Z dodanimi zaporednimi številkami (1., 2.,…) je seznam pripravljen na seciranje.
Iz tega seznama je potrebno zaporedne številke prepisati v stolpec B, imena in priimke v stolpec C. Glede na to, da so podatki lepo urejeni in ločeni s presledki, bi lahko uporabili ukaz Podatki, Besedilo v stolpce. Toda to bi zahtevalo več dela, ker nimajo vse osebe samo enega imena oziroma priimka. Zato bomo raje uporabili funkcij =LEFT(), RIGHT(), FIND(), LEN() in TRIM().
Načeloma se že iz imena funkcije ugotovi kaj počne, toda za vsak slučaj kratka razlaga:
- =LEFT(text; [num_chars]) vrne določeno število znakov od začetka besedilnega niza.
- =RIGHT(text; [num_chars]) vrne določeno število od konca besedilnega niza.
- =FIND(find_text; within_text; [start_num]) vrne začetni položaj besedilnega niza v drugem besedilnem nizu.
- =LEN(text) vrne število znakov v besedilnem nizu.
- =TRIM(text) z besedilnega niza odstrani vse presledke, razen enojnih presledkov med besedami.
Najprej rešitvi za stolpec B, kjer želimo samo zaporedne številke. Lahko preprosto v celico B1 vnesemo 1., v B2 2., označimo obe celici in dvokliknemo na kvadratek, ki se pojavi v spodnjem desnem vogalu. Stolpec se bo sam napolnil z zaporednimi številkami in delo je končan. Drugi pristop je kombiniranje različnih funkcij:
=LEFT(A1;FIND(“.”;A1))
Najprej s FIND v stolpcu A poiščemo “.”. Vrnjeno dobimo začetni položaj pike. Nato funkcija LEFT v istem besedilnem nizu vrne vse znake od začetka do “.”. S tako rešitvijo se izognemo možnim napakam, ki se pojavijo pri ročnem vnosu zaporednih številk.
Sledi še rešitev za stolpec C, ki je malce bolj komplicirana, ker ima lahko vsaka oseba dve imeni in dva priimka. Zopet bomo uporabili kombinacijo različnih funkcij:
=TRIM(RIGHT(A1;LEN(A1)-FIND(“.”;A1)))
Primer je podoben tistemu iz prejšnjega odstavka, le nekaj malenkosti je dodanih. S funkcijo LEN preštejemo število znakov v besedilnem nizu, nato s FIND poiščemo pozicijo “.” v istem nizu. Ker bomo uporabili RIGHT od dolžine celotnega niza odštejemo mesta pred “.”. Dodan je še TRIM, ker je med “.” in imenom lahko presledek, ki ga s to funkcijo pobrišemo oziroma z njim pobrišemo vse presledke na začetku in na koncu besedilnega niza ter vse podvojene presledke.
Sedaj moramo samo še označiti celici B1 in C1 ter dvoklikniti na kvadratek v spodnjem desnem robu.
Primer: v Celici C2 bi moral dobiti podatek ki je levo od prve pike
Celica B2 vsebuje podatke: http://WWW.XXX.YY-CCC.CA.
=LEFT(B2;FIND(“.”;B2))
pušča piko za prvo besedo WWW
Torej rezultat je WWW. (s piko, kar pa ne bi smelo biti)
Ne deluje tudi TRIM:
=TRIM(LEFT(B2;FIND(“.”;B2)))
V mojem primeru je “.” poleg številke, ker gre za števnike (1., 2. itd).
V tvojem primeru nočeš pike, torej je =LEFT(B2;FIND(“.”;B2)-1). Funkcija =FIND() začne “šteti” z 1, torej je “.” na 11. mestu. Funkcija vrne vrednost “11”, od tega odštejemo 1 in dobimo 10. Funckija =LEFT sedaj “izgleda” tako =LEFT(B2;10) in v celici C2 vrne “http://WWW”.
Boljše?