Tipy a triky VI.

LO.png Je tu další díl tipů a triků pro OpenOffice a LibreOffice. Dnes se zaměříme na jeden problém s LibreOffice, jednu notorickou úlohu pro oba balíky a jednu speciální vychytávku vlastní pouze LibreOffice.  

Nainstaloval jsem si LibreOffice a nejde mi v něm vkládat Unicode znaky, proč?

Na rozdíl od Windows, kde se používá ASCII syntaxe pro zadávání různých symbolů, se v Linuxu používá kódování UNICODE. To znamená, že tytéž znaky se vkládají klávesovou kombinací Ctrl + Shift + u a poté se vypíše kód znaku. Je to celkem rychlé a elegantní řešení, pokud si patřičné kódy pamatujete, či je máte někde napsané (můžete si pomoci i programem KCharSelect apod.).

V linuxovém prostředí KDE byl dlouhodobý problém, KDE nemělo podporu pro zadávání těchto znaků, a situace tedy byla zoufalá, hlavně samozřejmě pro typografy. Situace dnes je však již jiná a v KDE je možné Unicode znaky zadávat jako např. v GNOME.

Nicméně pokud si nainstalujete kompletní LibreOffice, tuto podporu ztratíte. Čím to?

Po dlouhém zkoušení naslepo jsem zjistil, že na vině je balík libreoffice-kde. Ten slouží k tomu, aby LibreOffice do prostředí KDE zapadl, takže není úplně zbytečný. Nicméně s klidným svědomím jej můžete odinstalovat a LO používat bez něj.

Zaregistroval jsem jedinou a nepodstatnou nevýhodu. Spolu s odinstalováním tohoto balíku vám zpět naskočí dekorace oken – např. tlačítkových lišt (pokud nejsou ukotvená). Nicméně není problém věc řešit v nastavení dekorace, jak můžete vidět na přiložených obrázcích. Jakmile tento postup provedete u daného okna jednou, bude již natrvalo. Úpravu nebo smazání tohoto nastavení provedete v Nastavení systému, kde vyvoláte Chování oken, záložka Pravidla oken. Tam najdete seznam použitých pravidel, každou položku můžete pomocí tlačítek upravit nebo smazat. Smazáním se navrátí původní chování a vzhled.

Kterak spustit okno pro nastavení dekorace okna Kterak spustit okno pro nastavení dekorace okna

Takto lze trvale skrýt dekoraci okna… Takto lze trvale skrýt dekoraci okna…

…a v tomto okně ji v případě potřeby zase obnovit …a v tomto okně ji v případě potřeby zase obnovit


Balík libreoffice-kde je zapotřebí u testovacích verzí LO, které neobsahují integraci do pracovního prostředí (libreoffice-debian-menus), takže například tlačítkové lišty jsou celkem nevzhledné.

Jak odstraním duplicitní hodnoty z tabulky?

Zdroj: Odstranění duplicit dle jednoho sloupce

Pokud často pracujete s tabulkami – hlavně v Calcu – určitě se setkáváte se situací, že potřebujete odstranit záznamy, jež jsou duplicitní, tedy jsou obsaženy vícekrát.

Představme si nejjednodušší možnost – máte tabulku se dvěma sloupci, jeden obsahuje jména a druhý příjmení. Chcete, aby v tabulce bylo každé jméno, každé příjmení, anebo jméno s příjmením použito jen jednou. V Calcu nenajdete tlačítko, kterým byste mohli duplicity naráz smazat na jedno kliknutí, na druhou stranu s použitím standardního filtru to dokážete velice snadno, a navíc mnohem víc; podívejte se na článek Tomáše Hanuska Zobrazte si potřebné položky pomocí filtrů. Dodejme, že ikony, pomocí nichž spouštíte filtry, se nacházejí v panelu Nástroje, takže je můžete mít kdykoliv k dispozici.

Druhou, zdlouhavější, ale možná někdy pro vás použitelnější (záleží na vkusu a konkrétním případu) metodou je použití funkce IF. Díky ní nemusíte žádná data někam kopírovat, můžete je smazat v původním umístění.

Vytvořte další sloupec vedle vaší původní tabulky – nadepište jej podle vašeho uvážení, například „Filtr“. Označte celou tabulku mimo záhlaví a pomocí tlačítek Seřadit vzestupně nebo Seřadit sestupně jednotlivé řádky seřaďte. Potom např. do buňky C3 napište rovnici:

=IF(a1=a2;1;0).

To znamená, že pokud v buňce A1 bude použita hodnota stejná jako v buňce A2, zobrazí se v buňce C3 jednička; jinak tam bude nula.

Tažením funkci rozkopírujte pro všechny řádky v tabulce.

Použitím funkce IF zobrazíte duplicitní hodnoty Použitím funkce IF zobrazíte duplicitní hodnoty


Nyní vidíte na první pohled, které hodnoty se duplikují. Klepněte do buňky C1 a spusťte Automatický filtr. Klepněte na rozbalovací šipku a v otevřeném okně nechte zaškrtnutou pouze hodnotu 1. Tím zmizí všechny řádky, které mají ve sloupci C hodnotu 0. Ty, které nyní vidíte, můžete bez obav vymazat. Znovu přes okno filtru nechte zobrazit všechny hodnoty a opět můžete řádky seřadit. Zbudou vám unikátní hodnoty jmen.

Asi vás napadne, že můžete postupovat dál a v dalším sloupci vytvořit funkci zobrazující duplikaci příjmení – můžete přidávat i další funkce tak, abyste zobrazili hodnotou 1 všechny řádky, které obsahují duplikaci celého jména (jméno + příjmení), ale tím by se celá práce stávala složitou a časově náročnou, a daleko snadnější by pak bylo použití standardního filtru.

Jaké jsou možnosti exportu grafů z Calcu?

Vytvoříte-li graf, můžete chtít jej dále použít v jiném programu. Používáte-li Calc v LibreOffice 4.1, nenarazíte na problém.

V nejnovější verzi LibreOffice Calc můžete grafy exportovat jako rastrové a vektorové obrázky. (V předchozí verzi pouze jako rastrové obrázky.) Graf se jako obrázek vyexportuje prostřednictvím kontextové nabídky Exportovat jako obrázek, poté vyberete umístění a formát souboru. Mezi jinými můžete použít např. *.svg nebo *.eps.

Graf v Calcu vygenerovaný z hodnot z tabulky; lze ho exportovat i uložit Graf v Calcu vygenerovaný z hodnot z tabulky; lze ho exportovat i uložit


Novinkou použitou v LibreOffice 4.1 je možnost ukládání grafů coby samostatných souborů. Ty pak lze vkládat do dalších dokumentů. Poklepejte na graf, čímž se přepnete do editačního modu grafů. (V podstatě spustíte modul Chart.) Poté graf uložte přes nabídku
Soubor | Uložit jako. Graf se uloží ve formátu *.odc. Takto uložený graf můžete otevřít a upravovat, můžete kopírovat a vkládat jeho části, ale pravděpodobně se vám nepodaří takto zkopírovat graf celý. K tomu musíte použít nabídku Calcu Vložit | Objekt | Graf ze souboru. Tím se do souboru vloží graf, ale pozor – jeho hodnoty se odkazují na původní lokace. Pokud v daných buňkách žádné nejsou, zobrazí se prázdný graf. Takže chcete-li graf použít, je třeba zkopírovat i zdrojovou tabulku, a to pokud možno na stejné místo, případně využít jiné a na zdrojová data graf nasměrovat z jeho nastavení.

Autor používá LibreOffice 4.1.1

(Jako ve škole)
 

Komentáře

user avatar xxxs
Odpovědět
Tipy a triky VI.
8. 09. 2013, 20:10:34
=IF(a1=a2;1;0).
jednoduchsi zapis je =A1=A2
vysledkom je true/false.

je podiel D3/E3 rovny 2? =D3/E3=2
if je fajn, ale vacsinou staci toto.
user avatar Petr Valach
Odpovědět
Re:Tipy a triky VI.
8. 09. 2013, 22:36:55
Máte pravdu, díky. Dokonce jsem toto věděl, ale zapomněl jsem to zmínit...
user avatar neutr
Odpovědět
Tipy a triky VI.
10. 09. 2013, 07:06:48
No já bych naopak doporučoval to IF už z principu. Když se zpracovávají zejména tabulky se jménem a příjmením, setkáme se s velmi záludnými chybami. Nejen s tím, že někdo zadá opačně jméno místo příjmení. Problém bude například, když v seznamu budou dvě stejná jména, ale půjde o dva různé lidi. Například o otce a syna, ale může jít jen o shodu jmen a příjmení. Pak je potřeba přiřadit další rozlišovací parametr. Stejně tak, když se do seznamu dostane zkratka - například Jar. Novák. Může to být jak Jaroslav, tak Jaromír, nebo i Jarmil.
Při výrazu =A1=A2 dochází vlastně k vyhodnocení operátorem AND mezi dvěma sousedními položkami stejného sloupce. To většinou u jmenných seznamů nestačí a je zde nutnost porovnat obě (jméno i příjmení). Já bych tento postup doporučil pouze u čísel. Minimálně bych doporučil rozšířit na OR [b]=IF(OR(A1&B1=A2&B2;A1&B1=B2&A2)=1;1;0)[/b].
Takže uvedeným způsobem =A1=B1 lze dobře pracovat jen v seznamu s jediným sloupcem [i](pak je to ale super zbytečné - stačí kliknout na ikonu třídit a podobně Data > Řadit)[/i]. Význam by mělo jen IF, které by porovnalo shodu řetězce. To lze například pomocí textových funkcí FIND(), nebo SEARACH(), ale nejlépe i když nejsložitěji SUBSTITUTE(). Pomocí Searach můžeme otestovat navzájem části řetězců z jednoho výrazu v druhém výrazu. Například pomocí MID(A1;LEN(A1;2;LEN(A1)-1). V tom případě porovnáme obsah buňky A2 s ořezaným řetězcem A1. Nejdříve tedy IF(A1=A2;1;IF(MID(A1;LEN(A1;2;LEN(A1)-1);2;0). V seznamu dostaneme tři možné hodnoty 0, 1, a 2. Zjistili jsme pod výsledkem s číslem 2 vysokou shodu, protože jsme první a poslední písmeno vynechali - bývá tam nejčastěji chyba.
Když by jsme použili SUBSTITUTE tak nahradíme například některá písmena stejným znakem a tento výsledek porovnáme. Samozřejmě že to bude mnohonásobně vnořenou podmínkou IF, takže záměnu uděláme jen u delších slov a ne na všechny znaky. Můžeme se tak vyhnout vícenásobné chybě, nebo i zkratce.
Funkce FIND() a SEARACH bychom nejvýhodněji použili na sloučené jméno s příjmením, popřípadě s dalším parametrem - například bydliště, nebo RČ ap. Například IF(AND(FIND(A2;A2&B2;1);FIND(B2;A2&B2;1)=1;1;0). Tohle použijeme proti možnosti přehození jména a příjmení. [i]Například Petr Pavel versus Pavel Petr ap.[/i].

Samozřejmě složitost hledání musí ovpovídat potřebě, nebo důležitosti, ale vždy s podmínkou IF, nebo alespoň s jiným operátorem (OR, AND, XOR). Beru v potaz, že Petr Valach zpřístupňuje tipy a triky nezkušeným uživatelům. Nebude jim proto doporučovat zbytečné =A1=A2, ale jednoduchou podmínku IF a s náležitou poznámkou, že to lze přizpůsobit. Takhle to také Petr Valach napsal - a je to velice správně. Připomínka uživatele xxxs je nesmyslem právě kvůli cílové skupině. [i]Dříve nebo později začátečník zjistí, že nemusí psát žádný vzorec, a že "je lepší, nežli lektor":) Pak to použije jinde a ne příliš vhodně - sekne chybu a zjistí, že musí do hloubky. Pak by zase autorovi vyčítal, že ho jen zblbnul.[/i]
user avatar xxxs
Odpovědět
Re:Tipy a triky VI.
14. 12. 2013, 21:20:23
tipy a triky. pridal som tip do diskusie. clanok som needitoval.

Odpovědět

 

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích najdete v nápovědě. Diskuzi můžete sledovat pomocí RSS kanálu.

 
Petr Valach

Petr Valach

Redaktor & editor OpenOffice.cz a LinuxEXPRES.cz. Správce sociálních médií těchto redakcí. Člen nadace The Document Foundation. Ve svém volnu se věnuje popularizaci vědy a fotografování.

 
 
 
woo jaw demo hz