Výuka a školení Excelu Výuka a školení Excelu Výuka a školení Excelu
Výuka a školení Excelu Výuka a školení Excelu
Zobrazují se příspěvky se štítkemFunkce. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemFunkce. Zobrazit všechny příspěvky

pátek 27. prosince 2013

Řazení čísel pomocí funkce

Příklad

Potřebuji seřadit čísla v tabulce. Nechci ale (nebo nemohu) to udělat řazením - potřebuji použít funkci.

Návod

Připravím si někde sloupeček, kde budou čísla od jedničky do tolika, kolik je čísel. Pak do vedlejších sloupečku zapíšu funkci LARGE (řazení od největšího), resp. SMALL (řazení od nejmenšího).
Tato funkce bude mít v prvním parametru oblast, kde jsou původní neseřazená čísla, a ve druhém číslo z vedlejšího sloupce. Toto číslo vyjadřuje, kolikáté největší (nejmenší) číslo se právě na této pozici má zobrazit.


Pokud bych se chtěl obejít bez pomocného sloupečku, mohl by zápis funkce vypadat např. takto:
=LARGE(A:A;ŘÁDEK()-1)
V následujícím příkladu je v praxi použita kombinace funkce SMALL a SVYHLEDAT pro seřazení jmen závodníků podle času, kterého dosáhli:
Zápis funkce pak může vypadat např. takto:
=SVYHLEDAT(SMALL($A$2:$A$7;ŘÁDEK()-1);A:B;2;0)

pondělí 30. září 2013

Nastavení typu oddělovače - středníky versus čárky

Možná jste se s takovýmto problémem už setkali - třeba po instalaci nového počítače.
Chtěli jste napsat funkci v Excelu, a ta nefungovala - protože jste chtěli oddělovat parametry středníkem, jak jste zvyklí, ale Excel vyžadoval čárku.
Jinými slovy toto nefunguje:
=PRŮMĚR(B1;C1;D1)
ale toto funguje:
=PRŮMĚR(B1,C1,D1)
Tento problém je způsobený tím, že v některých státech se používá jako oddělovač parametrů čárka (USA) a někde středník (ČR). U těch prvních se obvykle současně používá jako oddělovač desetinných míst tečka - zatímco u nás čárka.
Řešení není těžké, jen bychom ho marně hledali přímo v Excelu. Je totiž třeba nastavit celé Windows - protože nastavení oddělovacích symbolů je stejné pro všechny aplikace v systému.
Začneme tak, že jdeme na Control panel (Ovládací panel). Ve Windows 8 je tato volba mezi aplikacemi:


Ve Windows 7 přímo ve Start menu:

Další postup je víceméně stejný v obou verzích Windows, printscreeny jsou z osmiček. Vyberu, že chci změnit číselné formáty:


Změním oddělovač seznamu z čárky na středník, a obvykle také oddělovač desetinných míst z tečky na čárku.


Potvrdím a je hotovo.
Mimochodem - záměna oddělovacích znamének je často důvodem, proč vám nefunguje vzorec, který jste si zkopírovali z nějakého amerického fóra nebo návodu. Jsou na něm totiž jako oddělovače použité čárky, zatímco váš český Excel chce středníky.


sobota 28. září 2013

Ošetření chyb v Excelu

Theodore Roosevelt:
Člověk, který nikdy nedělá chyby, je člověk, který nikdy nedělá nic. 

V jednom z minulých článků jsou popsané druhy chyb (a chybových hlášek), se kterými se v Excelu potkáváme.
V tomto článku se budeme věnovat tomu, jak tyto chyby ošetřit. Ošetření chyb je důležité:
- abychom chyby nepřenášeli z jednoho vzorce do navazujících
- abychom detekovali chyby v datech
- aby naše tabulky vypadaly k světu a nebyly zaplácané podivnými chybovými hláškami
Ošetřením chyby je myšlené to, že chybovou hlášku převedu na srozumitelné varování o chybě nebo na jakýkoliv jiný text, číslo nebo vzorec.
  • Funkce, která má na výstupu buď výsledek vzorce, nebo definovanou chybovou hlášku - ta je výstupem, pokud je výstupem vzorce chyba.
    Takováto funkce je v Excelu pouze jedna - IFERROR (česky také IFERROR).
  • Funkce, které mají na výstupu TRUE/FALSE (PRAVDA/NEPRAVDA).
    Takovéto funkce jsou v Excelu tři:
  1. JE.CHYBA (ISERR) - vrátí hodnotu PRAVDA, pokud je v závorce (parametru funkce) jakákoliv chybná hodnota kromě jedné výjimky - #N/A
  2. JE.CHYBHODN (ISERROR) - vrátí hodnotu PRAVDA, pokud je v závorce (parametru funkce) jakákoliv chybná hodnota včetně - #N/A. Od předchozí se tedy liší pouze zachycením #N/A. To je důležité např. pro použití v kombinaci s funkcí SVYHLEDAT/VLOOKUP, kdy si nesmíme plést název této funkce s podobným názvem funkce předchozí.
  3. JE.NEDEF (ISNA) - vrátí hodnotu PRAVDA, pokud je v závorce (parametru funkce) chybná hodnota typu #N/A. 
Takže funkce JE.CHYBA (ISERR) a JE.NEDEF (ISNA) dohromady detekují stejné typy chyb, jako samotná funkce JE.CHYBHODN (ISERROR).

    úterý 24. září 2013

    Fígl s kombinací funkcí INDEX a POZVYHLEDAT (MATCH)

    Nejspíše někdy používáte funkci VLOOKUP (SVYHLEDAT). Je to funkce velmi užitečná, má ale jednu nevýhodu, na kterou občas narazíte.

    Příklad

    V následujícím příkladu potřebuji doplnit k zaměstnancům jméno jejich nadřízeného. Na základě toho, do kterého oddělení zaměstnanec patří - protože každé oddělení má svého jednoho šéfa.



    Mohl bych použít VLOOKUP. Ale to by musely sloupečky v tabulce vpravo mít obrácené pořadí. Funkce VLOOKUP totiž vyžaduje, aby v tabulce, na kterou se odkazuji, bylo v prvním sloupci to, podle čeho se obě tabulky propojují. Jinými slovy - tabulky jsou propojené přes název oddělení, proto v tabulce vpravo musí být sloupec s názvy oddělení vlevo od jména šéfa.

    Návod

    Sloupce bych mohl prohodit, ale ne vždy je to možné.
    Proto použiji kombinaci funkcí INDEX a MATCH (POZVYHLEDAT), která mě toto umožní. Zápis do buňky C2, který pak roztáhnu, bude vypadat takto:
    =INDEX(E:E;MATCH(B2;F:F;0))
    Logika je taková, že:
    • Nejprve funkce MATCH zjistí, kolikátá je určitá hodnota ve sloupci. V našem případě zjistí, že hodnota "HR" je ve sloupci F na druhém místě. Výstupem vnořené funkce je tedy dvojka.
    • Pak funkce INDEX zjistí, co je na tomto místě v určitém sloupci. V našem případě zjistí, že na druhém místě je ve sloupci E hodnota "Hanka". A výstupem funkce, čili přiřazením nadřízeného pro Adélu, je správně "Hanka".
    Vzorec roztáhnu a mám ošetřené všechny hodnoty / všechny zaměstnance.

    Upozornění

    Aby tato kombinace funkcí fungovala, musí být hodnoty v prohledávaném sloupci seřazené podle abecedy. Jinak se výsledky tváří, že fungují, ale nefungují.


    Fígl s kombinací funkcí INDEX a MATCH

    Nejspíše někdy používáte funkci VLOOKUP (SVYHLEDAT). Je to funkce velmi užitečná, má ale jednu nevýhodu, na kterou občas narazíte.

    Příklad

    V následujícím příkladu potřebuji doplnit k zaměstnancům jméno jejich nadřízeného. Na základě toho, do kterého oddělení zaměstnanec patří - protože každé oddělení má svého jednoho šéfa.



    Mohl bych použít VLOOKUP. Ale to by musely sloupečky v tabulce vpravo mít obrácené pořadí. Funkce VLOOKUP totiž vyžaduje, aby v tabulce, na kterou se odkazuji, bylo v prvním sloupci to, podle čeho se obě tabulky propojují. Jinými slovy - tabulky jsou propojené přes název oddělení, proto v tabulce vpravo musí být sloupec s názvy oddělení vlevo od jména šéfa.

    Návod

    Sloupce bych mohl prohodit, ale ne vždy je to možné.
    Proto použiji kombinaci funkcí INDEX a MATCH (POZVYHLEDAT), která mě toto umožní. Zápis do buňky C2, který pak roztáhnu, bude vypadat takto:
    =INDEX(E:E;MATCH(B2;F:F;0))
    Logika je taková, že:
    • Nejprve funkce MATCH zjistí, kolikátá je určitá hodnota ve sloupci. V našem případě zjistí, že hodnota "HR" je ve sloupci F na druhém místě. Výstupem vnořené funkce je tedy dvojka.
    • Pak funkce INDEX zjistí, co je na tomto místě v určitém sloupci. V našem případě zjistí, že na druhém místě je ve sloupci E hodnota "Hanka". A výstupem funkce, čili přiřazením nadřízeného pro Adélu, je správně "Hanka".
    Vzorec roztáhnu a mám ošetřené všechny hodnoty / všechny zaměstnance.

    Upozornění

    Aby tato kombinace funkcí fungovala, musí být hodnoty v prohledávaném sloupci seřazené podle abecedy. Jinak se výsledky tváří, že fungují, ale nefungují.


    pondělí 23. září 2013

    Druhy chyb v Excelu

    "Vždycky otevřeně přiznej chybu. Ostatní přestanou dávat pozor a umožní ti udělat další."
    Mark Twain

    V Excelu se nám často stane, že výsledkem vzorce je chyba. Např. pokud dělíme nulou nebo pokud vyhledáváme v oblasti hodnotu, která tam není.
    Tyto chyby je obvykle třeba buď odstranit, nebo alespoň ošetřit. Dnes se podíváme na druhy těchto chyba příště na to, jak se s nimi poprat.
    Excel rozeznává následující typy chyb a chybových hlášek:
    • #NULL! (anglicky také #NULL!)
      Vzniká v situacích, kdy chybí ve vzorečku něco důležitého - např. znaménko. Např. v tomto vzorečku =A1+A2+A3+A4 A5 sčítám hodnoty od A1 do A5, ale před A5 jsem zapomněl napsat plus. 
    • #DIV/0! (anglicky také #DIV/0!)
      Tato chyba vyjadřuje, že ve výrazu se dělí nulovou hodnotou - což, jak známo, matematicky nelze. 
    • #HODNOTA! (anglicky #VALUE!)
      Značí práci s chybným datovým typem. Například pokud násobíte dvě buňky a v jedné z nich není číslo, ale text.
    • #REF! (anglicky #REF!)
      Ve vzorci se odkazuji na oblast sešitu, která byla odstraněna. Např. na odstraněný list, řádek nebo sloupec.
    • #NÁZEV? (anglicky #NAME?)
      Použitý špatný název funkce - např. místo "KDYŽ" použito "KDYŽX". Vyskytuje se často, když v anglické verzi použijete český název funkce nebo naopak.
    • #ČÍSLO! (anglicky také #NUM!)
      Vzniká, pokud je výsledkem příliš velké nebo příliš malé číslo - tak velké nebo malé, že s ním Excel neumí pracovat. Což se nestává často.
    • #N/A (anglicky také #N/A)
      Vzniká při použití vyhledávacích funkcí v případě, že ty nic nenajdou. Např. pokud funkcí SVYHLEDAT / VLOOKUP nenajde hodnotu, kterou jsme zadali do prvního parametru.
    • #NAČÍTÁNÍ_DAT (anglicky #GETTING_DATA)
      Chyba vzniká v případě, že se čeká na data ze zdroje, který je zatím neposkytl. Její zobrazení je často jen dočasné.

    neděle 22. září 2013

    Funkce INDEX

    Funkce INDEX (v češtině i v angličtině nazvaná stejně), má velmi široké použití. A je přitom velmi jednoduchá.
    Funkce INDEX hledá hodnoty v buňce, která je na definovaném místě v pořadí v rámci sloupce, řádku nebo oblasti.
    Srozumitelněji – funkce INDEX vyhledá např. hodnotu ve třetí buňce ve sloupci. Nebo hodnotu ze druhé buňky z určitého řádku. Anebo, pro definovanou obdélníkovou oblast, hodnotu na průsečíku čtvrtého řádku a druhého sloupce.
    Obrázek to vysvětlí jasněji:

    Funkce INDEX má svůj protějšek – funkci MATCH (POZVYHLEDAT), která naopak vrátí pořadí určité hodnoty ze seznamu. 

    pátek 6. září 2013

    Refresh návodu VLOOKUP / SVYHLEDAT

    Návod na použití VLOOKUP/SVYHLEDAT je druhým nejčtenějším návodem na tomto blogu. Takže si zasloužil kritické přečtení, odstranění nejasností a zpřehlednění.
    Nová verze ke shlédnutí tady.

    pátek 2. srpna 2013

    Funkce POSUN/OFFSET

    Existuje jedna funkce, která umožňuje odkazovat se na buňky nepřímo.
    Její fungování se popisuje docela složitě, ale na příkladě je to snad zřejmé.


    • V buňce I4 se odkazuji na buňku, která je od buňky B3 sedm řádků dolů a dva řádky doprava. Tedy prvním parametrem funkce je původní buňka, druhým parametrem je posun dolů (nebo nahoru při záporné hodnotě parametru) a třetím parametrem je posun doprava (nebo doleva při záporné hodnotě parametru).
    • V buňce I5 sčítám hodnoty buněk v určité oblasti. Jedná se o oblast, která začíná od buňky B3 (první parametr) dva řádky dolů a tři sloupce doprava (druhý a třetí parametr) a je velká dva krát dvě buňky (čtvrtý a pátý parametr).
      V tomto případě má funkce pět parametrů oproti třem parametrům v předchozím případě. V případě, že se odkazuji na oblast, musím funkci POSUN/OFFSET použít pouze jako "obalenou" v jiné agregační funkci. Tak, aby z celé oblasti mohlo vypadnout jen jedno číslo. 
    Je zřejmé, že tato funkce nemá žádné použití sama o sobě - v příkladu bych místo =OFFSET(B3;7;2) mohl napsat =D10. Přínos funkce ale oceníme v případě, že se poloha odkazované buňky nějakým způsobem mění - a pak mohu např. z jiné buňky zadané jaké druhý nebo třetí parametr odkazovat, ze které buňky se hodnota bere.

    úterý 30. července 2013

    SUBTOTAL - funkce důležitá pro filtrování

    V tomto příspěvku se trochu podíváme na funkci SUBTOTAL (česky také SUBTOTAL).
    Microsoft nám v tom dělá trochu lingvistický nepořádek - v anglické verzi používá název SUBTOTAL jak pro funkci, které se věnujeme v tomto příspěvku, tak pro to, co se česky nazývá Souhrn.
    Funkce SUBTOTAL se používá v kombinaci s automatickým filtrem.

    Příklad

    Mám tabulku s daty, např. v bazaru.
    Chtěl bych používat filtr a současně sledovat některé charakteristiky dat. Například chci filtrovat podle barvy a sledovat celkové ceny za jednotlivé barvy.
    Ještě jinými slovy - až vyfiltruji modrá auta, chci vidět celkovou cenu modrých aut, a až to změním na červenou, tak cenu červených aut.

    Návod

    V tabulce použiji standardní filtr.
    Pak do jedné z buněk zapisuji funkci SUBTOTAL. Je důležité zapisovat ji do buňky, která se nebude při filtrování "schovávat" - v mém případě tedy píši do prvního řádku.
    Funkce má dva parametry.

    • Prvním je číslo, které určuje funkci použitou pro sečtení/zprůměrování/jinou agregaci dat. Např.:
      • 1 - Průměr
      • 2 - Počet
      • 9 - Součet
    Čísla si samozřejmě nemusím pamatovat - mohu využít rozbalovací nápovědu Excelu.

    • Druhým parametrem je sloupec, který se má počítat.

    Zápis celé funkce v našem případě vypadá takto:
    =SUBTOTAL(9;D:D)
    Devítka proto, že jde o součet, D znamená sloupec který se sčítá.

    Důležité je, že oproti standardnímu součtu se tento součet při používání filtru mění.

    sobota 6. července 2013

    Nahrazování znaků v Excelu

    Při práci s Excelem se docela často dostanete do situace, kdy potřebujete nahrazovat nějaký text jiným. V tomto příkladu nahrazují čárky tečkami, nicméně velmi podobně to funguje s jakýmikoliv textovými řetězci. Mám v zásadě dvě možnosti - buď použít Najít / nahradit, nebo funkci SUBSTITUTE / DOSADIT.

    Najít / nahradit

    Dřevní, ale často velmi efektivní metoda.
    Prostě stisknete Ctrl + F a vyberete, co za co se má nahradit.
    V tomto případě mám sloupec datumů, kde jsou dny a měsíce oddělené čárkou místo tečky.


    Mně se ale lépe pracuje s tečkami. Abych čárky na tečky změnil, použiji Ctrl + F, nastavím že se mění čárky na tečky a takto vypadá výsledek:

    Najít / nahradit je velmi užitečná funkce, má ale jednu zásadní nevýhodu - funguje jednorázově. Tedy kdybych např. do tabulky uvedené nahoře přidal další datum s čárkami, tak se mi na tečky už nezmění do doby, než znovu použiji Najít / nahradit.
    Pokud mi toto vadí, pomůže mi funkce SUBSTITUTE / DOSADIT.

    SUBSTITUTE / DOSADIT

    Tato funkce nahrazuje ve vybraném textu určitý text jiným textem.
    Pokud bych ji chtěl použít v předchozím případě, vypadal by zápis takto:
    =DOSADIT(A1;",";".")

    • První argument je text, se kterým pracuji
    • Druhý argument je text, který se má najít
    • Třetí argument je text, kterým se má text ze druhého argumentu nahradit
    • Čtvrtý, nepovinný argument je číslo výskytu, na které se má výměna použít. Např. zápis DOSADIT("tadydadyda";"a";"X";2) vyhodí "tadydXdyda - protože se nahradilo druhé áčko velkým ikskem.


    úterý 26. února 2013

    Nestačí vám funkce? Napište si své!

    Běžný Excel 2010 má přes 400 funkcí. Přesto se můžeme dostat do situace, kdy by se nám hodila funkce, která v Excelu není. Nebo nás nebaví opakovaně zapisovat dlouhý vzorec obsahující více funkcí a chceme si vytvořit funkci, která tuto kombinaci funkcí nahradí.

    Příklad

    V mém případě chci vytvořit funkci, která spočte obsah obdélníka na základě dvou vstupních buněk. Netvrdím, že je to zrovna vrchol praktičnosti, ale myslím že se na tom dá vytvoření jednoduché funkce dobře ukázat.

    Návod

    Jdu do editoru maker (karta Vývojář / tlačítko Visual Basic), vytvořím nový modul a zapíšu funkci.
    V mém případě vypadá takto:


    Function Obsah_obdelnika(Delka, Sirka)
            Obsah_obdelnika = Delka * Sirka
    End Function




    Vysvětleno:
    • Function Obsah_obdelnika(Delka, Sirka)
      Function říká že je to funkce, Obsah_obdelnika je název funkce, Delka a Sirka jsou názvy vstupních hodnot
    • Obsah_obdelnika = Delka * Sirka
      Obsah je roven délce krát šířce
    • End Function
      Konec zápisu funkce
    Editoru funkcí mohu zavřít. Od teď už se s mojí funkcí pracuje jako s jakoukoliv jinou. Jen si musím uvědomit, že tato funkce existuje v zásadě jen v souboru, kde jsem ji vytvořil.





    pondělí 21. ledna 2013

    Vzorec přes více listů

    Příklad

    Potřebuji sečíst (nebo použít jinou funkci) přes více listů.
    Například tak, že chci sečíst všechny buňky B1 na listech List1 až List5.

    Návod

    Funkční, ale zbytečně dlouhý zápis by vypadal takto:

    • =SUMA(List1!B1;List2!B1;List3!B1;List4!B1;List5!B1)

    Stejně funkční, ale elegantnější způsob pak vypadá takto:
    • =SUMA(List1:List5!B1)
    Jinými slovy napíšu první list, dvojtečku, poslední list, vykřičník a pak buňky.
    Při zápisu si uvědomím, že Excel neposuzuje rozsah listů podle názvu, ale podle toho, jak je máte v sešitu seřazené. Čili v mém případě by se například List4 započítal pouze v případě, že by byl umístěný někde mezi List1 a List5.

    úterý 15. ledna 2013

    Procvičení SVYHLEDAT / VLOOKUP

    Hádanka

    Jaký vzorec musím napsat do buňky D2 (a pak roztáhnout), aby se mi ve sloupci D spočítala cena po slevě pro jednotlivé typy zboží?

    Vyzkoušejte, pokud by se nepodařilo, je řešení tady:



    středa 2. ledna 2013

    Mocniny a odmocniny v Excelu

    Příklad

    Potřebuji odmocnit nebo umocnit číslo.

    Návod

    Pro odmocninu o mocninu použiji funkci POWER - stejně česky i anglicky.
    • Chci-li spočítat např. dvě na čtvrtou, je syntaxe takto:
      =POWER(2;4)
      a výsledek:
      16 
    • Chci-li spočítat např. čtvrtou odmocninu ze šestnácti, je syntaxe takto
      =POWER(16;1/4)
      a výsledek:
      2
    Je dobré uvědomit si, že např. třetí odmocnina z dvaceti je stejné číslo jako dvacet na 1/3
    Pokud chci spočítat druhou odmocninu, mohu použít i funkci ODMOCNINA. Ta má jen jeden parametr - číslo, které odmocňují.

    pátek 21. prosince 2012

    Funkce POZVYHLEDAT / MATCH

    Příklad

    Potřebuji zjistit, na jaké pozici je v seznamu čísel umístěna určitá hodnota.
    Řešení
    Použiji funkci POZVYHLEDAT - anglicky MATCH
    Funkce je jednoduchá, má jen tři parametry.
    • Prvním parametrem je co se má hledat
    • Druhým parametrem je kde se to má hledat
    • Třetí parametrem je obvykle nula (viz dále)

    Návod

    V tomto případě hledám, na které pozici je umístěna trojka. Výsledkem je číslo čtyři - je na čtvrté pozici.
    Stejně jako pro vyhledávání čísel funguje funkce i pro vyhledávání textů.

    Poznámka ohledně třetího parametru

    Třetí parametr může různý:
    • 1 - najde největší hodnotu, která je menší nebo rovna hledané hodnotě. Funguje jen když je oblast, kde se hledá, seřazena od nejmenšího po největší.
    • 0 - najde hodnotu, která přesně odpovídá.
    • -1 - najde nejmenší hodnotu, která je větší nebo rovna hledané hodnotě. Funguje jen když je oblast, kde se hledá, seřazena od nejmenšího po největší.




    úterý 18. prosince 2012

    Převod čísla na text a naopak

    Příklad

    V buňce mám číslo - např. 1234.
    Potřebuji z něj udělat text 1234. Obvykle proto, že s ním dále potřebuji pracovat jako s textem a ne jako s číslem.

    Návod

    Buď mohu prostě změnit formát buňky - Pravé tlačítko / Formát buňky atd.
    Nebo mohu použít funkci HODNOTA.NA.TEXT. (anglicky jednodušeji jen "TEXT")
    Hodnota má dva parametry. V prvním je odkaz na buňku s číslem, ve druhém je pak formát, ve kterém má být číslo na text převedeno.
    Toto vysvětlení druhého parametru jsem si vypůjčil ze stránek Microsoftu:
    http://office.microsoft.com/cs-cz/excel-help/tri-zpusoby-prevodu-cisel-na-text-HA001136619.aspx
    • Výsledkem vzorce =HODNOTA.NA.TEXT(123,25;"0") bude 123.
    • Výsledkem vzorce =HODNOTA.NA.TEXT(123,25;"0,0") bude 123,3.
    • Výsledkem vzorce =HODNOTA.NA.TEXT(123,25;"0,00") bude 123,25.
    • Chcete-li zachovat pouze desetinná místa, která byla zadána, použijte vzorec =HODNOTA.NA.TEXT(A2;"General").
    • Tato funkce je vhodná také k převodům kalendářních dat na formátovaná data. Obsahuje-li buňka A2 datum 29. 5. 2003 a použijete-li vzorec =HODNOTA.NA.TEXT(A2;"d. mmmm rrrr"), dostanete 29. květen 2003.
    V mém případě mohu použít např. tuto syntaxi:
    =HODNOTA.NA.TEXT(A2;0)
    Opačnou funkcí převádějící naopak text na číslo je funkce HODNOTA (anglicky VALUE). Převádění textu na číslo je z mé zkušenosti občas trochu alchymie a je třeba zkoušet různé možnosti. V některých případech může fungovat i to, že k číslu vzorcem přičtete nulu (=A1+0). Nevím proč, ale v jednom případě mě toto opravdu pomohlo...

    Video

    pátek 14. prosince 2012

    Lineární regrese v Excelu

    V tomto článku si ukážeme, jakými způsoby je možné v Excelu počítat lineární regresi. Pokud vás zajímá regrese nelineární, přejděte na tento článek.

    Příklad

    Potřebuji posoudit závislost dvou řad hodnot, přičemž předpokládám, že jedna závisí na druhé a tuším, která na které.
    V mém případě mám závislost prodeje zmrzliny v určitý den na průměrné teplotě toho dne. Chci zjistit, jaká je závislost, a také odhadnout, kolik zmrzliny prodám další den, kdy má být 17°C.
    Pro zjednodušení budu předpokládat, že prodej zmrzliny nezávisí na ničem jiném než na teplotě.
    Toto jsou data, která mám k dispozici:


    Návod

    Pokud je regrese lineární (a já teď budu předpokládat, že je), tak je určena rovnicí:
    y = a * x + b
    neboli
    prodej zmrzliny = a * teplota + b
    x je nezávislá proměnná - jinými slovy proměnná, na která závisí ta druhá. V mém případě je to teplota - protože prodej zmrzliny závisí na teplotě, ne naopak. Ještě jinými slovy je to to, co se kresli na ose x - to je ta vodorovná :)
    y je závislá proměnná - jinými slovy ta, jejíž hodnoty závisí na nezávislé proměnné. V mém případě je to prodej zmrzliny, protože ten závisí na teplotě. Ještě jinými slovy je to to, co se kreslí na ose y - to je ta nahoru :)
    Smyslem regresní analýzy je určit koeficienty "a" a "b".
    Mám čtyři způsoby, jak to zjistit - přičemž výsledné koeficienty jsou samozřejmě vždy stejné.

    1. Výpočet pomocí funkcí Intercept a Slope, případně Forecast

    Tento postup je na blogu už jednou popsaný zde:
    http://www.excelentnitriky.com/2012/03/linearni-regrese-v-excelu.html

    2. Maticový vzorec LINREGRESE

    Funkce LINREGRESE získá koeficienty podobně. Jde ale o maticový vzorec, proto musím pracovat trochu jinak.
    Označím dvě buňky vedle sebe. Do řádku vzorců napíšu
    =LINREGRESE(C2:C14;B2:B14)
    Stisknu Ctrl + Shift + Enter
    Tím se mi vzorec rozkopíruje do obou značených buněk. V jedné z nich je koeficient a, ve druhé koeficient b.

    3. Graf

    Pokud stejně jako já chápete věci lépe když jsou graficky znázorněné, můžete použít následující způsob.
    Označíte číselné řady hodnot i se záhlavími a vložíte graf typu XY.


    V grafu už je většinou vidět, jestli nějaká závislost existuje - v případě, že "tečky" dávají dohromady "čáru" jako v mém případě.


    Kliknu na jednu z těch teček pravým tlačítkem a pak levým na "Přidat spojnici trendu".


    Kliknu na Zavřít.


    Do grafu už se mi promítla přímka, která znázorňuje závislost. A u ní se zobrazila rovnice, kterou jsem hledal. Už vím, že a = 8,9707 a b = 14,166. Jinými slovy když vynásobím teplotu zhruba devíti a přičtu zhruba 14, dostanu odhadovanou spotřebu zmrzliny.

    4. Analytické nástroje 

    Pokud chci dostat kromě koeficientů rovnice ještě další údaje, použiji analytické nástroje.
    Nejprve je zprovozním. To je popsáno tady:
    Na kartě Data pak v Analytických nástrojích vyberu Regrese.
    Do hodnot Y zadám čísla týkající se zmrzliny.
    Do hodnot X zadám čísla týkající se teploty.

    Výstupem je spousta hodnot.

    Pokud do diskuse pod tímto článkem napíšete, jak je věcně interpretovat, budu rád.
    Mně ale zajímají zase jen koeficienty rovnice. Vidím, že jsou stejné jako v předchozím případě.

    Výsledek

    Ať postupuji jakoukoliv cestou, vždy dojdu ke stejným hodnotám a a b.
    Proto pokud si myslím, že zítra bude 17 stupňů, objednám 166,6675 kopečků zmrzliny - což je 17 * 8,9707 + 14,166. A budu doufat, že regrese funguje :)

    Zdrojová data pro zkoušení

    https://www.dropbox.com/s/6mx89m4liuzd8vm/vysledek_linearni_regrese.xlsx

    Lineární regrese v Excelu

    Příklad

    Potřebuji posoudit závislost dvou řad hodnot, přičemž předpokládám, že jedna závisí na druhé a tuším, která na které.
    V mém případě mám závislost prodeje zmrzliny v určitý den na průměrné teplotě toho dne. Chci zjistit, jaká je závislost, a také odhadnout, kolik zmrzliny prodám další den, kdy má být 17°C.
    Pro zjednodušení budu předpokládat, že prodej zmrzliny nezávisí na ničem jiném než na teplotě.
    Toto jsou data, která mám k dispozici:


    Návod

    Pokud je regrese lineární (a já teď budu předpokládat, že je), tak je určena rovnicí:
    y = a * x + b
    neboli
    prodej zmrzliny = a * teplota + b
    x je nezávislá proměnná - jinými slovy proměnná, na která závisí ta druhá. V mém případě je to teplota - protože prodej zmrzliny závisí na teplotě, ne naopak. Ještě jinými slovy je to to, co se kresli na ose x - to je ta vodorovná :)
    y je závislá proměnná - jinými slovy ta, jejíž hodnoty závisí na nezávislé proměnné. V mém případě je to prodej zmrzliny, protože ten závisí na teplotě. Ještě jinými slovy je to to, co se kreslí na ose y - to je ta nahoru :)
    Smyslem regresní analýzy je určit koeficienty "a" a "b".
    Mám čtyři způsoby, jak to zjistit - přičemž výsledné koeficienty jsou samozřejmě vždy stejné.

    1. Výpočet pomocí funkcí Intercept a Slope, případně Forecast

    Tento postup je na blogu už jednou popsaný zde:
    http://www.excelentnitriky.com/2012/03/linearni-regrese-v-excelu.html

    2. Maticový vzorec LINREGRESE

    Funkce LINREGRESE získá koeficienty podobně. Jde ale o maticový vzorec, proto musím pracovat trochu jinak.
    Označím dvě buňky vedle sebe. Do řádku vzorců napíšu
    =LINREGRESE(C2:C14;B2:B14)
    Stisknu Ctrl + Shift + Enter
    Tím se mi vzorec rozkopíruje do obou značených buněk. V jedné z nich je koeficient a, ve druhé koeficient b.

    3. Graf

    Pokud stejně jako já chápete věci lépe když jsou graficky znázorněné, můžete použít následující způsob.
    Označíte číselné řady hodnot i se záhlavími a vložíte graf typu XY.

    V grafu už je většinou vidět, jestli nějaká závislost existuje - v případě, že "tečky" dávají dohromady "čáru" jako v mém případě.

    Kliknu na jednu z těch teček pravým tlačítkem a pak levým na "Přidat spojnici trendu".


    Kliknu na Zavřít.

    Do grafu už se mi promítla přímka, která znázorňuje závislost. A u ní se zobrazila rovnice, kterou jsem hledal. Už vím, že a = 8,9707 a b = 14,166. Jinými slovy když vynásobím teplotu zhruba devíti a přičtu zhruba 14, dostanu odhadovanou spotřebu zmrzliny.

    4. Analytické nástroje 

    Pokud chci dostat kromě koeficientů rovnice ještě další údaje, použiji analytické nástroje.
    Nejprve je zprovozním. To je popsáno tady:
    Na kartě Data pak v Analytických nástrojích vyberu Regrese.
    Do hodnot Y zadám čísla týkající se zmrzliny.
    Do hodnot X zadám čísla týkající se teploty.

    Výstupem je spousta hodnot.

    Pokud do diskuse pod tímto článkem napíšete, jak je věcně interpretovat, budu rád.
    Mně ale zajímají zase jen koeficienty rovnice. Vidím, že jsou stejné jako v předchozím případě.

    Výsledek

    Ať postupuji jakoukoliv cestou, vždy dojdu ke stejným hodnotám a a b.
    Proto pokud si myslím, že zítra bude 17 stupňů, objednám 166,6675 kopečků zmrzliny - což je 17 * 8,9707 + 14,166. A budu doufat, že regrese funguje :)

    Zdrojová data pro zkoušení

    https://www.dropbox.com/s/6mx89m4liuzd8vm/vysledek_linearni_regrese.xlsx

    středa 12. prosince 2012

    Korelace v Excelu

    Příklad

    Potřebuji posoudit, jestli dvě veličiny mají mezi sebou vztah. Chci například zjistit, jestli:
    • Čerpání lepšího paliva ovlivňuje spotřebu auta
    • Počet prodavačů v prodejně ovlivňuje tržby
    • Počet snědených dortů ovlivňuje objem pasu :)
    V našem případě chci zjistit, jestli inzerce v rádiu ovlivňuje tržby mé prodejny. A pokud ano, tak ve kterém rádiu ze dvou zkoumaných je tato závislost větší.
    Mám za jednotlivé měsíce informace o tom, kolik jsem zaplatil za reklamu ve dvou rádiích a o tom, kolik jsem (možná i díky reklamě) utržil.

    Návod

    Spočítám takzvaný korelační koeficient. Koeficient se počítá pro dvě skupiny dat a nabývá hodnoty od -1 do 1.
    • Pokud je korelační koeficient kolem -1, znamená to, že závislost je silná, ale nepřímá. Například vztah výkonnosti počítače a času, za který počítač zpracuje úlohu. Tedy čím vyšší výkon, tím kratší čas.
    • Pokud je korelační koeficient kolem 0, znamená to, že závislost není skoro žádná. Například výkon počítače a jeho barva.
    • Pokud je korelační koeficient kolem 1, znamená to, že závislost je silná a přímá. Například vztah výkonu počítače a počtu úloh, které vyřeší za hodinu. Čím vyšší výkon, tím více úloh.
    Je ale třeba si uvědomit, že korelace neříká, že jeden zkoumaný parametr musí nutně ovlivňovat druhý. Mohou být oba ovlivněné něčím jiným. Například prodej zmrzliny se vzájemně neovlivňuje s prodejem slunečníků - obojí je vyvolané teplým počasím - ale korelace by se zřejmě objevila.
    V našem případě, sledování reklamy, použiji funkci CORREL. Do té stačí pouze zadat dvě oblasti s daty, u kterých chci zjistit vzájemné závislosti. Výsledkem je korelační koeficient.
    V mém případě vyšel korelační koeficient pro jedno rádio 0,783914584 a pro druhé 0,397223044. 
    Co to znamená?
    Reklama v prvním rádiu zlepšuje mé prodeje více. Možná toto rádio poslouchá moje cílová skupina zákazníků a je pro mě zřejmě výhodnější v něm inzerovat.
    Nicméně pozitivně se na prodejích projevuje i rádio číslo dva - proto se možná vyplatí inzerovat v obou.

    Kritické meze korelačního koeficientu

    Když posuzuji, jestli mezi proměnnými závislost existuje nebo ne, musím zohlednit to, jestli mám dostatek dat. V našem případě si mohu spočítat nebo najít v tabulce
    Pokud chci pracovat s devadesátipětiprocentní pravděpodobností a mám 31 hodnot, potřebuji korelační koeficient kolem 36%. Obě moje rádia tento limit překročila (i když druhé jen tak tak). Proto si mohu na 95% být jistý tím, že obě rádia ovlivňují prodeje v mé prodejně.