Zpět na blog
Tipy a triky

Lambda výrazy v Javě - část I.

Skillmea
21.07.2019
8 minut čtení
Lambda výrazy v Javě - část I.
V tomto a v následujících článcích se podíváme na zoubek lambda výrazem. Budeme si je vysvětlovat zcela dopodrobna, abychom je pochopili a využívali.

Obsahově se zaměříme na tyto oblasti:
  1. porozumění lambda výrazům,
  2. použití lambda výrazů,
  3. funkcionální rozhraní (functional intefaces),
  4. reference metod (method references),
  5. vylepšení na kolekcích.

Proč použít lambda výrazy? Řekneme si pár odrážek, proč je používat.
  • povoluje použít takzvané funkcionální programování, což je dosud něco, řekl bych divné, protože Java je objektově orientovaný jazyk,
  • zpřehledňují kód, lepší čitelnost v některých případech, kde bychom použili několik zbytečných řádků, abychom napsali totéž.

Možná se zamýšlíš, proč používat funkcionální programování v jazyce, který je objektově orientovaný. Už není OOP tak dobré? Už zanikne? Ne, nezanikne a java je a myslím si, že pořád bude objektově orientovaný jazyk. Toto funkcionální programování ber jen jako další nástroj, který jako vývojář máš ve své ruce.
U OOP jsou vývojáři zvyklí přemýšlet v podstatných jménech, v objektech, ve třídách.

Například Pes štěká. Štěkání je součástí Psa. Tím pádem metoda, která bude zajišťovat psí štěkání, je součástí třídy Pes.
Někdy ale potřebuji kus kódu, metodu – nebo jinak řečeno funkci, která nepatří do žádné třídy speciální.

Podsunutí chování do metody

Uvažuj nad tím, že máš metodu, která na konzoli vypíše nějaký text. Například staré známé Hello World. Pro tento účel bychom si vytvořili třídu, které by byla metoda pro vypsání Hello Word. Tuto metodu bychom pak vypsali na konzoli v main metodě. Příklad v idea Lambda2.

Naším úkolem bude nyní předělat tento kód tak, abych dané metodě podsunul chování a uvnitř té metody se jen provede to chování. Ukažme si na příkladu.

Takže jsme udělali, co jsme chtěli. Do metody jsme podsunuli chování jako argument a poté jsme jej provedli. Ale ne tak přesně. Do metody jsme podsunuli něco, co má v sobě chování. Podsunuli jsme implementaci rozhraní, která má v sobě metodu, která provede očekávané chování.

Právě tomuto chtějí lambda výrazy zabránit. Chtějí zabránit tomu, abychom podsouvali objekty, ale chtějí, abychom podsouvali funkce.
Namísto tohoto:
public void printHelloWord(IHelloWord helloWord){ 
     helloWord.sayHello(); 
 }

chceme do metody vložit nějakou akci, nějakou funkci. Tento přístup umožňuje chovat se k funkcím jako k hodnotám.
public void printHelloWord(funkcia){ 
     funkcia();
 }

Pokud napíšu String jméno = “Jaro”; tak jsem hodnotu Jaro přidělil do proměnné jméno. Nyní jsme ale nastínili, že do nějaké proměnné bychom chtěli vložit blok kódu, který prezentuje naši funkci. Takže blok kód by se stal hodnotou a ta by se dala vložit do proměnné. Takže tam, kde používám danou proměnnou, tak tam používám i danou funkci, která je v ní.
Pro představivost, chceme dosáhnout tohoto:
premennaSFunkciou = public void sayHello() {
     System.out.println("HelloWord impls");
 } 
Toto je možné pomocí lambda výrazů. Nejprve se ale podívejme na tento kus kódu a řekněme si, co nepotřebujeme:
  • public – označuje mi, jestli je něco veřejně dostupné mimo třídu, dává smysl v kontextu třídy, tady ale přidělujeme do proměnné, tak to nepotřebujeme, neboť funkce je dostupná tomu, kdo pracuje s danou proměnnou.
premennaSFunkciou = void sayHello() {
     System.out.println("HelloWord impls");
 }

  • název sayHello = pokud přistupujeme k hodnotě, která je v proměnné, tak k ní přistupujme názvem proměnné, v našem případě je název proměnné proměnnou SFunkcí, takže ani druhé jméno nepotřebujeme.
premennaSFunkciou = void () {
     System.out.println("HelloWord impls");
 }

  • typ návratové hodnoty – při psaní lambda výrazů nemusím psát, jaký je návratový typ, překladač ví, podle nitra metody, co se vrací.
premennaSFunkciou = () {
     System.out.println("HelloWord impls");
 }

Toto ale ještě není lambda výraz. Pokud napíšu šipku (pomlčka - a znaménko větší >) mezi závorky a blok kódu, tak tehdy jsme vytvořili labmda výraz.
premennaSFunkciou = () -> {
     System.out.println("HelloWord impls");
 } 
Pokud metoda obsahuje jen jeden řádek, tedy ne více řádků, tak lze dále upravit tento výraz a to tak, že odstraníme složené závorky. Pokud je více řádků, tak složené závorky ponecháme.
premennaSFunkciou = () -> System.out.println("HelloWord impls");

Teď si už umíme představit, udělat, to, že pošleme funkci jako parametr metody a uvnitř spustíme danou funkci.
public void printHelloWord(------){
     -----(); 
 }
Do metody můžeme vložit jako argument při volání metody přímo lambda výraz.
printHelloWord(() -> System.out.println("HelloWord impls")){

Příklady

Napiš metodu, která vezme jako parametr číslo a vynásobí ho 5ti.

nasobokPiatichFunkcia = public int nasobokPiatich(int i){
     return i*5;
 }
Přepíšeme to na lambda výraz, vyškrtám všechno, co nepotřebuji. Tedy název, návratovou hodnotu a modifikátor přístupu.
nasobokPiatichFunkcia = (int i){
     return i*5;
 }
Napíšeme tam šipku a jelikož řádek je tam jen jeden, tak umíme odmazat kudrnaté závorky.
nasobokPiatichFunkcia = (int i) -> return i*5;
Tady máme další pomůcku, nebo možnost škrtat. Jelikož java kompilátor zná vnitřek metody a ví, co má vrátit, můžu vymazat i return.
nasobokPiatichFunkcia = (int i) -> i*5;
Když máme jednořádkový lambda výraz bez složených závorek, tak je nezbytné nepoužívat return.

Sčítání

scitaniFunkce = (int a, int b) -> a+b; 

Odčítání

odcitaniFunkce = (int a, int b) -> a-b;

Bezpečné dělení

bezpecneDelenieFunkcia = (int a, int b) -> {
     if(b==0) {
          return 0 ;
     }
     return a/b;
};

Spojení řetězců

stringJoin = (String x, String y) -> x.concat(y); 
Stále jsme v Javě. Tedy v typovém jazyce. Jaké jsou typy těchto proměnných, které v sobě drží lambda výrazy?

Video:

Pokud tě více baví poslouchat a dívat, tak si můžeš prohlédnout sérii videí o lambda výrazech v kurzu Java pro pokročilé.

Záver

Pokud by ses chtěl dozvědět o Javě víc nebo jsi nepochopil všechno, tak jsem i pro tebe připravil online kurzy o Javě na https://skillmea.sk.
Pokud se chceš o mně dozvědět více, tak klikej na jaroslavbeno.sk nebo mě sleduj na sociálních sítích – youtube, facebook, instagram, linkedin

Zakomponuji i malou reklamu. Ve spolupráci s tvůrci židle Neseda.com ti nabízím s kódem/kuponem JaroslavBeno 10% slevu (aplikovatelná i na zlevněnou židli).
Já jsem Jaro a my se vidíme, slyšíme-li Bůh dá příště.
Čaves.
Skillmea
🥇 Sme jednotka v online vzdelávaní na Slovensku.
Na našom webe nájdeš viac ako 300 rôznych videokurzov z oblastí ako programovanie, tvorba hier, testovanie softwaru, grafika, UX dizajn, online marketing, MS Office a pod. 
Vyber si kurz, ktorý ťa posunie vpred ⏩

Mohlo by tě zajímat

Tipy, jak ušetřit čas při práci ve Sketchi, Photoshopu, Illustratore a InDesignu
Tipy a triky
19.06.2019
Katarína Kučáková

Tipy, jak ušetřit čas při práci ve Sketchi, Photoshopu, Illustratore a InDesignu

Práce v grafických programech se někdy podobá cirkusovému chaosu. Ikonky, záložky, nekonečný počet nástrojů, pluginů. Víme, je obtížné se v tom zorientovat. Proto jsme pro tebe ve spolupráci s lektory vybrali tipy, které i nám usnadňují život a hlavně šetří čas. Konkrétně se podíváme na programy Sketch, Adobe Photoshop, Illustrator a inDesign. Sketch Sketch je profesionální ilustrační program pro práci s vektorovou grafikou, který je dostupný pro uživatele Mac OS X. Sketch je intuitivní a uživatelsky nenáročný, jeho zvládnutí na profi úrovni spočívá zejména v malých tricích. Zde jsou některé z nich. [Image] • Rotate copies (rotování kopií)             Nástroj Rotate Copies ti umožní rotovat kopie určité vrstvy kolem konkrétního bodu. Vezmi si třeba květinu. Stačí vytvořit jeden okvětní lístek a desítky jeho kopií můžeš rotovat kolem středu. Voila. Tento nástroj se standardně nenachází v panelu nástrojů, ale můžeš si jej přidat přes control-click a „Customize toolbar“, případně v menu přes Layer > Path > Rotate Copies. • Convert to outlines (převést na obrysy) Jak a kdy převést text na obrysy je nezbytnou znalostí z hlediska vektorové kresby. Fonty totiž dokážou nadělat při tisku spoustu problémů. Na druhé straně, pokud se rozhodneš převést text na obrysy, text se stane grafikou a po konverzi jej již nebude možné upravit. Pro konverzi textu na obrysy zvol v menu Layer > Convert to Outlines (prípadně stlač Shift-Command-O). • Obnovení ztracených dat Mac má skvělou funkci, která je kompatibilní i se Sketchem. Můžeš si tak prohlédnout historii souboru a obnovit ztracená data přes File > Revert To > Browse All Versions. • Vnoření symbolů Vnořený symbol můžeš vytvořit tak, že instanci (kopii) symbolu umístíš do jiného symbolu na stránku symbolů. Při provedení změny rodičovského symbolu se změní všechny jeho instance, bez ohledu na to, zda jsou součástí jiného symbolu, nebo ne. Neexistuje limit na to, jak hluboko lze symbol vnořit, symbol však nesmí obsahovat instanci sebe sama. • Sdílení souborů přes appky (například Slack) Jednoduše sdílej soubory přes appku tak, že potáhneš vybraný file ze sekce Export - file a vložíš na plochu vybrané appky. • Export Presets Tímto nástrojem ušetříš nesmírně mnoho času, můžeš si totiž kopírovat prvky ze svého designu. Vytvoření jednotlivých presets provedeš pomocí Presets preference panel. • Klávesové zkratky Přehled všech užitečných klávesových zkratek najdeš zde! • Pluginy  Užitečné pluginy jsou Stark pro kontrolu kontrastu, Runner pro rychlejší přístup k funkcím  a Rename it + Styles Generator pro stavbu knihoven. Adobe Photoshop Photoshop je velmi oblíbeným nástrojem v oblasti úpravy fotografií a grafiky. Máš už v malíčku všechna jeho zákoutí? [Image] • Kopírování barvy z jakéhokoli obrázku, vzoru a podobně. Pomocí nástroje Eyedropper tool máš možnost vybrat barvu ze zdroje mimo prostředí photoshopu a palety barev. Jednoduše klikni a podrž nástroj kapadlo a se stlačeným tlačítkem přejdi na vybranou stránku nebo obrázek. Namiř kurzor na plochu s barvou, uvolni myš a máš k dispozici novou zadefinovou barvu. • Změna velikosti (a tvrdosti) štětce Asi tě zdržuje neustále měnit velikost a tvrdost štětce pomocí nástrojové lišty. Zejména při úpravách jako je retuš či práce s maskami oceníš klávesovou zkratku Alt+pravé tlačítko myši (Ctrl+Alt+levé tlačítko na Mac). Stačí podržet tlačítko myši a při pohybu vpravo-vlevo můžeš měnit velikost štětce, při pohybu nahoru-dolů zase jeho tvrdost. • Změna prolínacích módů (blend modes) Práce s prolínacími módy je vždy tak trochu experimentováním, výsledek je totiž obtížné odhadnout. Ty se však nechceš zdržovat dlouho, čeká tě spousta další práce, proto by sis měl osvojit zajímavou zkratku Shift+plus. Tato zkratka slouží k rychlému testování efektů na fotce. • Izolace konkrétní vrsty Někdy může projekt obsahovat tolik vrstev, že se zdá nemožné zobrazit jen jednu konkrétní. Tehdy stačí jednoduše podržet Alt (Option na Mac) a klepnout na ikonku oka na vybrané vrstvě. • Bird's-eye-view Tato funkce ti umožní snadno se orientovat v jednotlivých částech obrázku při detailním přiblížení. Pokud jsi právě použil zoom a chceš přejít na jinou část, aniž bys musel view zmenšovat, klikni a podrž H a potom levé tlačítko myši. Nyní pohybuj kurzorem myši a přejdi na požadovanou oblast. Uvolněním tlačítka myši se vrátíš ke standardnímu náhledu. • Exportování všech vrstev do jedné Potřebuješ exportovat všechny vrstvy do jedné? I na to známe zkratku. Pomocí Control+Shift+Alt+E. (Command+Shift+Option+E pro Mac) spojíš všechny vrstvy do jedné. • Přehled klávesových zkratek[Zdroj: www.digitalsynopsis.com] • Užitečné pluginy Pokud jsi designér, nebo grafik, určitě oceníš plugin RH Hover Color Picker. Nabízí přehlednou práci s barvami a moderní rozhraní, které konečně nevypadá jako palubní deska v letadle. Kopec efektů a filtrů ti umožní ON1 Effects, obrázky zase získáš prostřednictvím pluginu Pexels nebo Shutterstock.   Adobe Illustrator Illustrator je velmi oblíbený pro své široké využití, vytvoříš v něm vše od firemního loga, webových ikon až po knižní ilustrace. Pokud si chceš osvojit užitečné tipy a triky pro práci s ním, jsi na správném místě. [Image] • Výběr podobných objektů Pokud už v Illustratore kreslíš složitější tvary, je užitečné se naučit, jak vyhledat podobné objekty. Pokud například chceme změnit vlastnosti více objektem, nemusíme pracné objekty vyhledávat, navíc mohou být částečně zakryty jinými objekty. Stačí vybrat vybrat jeden z objektů, přejít na Select>Same a vybrat požadované kritérium vyhledávání objektů (například Fill Colour). Všechny objekty s požadovanou barvou výplně pak systém vybere a změní pomocí vzorníku barev. • Nauč se správně používat Pen Tool Zvládnutí tohoto nástroje v Illustratori by mělo být tvým prvním krokem. Není to žádné umění a pomocí nástroje Pen Tool získáš větší kontrolu nad tím, co vytváříš. Výhodou je i jeho univerzální použití, jelikož například ve všech Adobe programech funguje stejně. • Použití Pathfinder k vytvoření komplexních tvarů Po zvládnutí Pen Tool by si měl zaměřit pozornost i na nástroj Pathfinder. Pathfinder umožňuje kombinovat objekty do nových tvarů. Můžete například vrstvit jednoduché tvary a poté pomocí ukazatele pohybu je transformovat na jednotnější, složitější tvar. Existuje několik tutoriálů k použití Pathfinder k transformaci základních tvarů na některá úžasná umělecká díla. • Vyrob si vlastní štětce Ilustrátor milujeme, ale je zapotřebí si v něm vytvořit vlastní prostor. Ne všechny jeho základní funkce jsou pro vytvoření vlastní grafiky dostačující. To platí například io štětcích. V Adobe Illustrator existují 4 základní druhy štětců: kaligrafické, rozptylové, umělecké a vzorkové. Ty máš ale možnost přidat si své vlastní. Vyber si všechny tvary, ze kterých chceš udělat štětec. V paletě štětců klikni na malou šipku vlevo vyber "new brush". • Použi Color CC Pokud chceš, aby tvé ilustrace vypadaly profesionálně, měly by obsahovat kombinace barev, které oku lahodí. To je ne vždy jednoduché a pokud nechceš ztrácet čas jejich porovnáváním, určitě využij Color CC. Tento nástroj ti umožní vybrat pěkné, vkusné kombinace barev, navíc jejich přidáním do palety barev budeš mít hned po ruce. • Přehled základních klávesových zkratek[Zdroj: www.digitalsynopsis.com] • Užitečné pluginy Převezmi kontrolu nad svými vektory pomocí VectorScribe v3, kterou tvůrci popisují jako vektorový švýcarský nůž. Pokud si začínající designér, který se chce ponořit do světa 3D grafiky, určitě neobejde plugin Cineware, efektní je i Gold Rush a Phantasm v3. Adobe InDesign Podobně jako Illustrator, je InDesign založen na vektorové grafice. Poskytuje prostor, ve kterém můžeš spojit všechny své ilustrace a grafiku (např. z Photoshopu, Illustratoru) a vytvořit si vlastní interaktivní dokumenty pro web, tisk, mobilní zařízení a podobně. A jaké triky by sis měl osvojit v InDesignu? [Image] • Vytvoření více objektů stejné velikosti Pokud chceš vytvořit více objektů stejné velikosti, nastav potřebnou šířku a výšku jednoho objektu. Potom je už jen třeba vybrat zbývající objekty a zvolit Object> Transform Again> Transform Sequence Again Individually. • Matematické funkce v panelu nástrojů řekněme, že máš obrázek v rámu a chceš ho zvětšit o 1“, protože by tak pravděpodobně vypadal lépe. V panelu nástrojů, konkrétně ve Width field napiš 1 hned vedle stávající hodnoty. Stiskni Tab a InDesign udělá ostatní za tebe. Rovněž můžeš použít i funkce odčítání (-), násobení (*) a dělení (/). • Používej vyplnění zástupným textem. Lorem Ipsum ti určitě nemusím představovat. V InDesignu nám může posloužit jako zástupný text (pravé tlačítko > Vyplnit zástupným textem) v návrzích, kde tento text použijeme pro lepší představu finálního návrhu. • Přizpůsobení rámu (frame fitting) Pokud chceš přizpůsobit rám grafice uvnitř něj, je zapotřebí dvojitý klik na roh rámu. Nebo zmáčkni Cmd-Opt-C (Mac) / Ctrl-Alt-C (PC). • Vkládání více obrázek pomocí Adobe Bridge (multiplace from Bridge) Sice pro vložení obrázku můžeš použít File>Place, případně přetáhnout požadovaný obrázek na plochu InDesign, je však určitě jednodušší vkládat více obrázků najednou. Otevři Adobe Bridge, vyber si obrázky, které chceš použít ve svém layoutu a zvol File>Place>In InDesign. Tím se automaticky přepneš do InDesign, pomocí kláves se šipkami můžeš procházet obrázky v kurzoru a jednoduše je klepnutím umístit. Pro úpravu můžeš využít Object>Fitting. • Aplikování efektu z jednoho objektu na jiný Podařilo se ti vytvořit skvělý efekt, který bys chtěl aplikovat na další objekty? V tom případě vyber objekt s požadovaným formátováním a potáhni ikonu “FX” z panelu efektů na objekt, na který chceš formátování aplikovat. V případě, že chceš vymazat všechny efekty z objektu, zvol „clear effects“ z Effects okna v paneli nástrojov.  • Klávesové zkratky Přehled všech užitečných klávesových zkratek najdeš zde! • Užitečné pluginy Aquafadas AVE ti usnadní digitální publikování - od návrhu po distribuci obsahu, jeho přizpůsobení různým platformám. Placený plugin Active Tables ti do InDesign přinese Excel, díky PDF2Id zase budeš moci importovat PDF soubory a konvertovat na editovatelný formát.   Práce v uvedených softwarech je velmi obsáhlá a komplexní, snažili jsme se ti uvést alespoň několik „hacků“ pro zjednodušení a urychlení práce. Pokud bys chtěl přispět nějakými ověřenými triky, poděl se o ně v komentáři! Zaujalo tě téma grafiky a designu? Na Learn2code jsme pro tebe připravili nabídku online kurzů grafiky, ze kterých si vybereš svůj ušitý na míru.
Java 10 a 11 – vybrané programátorské změny
Tipy a triky
22.05.2019
Skillmea

Java 10 a 11 – vybrané programátorské změny

Zajímá tě, jaké změny se udály v Java 10 a 11? Čti článek a vše podstatné se dozvíš. Java 10VarOd verze 10 je dostupná možnost nespecifikovat typy proměnných pro lokální proměnné, pokud je umí kompilátor zjistit z pravé strany. Namísto napsání typu stačí napsat nespecifikovaný typ a to var. var list = new ArrayList<String>(); Kompilátor umí zjistit, jakého typu je dopis a tedy nelze přidávat čísla do dopisu, ale pouze String. var list = new ArrayList<String>(); list.add("Jaro");Var se nebere jako klíčové slovo, ale jako nespecifikovaný typ. Tedy nemůžeme vytvořit třídy s názvem var, ale lze vytvořit metodu s názvem var. //error String return(){ return ""; } //ok String var(){ return ""; }Nová metoda na kolekcíchU kolekcí přibyla metoda copyOf, která zkopíruje jednu kolekci do druhé. List<String> list = List.of("Jaro", "Fero", "Duro"); Set<String> set = Set.copyOf(list); List<String> listCopy = List.copyOf(set); Map<Integer,String> map = Map.of(1,"Jaro",2,"Fero"); Map<Integer,String> map2 = Map.copyOf(map);Java 11Var v lambda výrazechLambda výrazy podporují typ inferenci, což znamená, že pokud používáš proměnnou v lambda výrazu, tak java kompilátor umí zjistit, jakého je typu a nemusíme typ zadefinovat. list.stream() .map(s -> s.toLowerCase()+".") .collect(Collectors.toList());V předchozích verzích jevy jsme nedokázali psát anotace k proměnným uvnitř lambda výrazu, které neměly zadefinovaný typ. Od verze 11 je to možné, brzy – nemusíme nadefinovat specifický typ, stačí napíšeme-li var. list = list.stream() .map((@Notnull var s) -> s.toLowerCase()+".") .collect(Collectors.toList());Jednodušší spuštění programuPokud si napíšeš jednoduchý program a chceš ho spustit v konzoli, tak jej musíš nejprve zkompilovat přes příkaz javac a poté spustit přes příkaz java. Nyní stačí, když rovnou spustíš .java soubor pomocí java příkazu. Stane se to, že se automaticky soubor zkompiluje a spustí. java Main.java java.lang.String metodyVe třídě String přibyly nové metody. isBlank() – vrací true, pokud je řetězec prázdný nebo obsahuje jen bílé znaky lines() – ze Stringu se vrátí stream řádků – pokud stream obsahuje oddělovače řádků java.util.function.Predicate notPředstavme si takový kód: lines.stream() .filter(s -> !s.isBlank())Pomocí Predicate.not vypadá krásnější a čitelnější: list.stream() .filter(Predicate.not(s -> s.isBlank()));S výhodou použití method reference: list.stream() .filter(Predicate.not(String::isBlank));Použijeme-li statický import: list.stream() .filter(not(String::isBlank));Pokud tě zaujal článek a chtěl by ses dozvědět více, tak klikni na moju stránku a přesuň se na to, co tě zajímá. Programování, kurzy, videa zdarma a jiné záležitosti. Klikej na www.jaroslavbeno.cz
Kontingenční tabulky, I.část – Vytvoření kontingenční tabulky
Tipy a triky
29.04.2019
Skillmea

Kontingenční tabulky, I.část – Vytvoření kontingenční tabulky

Kontingenční tabulka – vytvoření, pole kontingenční tabulkyKontingenční tabulky. Stačí zmínit toto slovní spojení a lidé automaticky začínají mít jakousi formu alergické reakce. V některých se dokonce probudí výčitky svědomí: „Měl bych je ovládat, vždyť v životopisu mám uvedenou znalost Excelu na úrovni pokročilý.“ Máme pocit, že se jedná o něco těžkého, ve skutečnosti však kontingenční tabulky vůbec nejsou jaderná fyzika. Pojď se o tom přesvědčit. [I tebe straší kontingenční tabulky?] Jak a kdy se používají?Kontingenční tabulka neboli tzv. pivot table je velmi efektivním nástrojem Excelu. Dokáže sumarizovat a organizovat rozsáhlá data z různých tabulek a databází. Představ si, že dostaneš v práci zadání. Všechny objednávky, které přišly do tvé firmy v rámci roku (což může být klidně několik tisíc) máš roztřídit podle jednotlivých poboček, kategorií nákupu. Zároveň chceš zjistit, kolik jednotlivá pobočka vydělala na jakém produktu, popřípadě vyjádřit procentuální podíl konkrétního produktu na celkovém počtu prodaných produktů. Pár dní by sis nad takovým zadáním trhal vlasy, nebýt kontingenční tabulky. Během pár minut ti umí poskytnout potřebné údaje k analýze a porovnávání dat. Ještě pořád si nezaslouží tvé uznání? Vytvorenie kontingenčnej tabuľky Tak ses k tomu odhodlal. Správně. Ještě před vytvořením tabulky je však třeba si dát pozor na několik věcí: 1. Hlavička tabulky, ze které chceš vytáhnout data musí být kompletně vyplněna, tzn. každý ze sloupců má název    2. Hlavička tabulky nesmí obsahovat sloupce se stejným názvem    3. V případě, že máš součtový řádek pod tabulkou, odděl ho od zbytku tabulky (stačí prázdným řádkem). Vyhneš se tak duplicitnímu sčítání hodnot.    4.Doporučujeme vytvářet kontingenční tabulku na novém listu. Pokud totiž tabulka zasáhne do vstupních dat, natrvalo je smaže. Vstupní údaje sis zkontroloval a už netrpělivě čekáš na to, aby ses mohl pustit do své první kontingenční tabulky. Tak směle! 1. Označ tabulku, případně buňky, ze kterých si přeješ kontingenční tabulku vytvořit[Image] 2. Na kartě Vložit klikni na možnost Kontingenční tabulka[Image] 3. Otevře se nové dialogové okno, kde uvidíš, ze kterých buněk bude kontingenční tabulka vytvořena a možnost umístění novém nebo existujícím archu.Stiskni OK. Voila.[Image]4. Na novém listu se ti vlevo zobrazí jakási prázdná tabulka, vpravo se nachází nástroj kontingenční tabulky[Image] Zbývá už jen získat údaje podle kritérií našeho zadání. K tomu nám poslouží nástroj kontingenční tabulky. Skládá se z 5 částí:  1. Pole kontingenční tabulky - jsou tvořena z názvů sloupců ze zdrojové tabulky.   2. Filtr sestavy - hodnoty, podle kterých chceme kontingenční tabulku filtrovat   3. Jmenovky řádků - hodnoty v tomto poli budou vepsány do řádků   4. Jmenovky sloupců - hodnoty v tomto poli budou vepsány do sloupců   5. Hodnoty – hodnoty v tomto poli jsou číselné, využíváme při nich různé matematické operace Texty například zadává Excel automaticky do řádků. Řekněme, že ti to nevyhovuje. Tehdy stačí jen myší přesunout požadované pole z jedné oblasti do druhé. z Jmenovky řádků do Jmenovky sloupců. Pole si tedy uspořádáš tak, abys získal co nejlepší přehled o údajích k analýze. Potřebuješ si vytisknout kontingenční tabulku?Nejprve ti doporučujeme zvolit si vertikální rozložení, které je vhodnější pro tisk. Svislé rozložení je vhodnější zejména tehdy, nechceš-li, aby tvoje kontingenční tabulka byla rozložena vodorovně na celém listu. Pokud se k tomu ještě přidají pole s hodnotami ve sloupcích, které jsou standardně uspořádány vodorovně, tabulka bude velmi široká. Náš tip: Pokud tiskneš kvůli své práci množství nejen kontingenčních tabulek, v rámci úspory barvy ti doporučujeme kompatibilní náplně do tiskárny. Ty jsou v porovnání s originálními náplněmi levnější, ekologičtější, avšak stále nabízejí 100% kvalitu tisku. ZávěrA právě jsi dospěl do bodu, kdy už dokážeš nejen vytvořit kontingenční tabulku, ale umíš si v ní údaje zorganizovat tak, aby byla analýza a porovnání dat jednodušší. Kontingenční tabulka ti dokáže ušetřit hodiny a hodiny zbytečného filtrování a ty můžeš využít svůj volný čas smysluplněji. Jak, to je na tobě. :)[Image]I komplexní práce s kontingenčními tabulkami je součástí našeho online kurzu Excel pre pokročilé, kde najdeš rozsáhlé tutoriály pro práci s excelovskými funkcemi, makry, formátováním a podobně. Naučíš se s Excelem pracovat jako profík, což bude plusem nejen pro tvé CVčko, ušetří ti určitě spoustu času iv praktickém životě. Navíc na konci kurzu získat od Learn2code certifikát o absolvování kurzu, aby více o tvé úrovni nikdo nepochyboval!

Nezmeškej info o nových kurzech a speciálních nabídkách