Co všechno umí tabulkový procesor: I textem je Excel živ

Ačkoli schopnosti tabulkových procesorů vybízejí spíše k vytváření tabulek s převahou číselných údajů, pro ně...


Ačkoli schopnosti tabulkových procesorů vybízejí spíše k vytváření tabulek s
převahou číselných údajů, pro něž jsou vybaveny bohatými analytickými nástroji,
najde se v řadě tabulek i pro text důstojnější úloha, než jsou nadpisy sloupců
a řádků či pouhé doplňující popisky. Různé evidence a seznamy mohou být právě
na textové položky bohaté a ani zápisem textového údaje do buňky nemusí jeho
využití končit. Nemá-li zrovna takovou podobu, jakou právě potřebujeme, můžeme
ho zpracovat pomocí textových funkcí. Popíšeme si je pro Excel 97, ale téměř
vše v této oblasti je platné též pro řadu jeho předchozích verzí.
Spojování textů
Základní operací je u textových řetězců zřejmě jejich spojování. To zvládne
obyčejný vzorec, když mezi jednotlivé texty uvedeme spojovací operátor &.
Jsou-li použité texty umístěny v buňkách, lze samozřejmě psát do vzorce jejich
adresy. Pokud uvádíme vlastní text přímo ve vzorci, musíme ho dát do uvozovek.
Příklad: výsledkem vzorce ="Windows"&"95" je Windows 95. Vzorec pro spojení
názvu klubu s jeho sídlem v buňce D2 na obrázku by mohl znít takto: =A2&" "&B2.
Mezi adresy A2 a B2 jsme ještě vložili mezeru (též v uvozovkách), aby se
objevila mezi názvem a sídlem. Ke slučování textů lze místo znaku & použít také
i funkci CONCATENATE, v tomto případě by zápis byl =CONCATENATE (A2;" ";B2).
U textů, zvláště jsou-li upraveny funkcemi, se může hodit funkce PROČISTIT,
která dbá o to, aby v nich nebyly nadbytečné mezery, tj. aby byla vždy jen
jedna mezera mezi slovy a žádná před a za textem. Použili jsme ji v naší
tabulce pro případ, že ve sloupci A bude chybět název klubu. V takovém případě
totiž výše uvedený slučovací vzorec vyprodukuje mezeru následovanou sídlem,
zatímco při použití vzorce =PROČISTIT(A5&" "&B5) se tato nechtěná mezera
nezobrazí. Také při importu textu z jiných typů souborů se mohou za určitých
okolností v buňkách objevit nadbytečné mezery, často ve větším počtu. Pak může
také přijít k užitku podobná funkce VYČISTIT, která však neodstraňuje mezery,
ale ostatní netisknutelné znaky, jako jsou po importu občas vídané čtverečky.
Separace části textu
Jindy máme opačnou potřebu: získat z textového údaje jeho určitou část. Např. z
celého jména chceme vybrat zvlášť jméno a příjmení, z meziměstských telefonních
čísel místní číslo bez předčíslí, v evidenci aut z SPZ zjistit okresy, nebo na
našem obrázku ze skóre "vyhmátnout" vstřelené branky, tedy hodnotu před
dvojtečkou ve sloupci C.
Posloužit si můžeme těmito funkcemi:
ZLEVA(text; počet_znaků)
ZPRAVA(text; počet_znaků)
ČÁST(text;od_pozice; počet_znaků)
Slouží k nalezení zadaného počtu znaků v určitém textu zleva, resp. zprava či v
jeho části od zadané pozice. Např. vzorec =ZLEVA("pivovar";4) dává pivo, vzorec
=ZPRAVA("topivo";4) má tentýž výsledek. Výsledkem výrazu ČÁST("červený Favorit
135LSe";9;7) je Favorit, tedy od devátého znaku sedm znaků. Pokud ve funkcích
ZLEVA a ZPRAVA nezadáte počet znaků, získáte jeden krajní znak.
Pro sloupec E by se nám tedy hodila funkce ZLEVA, ale ne tak docela. Počet
vstřelených branek může být tvořen různým počtem znaků. Za jisté můžeme
považovat jen to, že je za ním dvojtečka. Aby funkce ZLEVA vybírala právě tolik
znaků, kolik jich je před dvojtečkou, pomůžeme si ještě funkcí NAJÍT.
Výraz NAJÍT(co;kde; od_pozice) zjistí, na kolikáté pozici začíná výskyt jednoho
řetězce v jiném. Rozlišuje přitom malá a velká písmena. Zadáte-li třetí
argument, bude prohledávat až od určité pozice. NAJÍT("Praha";"vnitřní Praha")
má výsledek 9, jelikož Praha je obsažena v řetězci vnitřní Praha od deváté
pozice. Téměř stejná je funkce HLEDAT, až na to, že nerozlišuje malá a velká
písmena a v hledaném textu lze použít obvyklé náhradní znaky ? a *.
Zkombinováním dvou funkcí už najdeme vstřelené branky. V buň-ce E2 je vzorec
=ZLEVA(C2;NAJÍT(":";C2)-1). Formulka NAJÍT(":";C2)-1 zjistí pozici posledního
znaku před dvojtečkou v buňce C2, a právě tolik znaků zleva představuje hledaný
údaj.
S nalezením obdržených branek, tedy čísla za dvojtečkou, bychom si vypomohli
ještě funkcí DÉLKA(text), která vrací počet znaků zadaného textu včetně mezer,
např. DÉLKA("Můj text") činí 8. Celý zápis by pro skóre z buňky C2 byl
=ZPRAVA(C2;DÉLKA(C2)-NAJÍT(":";C2)), totiž tolik znaků zprava, kolik jich je od
dvojtečky do konce řetězce.
Nahrazování textů
Chceme-li nahradit určitý text jiným, můžete použít funkce NAHRADIT nebo
DOSADIT. Funkce DOSADIT má podobný účinek jako příkaz Úpravy, Nahradit. Její
základní syntaxe je DOSADIT(text;starý;nový), čímž se v zadaném textu nahradí
stará část novou, třeba ze vzorce =DOSADIT("Hrubý zisk";"zisk";"příjem") vzejde
Hrubý příjem. Záleží přitom na velikosti písmen. Nahrazuje všechny výskyty
starého textu, např. výraz =DOSADIT ("VÝR_Č_VOZU";"_";". ") dosadí místo všech
podtržítek v textu tečky s mezerami.
Funkce NAHRADIT ve tvaru NAHRADIT(text;od_pozice;počet_znaků;nový) také zamění
část textu za jiný, ale na základě pozice a počtu znaků, např.
=NAHRADIT("30/12/1998";7;2;"") nahradí devatenáctku v letopočtu "ničím", vyjde
tedy 30/12/98. I ona se může hodit k nahrazování nepatřičných znaků,
zavlečených do tabulky importem.
Pokud jsou v textových položkách nevhodné kombinace velkých a malých písmen,
jsou tu funkce MALÁ a VELKÁ, převádějící všechny znaky na malá, resp. velká
písmena, a VELKÁ2, která formátuje počáteční písmena slov na velká, zbytek na
malá písmena.
Další funkce
OPAKOVAT(text;počet) je obecný zápis pro zopakování textu zadaný počet-krát.
Např. =OPAKOVAT("Čau ";2) produkuje Čau Čau . Přínos této funkce je nečekaně v
grafické oblasti: opakováním znaku podle hodnoty v buňce lze totiž ilustrovat
její velikost, jako na obr. ve sloupci F, kde třeba vzorec v řádku 2
=OPAKOVAT("*";E2) znázorňuje hvězdičkami počet vstřelených branek.
Tím jsme prošli nejzajímavější textové funkce. Další umějí převádět mezi znaky
a jejich ANSI kódy (funkce ZNAK, KÓD), mezi textem a číselnými hodnotami (KČ,
ZAOKROUHLIT.NA. TEXT, HODNOTA.NA.TEXT, HODNOTA), brát text z buňky na dané
adrese (T), a posoudit, zda jsou dva textové řetězce STEJNÉ. Podrobnosti
zjistíte v nápovědě pod heslem "textové funkce".
Pokud jste funkcemi chtěli určité texty upravit a nemáte zájem vedle nich už v
tabulce původní texty uchovávat, můžete funkce trvale převést ve výsledné
hodnoty a buňky s původními texty odstranit. Jak převést buňky s funkcemi na
hodnoty? Označte je, zadejte příkaz Kopírovat a bezprostředně poté Vložit jinak
s volbou Hodnoty.
8 0122 / Maf









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.