Banner

piatok 15. mája 2015

Ako zistiť presné súradnice farby v reporte

 

Ako to už býva zvykom, okrem zložitých procesov – namávavých na mozgové bunky človek niekedy potrebuje riešiť triviálnosti ako sú napríklad korporátne farby v reporte. Inak povedané – nie je modrá ako modrá, na čo niektoré firmy dávajú striktný dôraz.

Pre ľahšiu manipuláciu je dôležité poznať tie správne indexy farieb. Určite každý sa v praxi stretol napríklad s pojmom RGB index, kde R – red, G – Green a B – Blue odtiene.

Nasledujúce VBA skripty definujú farebné indexy:

Function Color(RNG As Range, Optional formatType As Integer = 0) As Variant
    Dim colorVal As Variant
    colorVal = Cells(RNG.Row, RNG.Column).Interior.Color
    Select Case formatType
        Case 1
            Color = Hex(colorVal)
        Case 2
            Color = (colorVal Mod 256) & ", " & ((colorVal \ 256) Mod 256) & ", " & (colorVal \ 65536)
        Case 3
            Color = Cells(RNG.Row, RNG.Column).Interior.ColorIndex
        Case Else
            Color = colorVal
    End Select
End Function

‘======================================================================


Function
hexColor(RNG As Range)

    colorVal = RNG.Interior.Color
    hexColor = Hex(RGB((colorVal \ 65536), ((colorVal \ 256) Mod 256), (colorVal Mod 256)))

End Function

Funkcionalitu si môžete skúsiť v priloženom súbore, kliknutím na obrázok. Tip pokúste sa kombinovať výstupy a hľadať dané farby na internete.

Poznámka: V súčasnosti existuje množstvo tzv. “Color Pickerov”, ako napríklad paint.net ktoré bez akýchkoľvek dodatočných aktivít nám zistia color index a editujú obrázky (ikonky). Avšak ak potrebujete aby sa v reporte menili farby na základe istých podmienok, je VBA funkcionalita *.Interior.Color vskutku užitočný nástroj.

             downloads_normal

sobota 4. apríla 2015

Moderný reporting – prvý report (2. časť) + Inštalácia Jaspersoft Studio

 

Dostávame sa do situácie, keď máme všetko potrebné pre prípravu reportu. Nakoľko sa táto fáza zdá byť kozmetická záležitosť, opak je pravdou a čo je ešte viac smutné, 99 % firiem neinvestuje do vývoja obsahovej zložky ani potrebné minimum.

Ako to funguje:

80 % analytikov v novej práci zdedí už hotové reporty. Ich úlohou je pochopenie a pravidelná aktualizácia, prípadne tvorba dodatočných čísiel v závislosti od požiadaviek managementu. Čo musí analytik / controller zvládnuť je pochopiť biznis tak, aby naň mal relevantný pohľad a vedel, “na ktoré čísla dávať zvýšenú pozornosť”. Z technického hľadiska je výhodné automatizovať samotnú prácu ako napríklad čistenie dát, tvorba summary apod..

V prípade, že zvládnete už spomenuté požiadavky, nastáva čas pre “show time”. Vzniká  priestor, v ktorom sa začnete zamýšľať a inovovať existujúce reporty, resp. metriky. Inými slovami konzultovať a prezentovať nápady vedeniu spoločnosti.

V prípade, že sa táto snaha vrámci spoločnosti ocení – máte ideálne podmienky na “varenie si  polievočky seniornej resp. managerskej pozície”.

Rozhodol som sa preto zdieľať niekoľko rád, odpovedí na otázku: Ako vytvoriť kvalitný report?

1) Definujte si, čo je cieľom reportu – aké info má poskytovať? V našom prípade to bude odpoveď na otázku: Koľko jednotlivý predajca predal áut v danom regióne, pričom platí, že predajcovia kolujú medzi predajňami.

image

2) Stanovte si osnovu reportu. Obrázok ilustruje nasledujúcu logiku:

Zvolím si zamestnanca, obdobie, metriku (vysvetlím neskôr) a ostatné parametre. Prvá vizualizácia je celkový predaj v období, kde okrem absolútnych hodnôt zobrazujem porovnanie s minulým obdobím (ako si polepšil / pohoršil oproti minulému mesiacu alebo kvartálu), s benchmarkom (istá očakávaná hodnota, pod ktorú by nemal spadnúť).

Tento celkový počet chcem rozdeliť podľa modelov – vzhľadom k množstvu verzií automobilov Škoda a skutočnosti, že sa nejedná o časovú súslednosť medzi hodnotami (mám jedno číslo, rozdelené do skupín – modelov aut, ktoré sa predali vo vybranom čase) považujem za prehľadnejší spôsob tabuľku v porovnaní s grafom.

Nakoniec ma zaujíma, kde sa predajcovi darilo najviac a kde najmenej (aby som v budúcnosti vedel optimalizovať alokáciu dealerov). Túto problematiku nám zobrazí HeatMap s hodnotami.

Čo môžem zistiť? – Skutočnosť či zamestnanec nadhodnocuje alebo podhodnocuje plán, ak áno je to sezónna záležitosť (tým pádom by sa nemohol odlišovať od benchmarku) alebo individuálna (rozdiel oproti predchádzajúcemu obdobiu a súčasne benchmarku)? Taktiež, chcem vidieť ktoré autá dobre predával a ktoré nie (zistím, či daný dealer ľahšie predáva rodinám (Yeti, Combi verzie Škodovky), alebo je B2B orientovaný (obnovuje vozový park managerskými Octaviami alebo Superbami). Nakoniec chcem vidieť región, v ktorom mal najlepší a najhorší predaj. Tým pádom ak vezmem v úvahu čas v ktorom regióne ako dlho predával, dokážem s ním efektívne konzultovať výkonnosť a doladiť podmienky tak, aby predával čo najlepšie!

3) Stanovím si metriky – Inak povedané, je rozdiel konštruovať benchmark priemerom, váženým priemerom, mediánom apod. Používajte aspoň vážený priemer, ja osobne preferujem medián, čo je 50% kvantil – v praxi to znamená, že 50% dealerov predalo nad mediánovou hodnotou. Otatní sa budú musieť snažiť viac .Smile Detail o  danej problematike nájdete kliknutím tu.

4) Nepoužívam divoké grafy. V našom prípade použijeme:

Prvý bude kombináciou Line a Area Chartov. Druhý je kombináciou mapy   (Bing / Google) a pre mnohých veľmi obľúbeného, avšak irelevantne používaného Pie chartu. O problematike používania grafov budem písať v samostatnom článku.

Teraz si ukážeme ako si nainštalovať Jaspersoft Studio. Pripomeniem, že pomocou Studia budeme navrhovať daný report.

Kliknite na odkaz: https://community.jaspersoft.com/download Kliknite na

image

A vyberte si nasledujúci inštalátor podľa toho,koľko bitový máte OS:

image 

alebo stiahnite si Studio pre Win 64bit kliknutím tu. Potom kliknite na uložený súbor:

image

A spusťte inštaláciu (I agree –> niekoľkokrát Next –> Finish a je to Smile):

image

Po inštalácii sa Vám progam spusí sám. Ak nie kliknite na ikonku:

image

Pri otvorení nadefinujte miesto, kde sa majú ukladať reporty, adaptéry a rôzne iné nastavenia vrámci Japsersoft:

image

Potom by sa Vám malo zobraziť Welcome okno:

image

Ak ho zavriete alebo prejdete na: Window –> New Window dostanete sa na Jaspersoft Workbench:

image

Gratulujem, nachádzate sa v prostredí, z ktorého budeme tvoriť webové reporty.

Podrobný popis Studia a prvé začiatky si ukážeme v nasledujúcom článku. V prípade dotazov alebo iných informácii / služieb neváhajte kliknúť na Facebook, alebo si prejsť môj web.

utorok 17. marca 2015

Moderný reporting–prvý report (1. časť)

 

Dostávame sa k prvej biznisovej otázke:

Koľko jednotlivý predajca predal áut v danom regióne, pričom platí, že predajcovia kolujú medzi predajňami.

Na nasledujúcom obrázku máme vyznačné tabuľky, vrámci ktorých budeme pripravovať query:

Pic1

Ak použijeme jednoduchú query na počet záznamov (predajov) dostaneme nasledujúci výsledok:

select count(*) as 'Počet' from sales; výsledok: 17472

Čo je na Škoda auto celkom málo, avšak relevantné data ešte len prídu. Ak si rozšírime query podľa rokov a mesiacov, dostaneme nasledujúci výsledok:

select Mesiac, Rok, count(*) as 'Počet' from sales group by Mesiac, Rok;

image

Teraz nasleduje pripojenie Predajcov, takže použijeme Join klauzulu. Všimnite si logiku pochodu, kde celkový počet rozdeľujem do detailov, pričom Grand Total mi slúži ako kontrola selektu (Predchádzajúcu tabuľku som pripravil v Exceli samozrejme):

select sales.Mesiac as 'Mesiac', sales.Rok as 'Rok', Dealer.Predajca as 'Díler', count(*) as 'Počet' from sales left join Dealer on sales.Predajca = Dealer.ID group by sales.Mesiac, sales.Rok, Dealer.Predajca;

Výsledok, vzhľadom k tomu, že sa už v tomto prípade jedná o celkom veľkú Pivotku je obmedzený na rok 2014 vo filtri, kde si môžeme prepínaním overiť predajnosť dealerov vzhľadom k totálu (728 vozidiel pre všetky mesiace, 672 ročný predaj každého dílera):

image

Vezmime si teraz napríklad Romana, ktorého celkový predaj za Január v roku 2014 má byť 56 vozidiel. Rozšírime tento skript o hodnoty z tabuľky City:

select sales.Mesiac as 'Mesiac', sales.Rok as 'Rok', City.Mesto as 'Mesto', Dealer.Predajca as 'Díler', count(*) as 'Počet' from sales left join Dealer on sales.Predajca = Dealer.ID  left join City on sales.Mesto = City.ID group by sales.Mesiac, sales.Rok, Dealer.Predajca, City.Mesto;

image

Celkovo si všimnite, že sa nám mesačná predajnosť zhoduje (56 áut) spolu s celkovou predajnosťou dílera za rok 2014 (672 áut).

Ako posledný skript budeme uvažovať doplnenie o typ auta, t.z. pridanie tabuľky Car:

select sales.Mesiac as 'Mesiac', sales.Rok as 'Rok', City.Mesto as 'Mesto', Car.Auto as 'Auto', Dealer.Predajca as 'Díler', count(*) as 'Počet' from sales left join Dealer on sales.Predajca = Dealer.ID  left join City on sales.Mesto = City.ID left join Car on sales.Auto = car.ID  group by sales.Mesiac, sales.Rok, Dealer.Predajca, City.Mesto, Car.Auto;

image

Platí, že pre každý mesiac predá presne po jednom kuse špecifického modelu.

Ako už iste tušíte, tieto data nepatria medzi najvhodnejšie vrámci budovania reportov. No vzhľadom k tomu, že chcem aby sa Vám SQL-ko dostalo čo najskôr pod kožu, zvolil som túto predbežnú cvičnú databázku (17472 = 728 x 12 x 2 – Tabuľka 1 alebo 56 x 12 x 13 x [2 – Filter] – Tabuľka2 alebo 8 x 7 x 12 x [13 x 2 – Filter] alebo 7 x 1 x 12 x [13 x 2 x 8 – Filter] – Tabuľka3).

Nabudúce si povieme niečo k obsahu reportu, resp. ako má report vyzerať a budeme kresliť Winking smile