V dnešním návodu si ukážeme, jak za pomoci funkce Najít a nahradit dostupné v nástrojích Office, tedy ve Wordu, Excelu, ale třeba i v Poznámkovém bloku nahradit libovolný obsah, který se nachází před nebo za vybraným symbolem nebo i více znaky.
Základem všeho je vhodné využití tzv. zástupných symbolů, které se v určité omezené míře vyskytují i v již zmíněném textovém procesoru MS Word.
Co určitě využijeme
hvězdička * = symbol pro nahrazení libovolného počtu znaků
otazník ? = symbol nahrazuje právě jeden libovolný (neurčený) znak
je menší < = znak označuje začátek slova, znaky se píší za něj
je větší > = zobáček označuje konec slova, znaky se píši před něj
složené závorky { } = zapíšeme-li do nich číslo, zastupují daný počet výskytů
hranaté závorky [ ] = uvedeme-li do hranatých závorek určité znaky, bude je vyhledávat
vykřičník [!] = negace, uvedeme-li do hranatých závorek za vykřičník určité znaky, bude je vynechávat
Příklad využití nahrazení textu před nebo za určitým symbolem
Jako u prakticky všech návodů na webu vycházím i zde z praktické potřeby: potřeboval jsem vyexportovat adresy žáků ve třídě, z gmailového klienta se však zkopírovaly ve formátu: „Jméno Příjmení <e-mailová@schránka.cz>“. Takový formát nevyhovoval službě pro práci s prac. listy, která žádala import ve formátu „e-mailová@schránka.cz“. Bylo tedy třeba odebrat:
- Jméno,
- Příjmení,
- Zobáčky před a za e-mailem.
Jednou možností je prostě takový program napsat, do čehož se mi nechtělo. Mohl bych také parazitní text promazat ručně, ale za něco takového by se každý ajťák zastyděl, nehledě na to, že v daném případě šlo o více tříd. Šlo by využít i nějaký pokročilejší textový editor s regulárními výrazy, ale měl jsem po ruce jen Office a hlavně: pro tyto účely mi vždy vystačila funkce najít a nahradit. Potřeboval jsem ji však uzpůsobit dle výše zmíněných podmínek.
Postup byl v daném případě následující:
- Vybereme funkci Najít a nahradit, v programech Office (ale i jinde) nejlépe pomocí zkratky CTRL + H.
- V dalším kroku zaškrtneme checkbox políčko Používat zástupné znaky,
- Do kolonky Najít zadáme:kód:\>,*\<
vysvětlivka:
\> = znak > bude díky zpětnému lomítku chápán jako textový znak. Při zapnuté možnosti Používat zástupné znaky je nutné zpětné lomítko zadat, jinak je znak > chápán jako zastupující symbol pro konec slova
, = symbol čárky užitý v našem příkladu
* = nahrazuje libovolný počet znaků mezi předchozím a následujícím výrazem
\< znak < bude díky zpětnému lomítku chápán jako textový znak. Při zapnuté možnosti Používat zástupné znaky je nutné zpětné lomítko zadat, jinak je znak < chápán jako zastupující symbol pro začátek slova
- Do kolonky Nahradit čím zadáme:kód:,
Pozor, čárka a mezera. Čárku a mezeru vkládáme proto, že chceme nahradit všechny dříve uvedené znaky a zástupné znaky tak, aby vždy za e-mailovou adresou byla čárka, následovala mezera a další e-mailová adresa.
Takto upravený dokument by nám měl s výjimkou první a poslední položky vygenerovat schopný a použitelný seznam v žádaném formátu e-mailu následovaného čárkou a dalším e-mailem, tedy mailova@schranka.cz, dalsi@schranka.com, atd.
Nyní stačí ručně upravit první položku (odebrat první dvě slova a symbol < a z poslední položky symbol > a čárku a mělo by být hotovo.
Alternativní způsob
Přiznávám, že výše uvedený způsob není zrovna elegantní a dost možná přijdete na něco lepšího. Bohužel, Word nepodporuje všechny regulární výrazy a je problém mu zadat, aby vybral všechna slova, po nichž nezačíná/nekončí zavináč a tečka. S trochou umu je však možné udělat to jinak.
Napadl mě obrácený postup: nebudeme vybírat obsah, který chceme vyjmout, ale ten, jejž hodláme zachovat. Můžeme jej přeci zkopírovat do schránky a následně použít. Je to trochu fígl a provádí se následovně:
Opět v dialogovém okně Najít a nahradit v záložce Nahradit zadáme do kolonky Najít:
Tím vybereme veškerý text uvnitř zobáčků. Bohužel tedy včetně nich, ale to nebude takový problém.
V dialogovém okně nebudeme nic nahrazovat, ale přepneme se do kolonky Najít.
Bokem: Mohli jsme to udělat rovnou přes CTRL+F, ale mně pak nevyskakuje potřebné pokročilé dialogové okno, ale pouze postranní lišta vlevo, proto takto. V této části rozklikneme tlačítko Najít v, kde vybereme položku Hlavní dokument (případně jeho část, kterou žádáte).
V této fázi se označí veškeré nalezené výrazy = všechny e-mailové adresy, a máme zpola vyhráno.
Stačí nám vyhledaný obsah zkopírovat do schránky. K tomu se ještě musíme přepnout do hlavičky dokumentu, protože v této fázi je aktivní dialogové okno, z něhož nemůžeme kopírovat. Klikneme tedy libovolně do horní části programu a zmáčkneme notoricky známou klávesovou zkratku CTRL+C. Obsah pak vložíme do nového dokumentu nebo danou část smažeme a vložíme e-mailové adresy přímo do aktuálního dokumentu.
Ještě se zbavíme otravných hranatých závorek, a to přes Najít a nahradit. Najdeme výraz: [\<\>] a nahradíme jej prázdnou kolonkou (vymažeme jej).
Hotovo.
Změnit e-maily na sloupcový seznam
Pokud nechceme mít e-maily odděleny čárkou a mezerou, ale raději bychom je vypsali pod sebe, je postup velmi podobný. Stačí opět vyvolat službu Najít a nahradit, např. přes CTRL + H a postupovat následovně:
- nejprve zrušíme možnost Používat zástupné symboly, jinak by nám nefungoval znak ^p pro hledání konce odstavce,
- do kolonky pro najít zadáme:kód:,
pozor, jde o čárku a mezeru, na tu nezapomínejme
- do kolonky nahradit zadáme:kód:^p
zástupný symbol pro znak konce odstavce, dojde tedy k zalomení
Pro jistotu připomínám, že aby toto nastavení fungovalo, musíme mít zaškrtnuté políčko Používat zástupné symboly.
Samozřejmě lze snadno docílit také opaku, tedy převést seznam na text, tomu se budu více věnovat v dalších článcích.
Napsat komentář