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

pátek 29. listopadu 2013

Načítání hodnot proměnných z buněk v makrech

V tomto článku se podíváme na jedno základní, užitečné a jednoduché téma z oblasti VBA - načítání hodnot proměnných z buněk.

Příklad

Řekněme, že mám v buňce A1 číslo (nebo text nebo cokoliv), které chci načíst do proměnné "a". Proto, abych s ním mohl nějak počítat nebo provádět libovolné psí kusy.
Otázka tedy je, jak tuto hodnotu vzít z buňky a uložit ji do hodnoty.

Návod

Existuje několik způsobů (i jiné než uvádím tady), a použiji je podle situace.

Načtení proměnné "a" na základě názvu listu a názvu oblasti

a = Worksheets("List1").Range("a1").Value

Načtení proměnné "a" z aktivního listu na základě názvu oblasti

a = ActiveSheet.Range("a1").Value

Načtení proměnné "a" z aktivního listu na základě souřadnic buňky

a = ActiveSheet.Cells(1, 1).Value

Načtení proměnné "a" z aktivní buňky

a = ActiveCell.Value

Příklad makra

Například toto makro zařídí, že excel pípne tolikrát, jak vysoké je číslo v buňce A1.
Neříkám, že zrovna bez tohoto makra nepřežijete, ale jako příklad je to snad OK.

'Název makra a jeho začátek
Sub nacitanihodnot()
    'To, co je v bunce A1, se uloží jako proměnná "a"
    a = Worksheets("List1").Range("a1").Value
    'Zacatek cyklu - ten se bude opakova, dokud nebude "b" (to zacina na nule) stejně velké jako "a"
    Do Until b = a
        '"b" se zvetsi o jednicku
        b = b + 1
            'Pipnuti
            Beep
            'Poseckani jednu vterinu - aby pipnuti nesplynula do jednoho
            Application.Wait (Now + TimeValue("0:00:01"))
    'Navrat na zacatek cyklu - pokud tedy uz neni "a" stejne velke jako "b"
    Loop
'Konec makra

End Sub

úterý 26. listopadu 2013

Propojování tabulek v Excelu, Accessu, Power Pivotu a SQL

Propojování tabulek je téma, které na různých kursech často řešíme. Proto bych chtěl tento článek věnovat tomu, jak se tato otázka řeší v různých typech aplikací. Vybral jsem si ty, které běžný uživatel asi použije nejčastěji - tedy samozřejmě Excel, dále pak Access a Power Pivot, a navíc ještě jazyk SQL - platný plus minus univerzálně v databázových nástrojích.

Příklad

Ve všech čtyřech ukázkách budu pracovat s jedním příkladem. Řekněme, že máme několik zaměstnanců, kteří pracují na pobočkách. Tyto pobočky jsou ve městech.
V jedné tabulce jsou zaměstnanci a čísla poboček, kde pracují. Ve druhé tabulce jsou pobočky a města. Každý zaměstnanec tedy pracuje na určité pobočce, a protože každá pobočka je v určitém městě, tak každý zaměstnanec pracuje i v určitém městě.

Mým cílem je přidat do posledního sloupce v první tabulce města, kde zaměstnanci pracují. Přičemž tato města jsou ve druhé tabulce. K tomuto se tedy chci dopracovat:

Jak na to v Excelu

V Excelu použiji, nám už docela dobře známou, funkci SVYHLEDAT / VLOOKUP.
Zapíšu ji do první buňky oblasti s výsledky a roztáhnu dolů.


Funkce má v první buňce takovouto syntaxi:
=SVYHLEDAT(C4;F:G;2;0)
  • C4 - co se má ve druhé tabulce hledat
  • F:G - kde je tabulka, ze které se čerpá výsledek
  • 2 - z kolikátého sloupce se čerpá výsledek
  • 0 - protože chci přesnou shodu (ne přibližnou)
Více o funkci SVYHLEDAT tady.

Jak na to v Power Pivotu 

V Power Pivotu je třeba nejprve zadat informaci o tom, že a jak jsou tabulky propojeny.
V datovém modelu tedy vytvoříme relaci, která tento vztah zachycuje.

Tím dáme Excelu na vědomí, které tabulky a přes co jsou propojené.
Pak použijeme zápis jazyka DAX a do tabulky s lidmi přidáme vzorec, který odkáže na tabulku s pobočkami.
Syntaxe funkce je:
=related(pobocky[Město])


Kulaté závorky označují tabulku, do které se odkazuji, a hranatá závorka konkrétní sloupec. Vidíme, že syntaxe je výrazně jednodušší než v běžném Excelu. Je to proto, že ve vzorci nemusím určovat, přes co se tabulky propojují. To už je dáno nadefinováním relace (vztahu) tabulek. Funkci RELATED tedy stačí jen jeden parametr oproti čtyřem parametrům, které vyžaduje SVYHLEDAT. 
Výsledek je ale v zásadě podobný jako v předchozím případě.

Jak na to v Accessu

V Accessu je to podobné jako v Power Pivotu. 
Nejprve musíme propojit tabulky, podobně jako v Power Pivotu:

Pak vytvořím dotaz. Tady je tedy principiální rozdíl mezi předchozími dvěma případy a Accessem i SQL. Zatímco v Excelu a v Power Pivotu jsme do jedné tabulky přidávali hodnoty z druhé tabulky, tak v Accessu propojíme tabulky tak, že vytvoříme nový dotaz obsahující sloupce z obou tabulek.

Výsledkem je pak takováto tabulka (která je ovšem ve skutečnosti dotazem):


Jak na to v jazyce SQL

Jazyk SQL se používá univerzálně, nezávisle na technologii.
Dotaz, který jsme si ukázali v předchozím případě, by vypadal takto:
  • SELECT zamestnanci.[Jméno zaměstnance], zamestnanci.[Číslo pobočky], pobočky.Město FROM pobočky INNER JOIN zamestnanci ON pobočky.[Číslo pobočky] = zamestnanci.[Číslo pobočky];
Vysvětlení logiky:
  • SELECT zamestnanci.[Jméno zaměstnance], zamestnanci.[Číslo pobočky], pobočky.Město (vyber Jméno zaměstnance a Číslo pobočky z tabulky "zamestnanci" a dále Město z tabulky "pobočky") FROM pobočky INNER JOIN zamestnanci ON pobočky.[Číslo pobočky] = zamestnanci.[Číslo pobočky] (tabulka "pobočky" je provázaná s tabulkou "zamestnanci" na základě toho, že Číslo pobočky je v obou tabulkách stejné).
Výsledkem je stejný dotaz jako v předchozím případě.

pondělí 11. listopadu 2013

Histogram v Excelu - jak na něj

Histogram je grafické zobrazení rozložení hodnot. Je to typ grafu, který se používá velmi často a v řadě situací.
Např. v takovémto jednoduchém histogramu jsou znázorněny počty bodů, které dostali studenti z testu. Na první pohled vidím, že velká část studentů měla vcelku průměrný počet bodů - a jen několik jich mělo velmi málo nebo naopak hodně bodů.


V tomto článku popíšu několik způsobů, jak histogram vytvořit. Nebo respektive jak vytvořit tabulku, ze které se pak graf vytváří - protože když mám tabulku, je už graf hračka.

Vytvoření histogramu s pomocí kontingenční tabulky

Tento způsob považuji za většinou nejšikovnější. Mohu totiž dynamicky měnit, ze kterých dat, dimenzí, filtrů atd. se hodnoty pro něj berou. Navíc při úpravě vstupních dat se samozřejmě přepočítá i histogram, alias kontingenční tabulka.
Návod na vytvoření histogramu pomocí kontingenční tabulky je popsaný tady.

Vytvoření histogramu pomocí funkce COUNTIFS

Histogram mohu také vytvořit tak, že že si připravím dva sloupce - s dolním a horním limitem - a do třetího sloupce zapíšu funkci COUNTIFS tak, aby počítala vždy hodnoty omezené tímto intervalem.
Zápis pak vypadá takto:
=COUNTIFS(A:A;">"&D2;A:A;"<"&E2)

Vytvoření histogramu pomocí analytického doplňku

Histogram mohu také vkládat přes funkci, přímo k tomu určenou. Je součástí analytického doplňku - ten je standardní součástí Excelu.

V zásadě stačí jít na kartu data, pak úplně vpravo na Analýza dat, pak vyplnit odkud se berou data a kde jsou hranice intervalu.

Tento třetí způsob nemá v podstatě žádné výhody, uvádím jej spíš do počtu :)





čtvrtek 7. listopadu 2013

Scoring v Excelu

V tomto článku navazuji na sérii článků o dataminingu v Excelu - tentokrát půjde o scoring. Než se pustíme do Excelu, chci v rychlosti vysvětlit, k čemu se scoring používá a jak funguje.

Scoring - příklad použití

Jeho typické použití je v bankách. Klient přijde požádat o úvěr, a banka rozhodne, jestli mu jej dát nebo nedat.
Pokud mu úvěr dá, tak klient buď bude splácet (pak banka vydělá), nebo nebude (pak banka přijde o půjčené peníze). Pokud banka klientovi úvěr nedá, pak o žádné peníze nepřijde, ale také nevydělá. Je tedy nesmírně důležité rozdělit klienty co nejpřesněji na ty, kteří budou splácet, a na ty, kteří nebudou - a půjčit jen těm prvním.
Banka má o klientech řadu informací, podle kterých se může rozhodovat (např. měsíční příjem klienta, počet závislých osob, délku současného zaměstnání klienta, příjem...). Některé z těch informací jsou důležité, jiné méně. Je důležité odlišit ty podstatné od těch nepodstatných a rozhodovat se jen podle těch, které mají na výsledek skutečně vliv. Tedy stanovit váhy informací - kritérií a určit způsob, jak výsledek ovlivňují.
Banka se k tomu může postavit dvěma způsoby. Může vybrat důležitá kritéria (a jejich hodnoty) na základě osobní zkušenosti expertů, zákonných požadavků a podobných informací "zvenku". Tato cesta nás teď ale nebude zajímat.
Druhým způsobem je podívat se, jak se kritéria osvědčila v minulosti, a podle toho rozhodovací proces nastavit, resp. upravovat. A o tom, jak to udělat, je tento článek.
Scoring se také používá pro odhadování potenciálních zákazníků. Pokud vám například telefonní operátor zavolá a nabídne nový tarif, je pravděpodobné, že jste dostali vysoké skóre, když operátor skóroval své zákazníky. Skóroval je s ohledem na to, jak je pravděpodobné, že budou chtít nový tarif a že za něj utratí hodně peněz. A pokud Vám operátor volá, zřejmě vám vyšlo skóre vysoké.

Příklad a návod

Odhadování reakce zákazníků se bude týkat náš příklad. Máme sto zákazníků, kterým jsme v minulosti nabídli nový volací tarif. U těchto zákazníků víme nejen jestli si tarif koupili, ale také kolik jim je let, jakého jsou pohlaví, z jak velkého jsou města a navíc jestli při oslovení byli našimi zákazníky (pro jinou službu nebo tarif) nebo ne.
Tabulku si můžete stáhnout zde.
Mým úkolem je vytvořit předpovídací model, který mě umožní u každého budoucího potenciálního zákazníka, u kterého budu znát uvedené informace, určit, jestli si produkt koupí nebo ne. Nebudu tak zbytečně a draze oslovovat marné případy, a zároveň mi neuteče žádný potenciální dobrý klient.
Takto vypadá tabulka s údaji z minulosti, na základě které model vznikne:


Nejprve data označím a jdu na Vložit / Tabulka. Od této chvíle už s tabulkou Excel pracuje jako s uceleným souborem dat.


Pak jdu na Nástroje tabulky / Analyze. Pokud pod Nástroji tabulky kartu Analyze nevidím, musím si doinstalovat analytický doplněk k Excelu a připojit se na MS SQL Server.
Kliknu na Prediction Calculator.


V "Target" vyberu, co chci předpovídat. V našem případě předpovídáme, jestli uživatel uzavře nebo neuzavře smlouvu.


Odklikneme a počkáme na zpracování výsledků.
Výsledkem jsou hned tři nové listy s výsledky. Pojďme si je projít.

List "Prediction report for..."

V tomto listu jsou dvě oddělené tabulky.
Ve spodní tabulce našeho příkladu je na první pohled vidět, že v datech se projevují tři faktory, které předurčují zákazníky k tomu, aby si nový produkt koupili.
Je to věk do třiceti let, ženské pohlaví a to, že zákazník pro nový tarif už je naším zákazníkem. Méně významnými, ale existujícími vlivy jsou pak věk od 30 do 41 let a od 41 do 55 let a také bydliště ve velkém městě.


V horní tabulce se stanovuje limitní skóre. Tedy skóre, které když bude u klienta překročeno, vyplatí se jej oslovit - protože smlouvu asi uzavře.


K tomu ale musíme dodat další informace:
  • False Positive Cost
    Zadávám, kolik bude stát, když se model splete a navrhne k oslovení klienta, který smlouvu neuzavře. Čím větší číslo, tím bude model opatrnější, a bude požadovat vyšší skóre k tomu, aby navrhl klienta k uzavření smlouvy. V našem případě třeba 50 - protože, dejme tomu, oslovení klienta stojí 50 Kč a pokud klient smlouvu neuzavře, tak o ty peníze přijdeme.
  • False Negative Cost - zadám, kolik mi bude stát, když se model splete a navrhne mi, že nemám oslovovat klienta, ač by tento klient ve skutečnosti smlouvu uzavřel. Čím větší číslo, tím nižší skóre bude model požadovat - protože se bude snažit falešně negativnímu hodnocení vyhnout. V našem případě můžeme nechat nulu - chybné neoslovení klienta nás nebude stát nic.
  • True Positive Profit - zadám, kolik vydělám v případě, že model správně určí klienta k oslovení. Tedy potenciální tržby za klienta. Pokud budu vědět, že každý klient, kterého oslovím, a on uzavře smlouvu, mi vydělá 500 Kč, vyplním 500.
  • True Negative Profit - pokud bych měl nějaký zisk z toho, že model vyhodnotí správně a negativně některého z klientů, vyplním to sem. V našem případě necháme nulu.
Výsledkem je skóre. Tedy hodnota, kterou musí potenciální klient za všechny parametry (věk, pohlaví..) nasbírat, abychom jej oslovili s nabídkou smlouvy.

List "Prediction Calculator for ..."

Spodní tabulka je stejná jako u předchozího listu, zajímá nás tedy ta horní.
Teď už jsme v situaci, kdy máme potenciálního klienta, a chceme odhadnout, jesti uzavře nebo neuzavře smlouvu.
V tabulce vyplníme vlastnosti tohoto posuzovaného klienta. V našem případě je to například žena mladší než 30 let, bydlící v malé obci, která zatím není naším zákazníkem.


A hned po vyplnění vidím, že tato žena na nabídku nového produktu zřejmě zareaguje pozitivně a smlouvu uzavře. A tím jsme splnili účel našeho snažení - od teď už můžeme takto odhadovat každého klienta.
Výše skóre, kterou musela součtem svých parametrů překonat, se odvíjí mimo jiné od cen, zadaných na předchozím listě.

List "Printable Calculator for..."

Na tomto listě je obsahově to, co na tom předchozím, jen upravené pro vytisknutí a ruční vyhodnocování - třeba pro pracovníky v terénu.


Scoring v Excelu

V tomto článku navazuji na sérii článků o dataminingu v Excelu - tentokrát půjde o scoring. Než se pustíme do Excelu, chci v rychlosti vysvětlit, k čemu se scoring používá a jak funguje.

Scoring - příklad použití

Jeho typické použití je v bankách. Klient přijde požádat o úvěr, a banka rozhodne, jestli mu jej dát nebo nedat.
Pokud mu úvěr dá, tak klient buď bude splácet (pak banka vydělá), nebo nebude (pak banka přijde o půjčené peníze). Pokud banka klientovi úvěr nedá, pak o žádné peníze nepřijde, ale také nevydělá. Je tedy nesmírně důležité rozdělit klienty co nejpřesněji na ty, kteří budou splácet, a na ty, kteří nebudou - a půjčit jen těm prvním.
Banka má o klientech řadu informací, podle kterých se může rozhodovat (např. měsíční příjem klienta, počet závislých osob, délku současného zaměstnání klienta, příjem...). Některé z těch informací jsou důležité, jiné méně. Je důležité odlišit ty podstatné od těch nepodstatných a rozhodovat se jen podle těch, které mají na výsledek skutečně vliv. Tedy stanovit váhy informací - kritérií a určit způsob, jak výsledek ovlivňují.
Banka se k tomu může postavit dvěma způsoby. Může vybrat důležitá kritéria (a jejich hodnoty) na základě osobní zkušenosti expertů, zákonných požadavků a podobných informací "zvenku". Tato cesta nás teď ale nebude zajímat.
Druhým způsobem je podívat se, jak se kritéria osvědčila v minulosti, a podle toho rozhodovací proces nastavit, resp. upravovat. A o tom, jak to udělat, je tento článek.
Scoring se také používá pro odhadování potenciálních zákazníků. Pokud vám například telefonní operátor zavolá a nabídne nový tarif, je pravděpodobné, že jste dostali vysoké skóre, když operátor skóroval své zákazníky. Skóroval je s ohledem na to, jak je pravděpodobné, že budou chtít nový tarif a že za něj utratí hodně peněz. A pokud Vám operátor volá, zřejmě vám vyšlo skóre vysoké.

Příklad a návod

Odhadování reakce zákazníků se bude týkat náš příklad. Máme sto zákazníků, kterým jsme v minulosti nabídli nový volací tarif. U těchto zákazníků víme nejen jestli si tarif koupili, ale také kolik jim je let, jakého jsou pohlaví, z jak velkého jsou města a navíc jestli při oslovení byli našimi zákazníky (pro jinou službu nebo tarif) nebo ne.
Tabulku si můžete stáhnout zde.
Mým úkolem je vytvořit předpovídací model, který mě umožní u každého budoucího potenciálního zákazníka, u kterého budu znát uvedené informace, určit, jestli si produkt koupí nebo ne. Nebudu tak zbytečně a draze oslovovat marné případy, a zároveň mi neuteče žádný potenciální dobrý klient.
Takto vypadá tabulka s údaji z minulosti, na základě které model vznikne:


Nejprve data označím a jdu na Vložit / Tabulka. Od této chvíle už s tabulkou Excel pracuje jako s uceleným souborem dat.


Pak jdu na Nástroje tabulky / Analyze. Pokud pod Nástroji tabulky kartu Analyze nevidím, musím si doinstalovat analytický doplněk k Excelu a připojit se na MS SQL Server.
Kliknu na Prediction Calculator.


V "Target" vyberu, co chci předpovídat. V našem případě předpovídáme, jestli uživatel uzavře nebo neuzavře smlouvu.


Odklikneme a počkáme na zpracování výsledků.
Výsledkem jsou hned tři nové listy s výsledky. Pojďme si je projít.

List "Prediction report for..."

V tomto listu jsou dvě oddělené tabulky.
Ve spodní tabulce našeho příkladu je na první pohled vidět, že v datech se projevují tři faktory, které předurčují zákazníky k tomu, aby si nový produkt koupili.
Je to věk do třiceti let, ženské pohlaví a to, že zákazník pro nový tarif už je naším zákazníkem. Méně významnými, ale existujícími vlivy jsou pak věk od 30 do 41 let a od 41 do 55 let a také bydliště ve velkém městě.


V horní tabulce se stanovuje limitní skóre. Tedy skóre, které když bude u klienta překročeno, vyplatí se jej oslovit - protože smlouvu asi uzavře.


K tomu ale musíme dodat další informace:
  • False Positive Cost
    Zadávám, kolik bude stát, když se model splete a navrhne k oslovení klienta, který smlouvu neuzavře. Čím větší číslo, tím bude model opatrnější, a bude požadovat vyšší skóre k tomu, aby navrhl klienta k uzavření smlouvy. V našem případě třeba 50 - protože, dejme tomu, oslovení klienta stojí 50 Kč a pokud klient smlouvu neuzavře, tak o ty peníze přijdeme.
  • False Negative Cost - zadám, kolik mi bude stát, když se model splete a navrhne mi, že nemám oslovovat klienta, ač by tento klient ve skutečnosti smlouvu uzavřel. Čím větší číslo, tím nižší skóre bude model požadovat - protože se bude snažit falešně negativnímu hodnocení vyhnout. V našem případě můžeme nechat nulu - chybné neoslovení klienta nás nebude stát nic.
  • True Positive Profit - zadám, kolik vydělám v případě, že model správně určí klienta k oslovení. Tedy potenciální tržby za klienta. Pokud budu vědět, že každý klient, kterého oslovím, a on uzavře smlouvu, mi vydělá 500 Kč, vyplním 500.
  • True Negative Profit - pokud bych měl nějaký zisk z toho, že model vyhodnotí správně a negativně některého z klientů, vyplním to sem. V našem případě necháme nulu.
Výsledkem je skóre. Tedy hodnota, kterou musí potenciální klient za všechny parametry (věk, pohlaví..) nasbírat, abychom jej oslovili s nabídkou smlouvy.

List "Prediction Calculator for ..."

Spodní tabulka je stejná jako u předchozího listu, zajímá nás tedy ta horní.
Teď už jsme v situaci, kdy máme potenciálního klienta, a chceme odhadnout, jesti uzavře nebo neuzavře smlouvu.
V tabulce vyplníme vlastnosti tohoto posuzovaného klienta. V našem případě je to například žena mladší než 30 let, bydlící v malé obci, která zatím není naším zákazníkem.


A hned po vyplnění vidím, že tato žena na nabídku nového produktu zřejmě zareaguje pozitivně a smlouvu uzavře. A tím jsme splnili účel našeho snažení - od teď už můžeme takto odhadovat každého klienta.
Výše skóre, kterou musela součtem svých parametrů překonat, se odvíjí mimo jiné od cen, zadaných na předchozím listě.

List "Printable Calculator for..."

Na tomto listě je obsahově to, co na tom předchozím, jen upravené pro vytisknutí a ruční vyhodnocování - třeba pro pracovníky v terénu.


Funkce FORECAST

Do článku o funkcích pro regresní analýzu jsem doplnil popis funkce FORECAST. Funkce FORECAST slouží k tomu, aby se, na základě lineární regresní závislosti, dopočetla hodnota závislé proměnné (y) na základě hodnoty nezávislé proměnné (x).
Funkce FORECAST má syntaxi FORECAST(hodnota závislé proměnné;oblast s hodnotami x;, oblast s hodnotami y).
Jinými slovy. Dejme tomu, že řeším závislost počtu prodaných kopečků zmrzliny na průměrné denní teplotě. Mám údaje o tom, jak se při kterých teplotách zmrzlina prodávala dříve, a teď zjišťuji, kolik kopečků se prodá při denní teplotě 22 stupňů.
Pak je nezávislou proměnnou teplota a závislou počet kopečků a FORECAST se zapíše takto:

  • =FORECAST(22;oblast s údaji o prodaných kopečcích z minulosti;oblast s údaji o teplotě z minulosti)

Více v článku.

neděle 3. listopadu 2013

Data mining - vysledování závislostí - doplňování dat do tabulky podle vzoru

V tomto článku popisuji jednu hodně zajímavou funkci Excelu - doplňování dat podle určitých zákonitostí.
Jedná se o funkci založenou na dataminingovém doplňku Excelu. Informace o něm a o jeho instalaci jsou uvedené v tomto článku, který popisuje jinou jeho funkci - analýzu nákupního košíku.
Teď tedy předpokládám, že doplněk je správně nainstalovaný a připravený k použití.

Příklad

Firma nabídla zboží dvaceti zákazníkům. Někteří si jej koupili, někteří ne. Teď má dalších 80 potenciálních zákazníků, a chce odhadnout, jestli si zboží koupí nebo ne.
U všech zákazníků, současných i budoucích, firma sleduje tři charakteristiky - pohlaví, věk a velikost bydliště zákazníka. Předpokládám, že tyto charakteristiky mohou, ale nemusí, mít vliv na rozhodování zákazníka o nákupu.
Skuteční i potenciální zákazníci jsou v jedné tabulce, která vypadá takto. Tedy rozhodnutí o nákupu znám pouze u některých zákazníků.
Tabulku k vyzkoušení si můžete stáhnout zde.

Řešení

Jdu kamkoliv do tabulky. Jdu na kartu Nástroje tabulky / Analyze. Pokud tato karta není k dispozici, nemám zřejmě nainstalovaný dataminingový doplněk, který obsahuje kromě dataminingu i nástroje pro analýzu tabulky.
V kartě Analyze kliknu na Fill from examples.

V následujícím dialogu vyberu, který sloupec obsahuje částečně hodnoty, které chci doplnit. Bere se to tak, že ostatní sloupce obsahují informace, které mohou ovlivnit výsledek. 

Excel se připojí na Analysis Services a chvilku data chroustá. Výpočty, které v tuto chvíli probíhají, jsou vnitřně docela složité - nás ale zajímá jen výsledek.

Výsledky jsou dva. Na novém listu je znázorněné, jak moc který parametr ovlivňuje výsledek.

















  • V našem případě Excel zjistil, že na nákupní rozhodování má vliv pouze pohlaví a věk - bydliště vůbec.
  • Nejvýraznějším faktorem pro nákup je ženské pohlaví zákazníka, a trochu slabší vliv má věk mezi 15 a 28 lety.
  • Faktorem pro odmítnutí nákupu je mužské pohlaví zákazníka.
  • Ideálním zákazníkem, který zřejmě koupí náš produkt, je tedy žena ve mezi patnácti a osmadvaceti.
Kromě toho v původní tabulce přibyl nový sloupec. V něm jsou jednak zopakované hodnoty od zákazníků, kde už byly uvedené, ale kromě toho, a to je hlavní, dopočítané hodnoty u těch zákazníků, kde jsme informaci neměli. Jsou dopočtené podle logiky, kterou měla už známá data - tedy v našem případě je "Koupil" uvedeno hlavně u mladších žen.

A to je celé. 



Data mining - vysledování závislostí - doplňování dat do tabulky podle vzoru

V tomto článku popisuji jednu hodně zajímavou funkci Excelu - doplňování dat podle určitých zákonitostí.
Jedná se o funkci založenou na dataminingovém doplňku Excelu. Informace o něm a o jeho instalaci jsou uvedené v tomto článku, který popisuje jinou jeho funkci - analýzu nákupního košíku.
Teď tedy předpokládám, že doplněk je správně nainstalovaný a připravený k použití.

Příklad

Firma nabídla zboží dvaceti zákazníkům. Někteří si jej koupili, někteří ne. Teď má dalších 80 potenciálních zákazníků, a chce odhadnout, jestli si zboží koupí nebo ne.
U všech zákazníků, současných i budoucích, firma sleduje tři charakteristiky - pohlaví, věk a velikost bydliště zákazníka. Předpokládám, že tyto charakteristiky mohou, ale nemusí, mít vliv na rozhodování zákazníka o nákupu.
Skuteční i potenciální zákazníci jsou v jedné tabulce, která vypadá takto. Tedy rozhodnutí o nákupu znám pouze u některých zákazníků.
Tabulku k vyzkoušení si můžete stáhnout zde.

Řešení

Označím celou tabulku a jdu na Vložit / Tabulku. 
Jdu kamkoliv do tabulky. Jdu na kartu Nástroje tabulky / Analyze. Pokud tato karta není k dispozici, nemám zřejmě nainstalovaný dataminingový doplněk, který obsahuje kromě dataminingu i nástroje pro analýzu tabulky.
V kartě Analyze kliknu na Fill from examples.

V následujícím dialogu vyberu, který sloupec obsahuje částečně hodnoty, které chci doplnit. Bere se to tak, že ostatní sloupce obsahují informace, které mohou ovlivnit výsledek. 

Excel se připojí na Analysis Services a chvilku data chroustá. Výpočty, které v tuto chvíli probíhají, jsou vnitřně docela složité - nás ale zajímá jen výsledek.

Výsledky jsou dva. Na novém listu je znázorněné, jak moc který parametr ovlivňuje výsledek.

















  • V našem případě Excel zjistil, že na nákupní rozhodování má vliv pouze pohlaví a věk - bydliště vůbec.
  • Nejvýraznějším faktorem pro nákup je ženské pohlaví zákazníka, a trochu slabší vliv má věk mezi 15 a 28 lety.
  • Faktorem pro odmítnutí nákupu je mužské pohlaví zákazníka.
  • Ideálním zákazníkem, který zřejmě koupí náš produkt, je tedy žena ve mezi patnácti a osmadvaceti.
Kromě toho v původní tabulce přibyl nový sloupec. V něm jsou jednak zopakované hodnoty od zákazníků, kde už byly uvedené, ale kromě toho, a to je hlavní, dopočítané hodnoty u těch zákazníků, kde jsme informaci neměli. Jsou dopočtené podle logiky, kterou měla už známá data - tedy v našem případě je "Koupil" uvedeno hlavně u mladších žen.

A to je celé. 



Dohledání hodnot na základě části textu

Příklad

Představte si, že potřebujete propojit dvě tabulky funkcí SVYHLEDAT (VLOOKUP). Neznáte ale přesné hodnoty - znáte jen části textů, které jsou v dohledávané tabulce. Asi takto:

Řešení

Řešením je kombinace několika funkcí, které dají dohromady tento vzorec:
=INDEX(F:F;POZVYHLEDAT(CONCATENATE("*";A3;"*");E:E;0);0)

  • Funkce CONCATENATE obalí hodnotu z buňky A3 do hvězdiček. To proto, že hvězdička nahrazuje jakýkoliv symbol nebo skupinu symbolů. 
  • Funkce POZVYHLEDAT (MATCH), která ji obaluje, tedy nebude hledat konkrétní hodnotu z buňky A3, ale cokoliv, co hodnotu z A3 obsahuje.
  • V tomto případě by fungoval i jednodušší zápis =SVYHLEDAT(A:A;E:F;2;0). Jeho fungování by ale bylo, jak vyplývá z logiky funkce SVYHLEDAT, omezené jen na situaci, kdy tabulka, ze které čerpám, má hodnoty, ze kterých se páruje, v prvním sloupci.
  • Kombinace funkcí INDEX a POZVYHLEDAT je popsaná tady.

Takto vypadá výsledek:


Dohledání hodnot na základě části textu

Příklad

Představte si, že potřebujete propojit dvě tabulky funkcí SVYHLEDAT (VLOOKUP). Neznáte ale přesné hodnoty - znáte jen části textů, které jsou v dohledávané tabulce. Asi takto:

Řešení

Řešením je kombinace několika funkcí, které dají dohromady tento vzorec:
=INDEX(F:F;POZVYHLEDAT(CONCATENATE("*";A3;"*");E:E;0);0)

  • Funkce CONCATENATE obalí hodnotu z buňky A3 do hvězdiček. To proto, že hvězdička nahrazuje jakýkoliv symbol nebo skupinu symbolů. 
  • Funkce POZVYHLEDAT (MATCH), která ji obaluje, tedy nebude hledat konkrétní hodnotu z buňky A3, ale cokoliv, co hodnotu z A3 obsahuje.
  • Kombinace funkcí INDEX a POZVYHLEDAT je popsaná tady.

Takto vypadá výsledek:


sobota 2. listopadu 2013

Mapy v Power View

Jako celkem otrlého uživatele Excelu mě jen tak nějaká nová funkce nezaskočí. Co mě ale nadchlo hodně, je způsob prezentace dat v doplňku Power View.
Představte si, že máte jednoduchou tabulku, například s tržbami. Tabulka vypadá takto:
 
S pomocí Power View z ní můžete během pár vteřin udělat interaktivní mapu, ve které uvidíte, jak se kde které produkty sledované firmy prodávaly:

Návody, které souvisejí s doplňkem Power View a doplňkem Power Pivot, teď budu umisťovat na zvláštní stránky, proto pokud se na něj chcete podívat, klikněte sem.