Üzleti intelligencia

Áttekintés

Az üzleti intelligencia elhelyezkedése

Az üzleti intelligencia (business intelligence, BI) napjaink egy felfutó témája. Egyre több adat áll rendelkezésünkre, melyek feldolgozása szerteágazó tudománnyá nőtte ki magát. A területet és környezetét talán az alábbi ábra foglalja legjobban össze, melyet a https://www.pinterest.ca/pin/36873290678654672/ oldalról töltöttem le:

holisticbi.png

Az üzleti intelligenciával kapcsolatos fogalmak és azok kapcsolódásai:

  • Döntés előkészítés (decision management): az adatok összegyűjtésének, feldolgozásának és megjelenítésének a végső oka. Tehát valamilyen hasznos információt szeretnénk az adatból kiolvasni.
  • Adattudomány (data science): az adatok feldolgozásának a tudománya. Módszereket nyújt, melynek segítségével plusz tudást tudunk kinyerni az összegyűlt adatokból. Az adattudomány alapvetően jósló (predictive): segítségével a rendelkezésre álló adatokból megpróbáljuk kitalálni a várható adatokat.
  • Üzleti intelligencia (business intelligence): az adatok végső megjelenítése a döntéshozók számára. Jellegét tekintve leíró (descriptive): a rendelkezésre álló adatokat jeleníti meg könnyen emészthető formában.
  • Az adattudomány és az üzleti intelligencia is ugyanannak a nagy rendszernek a része, a viszonyuk viszont mellérendelő: egyik sem része a másiknak; van közös metszetük, vannak területek, amelyek csak az egyikben és csak a másikban fordulnak elő.
  • Big data: azt az adatmennyiséget értjük ez alatt, amit hagyományos módszerekkel nem tudunk feldolgozni. Nem kötelező része egyiknek sem, inkább csak velejárója: általában az adatok mennyisége megköveteli a big data technológiák alkalmazását.

Elmélet

A túl sok adat áttekinthetetlen; érdemes bizonyos fogalmakat bevezetni a jobb áttekinthetőség érdekében:

  • Tény (fact): ez az adatok központi eleme. Erre semmi sem hivatkozik, és ez minden másra hivatkozik közvetlenül vagy közvetve. Ez az, amit valami módon meg szeretnénk fogni. Ilyenből tipikusan egy vagy nagyon kevés van. A bemutató példákban ez az eladás tábla: minden egyes eladásról tartalmazza az adatokat: pl. mikor és hol történt a vásárlás, mit vettek, abból hány darabot, mennyit fizettek érte stb. A lenti példában is egy ilyet fogunk megnézni.
  • Dimenzió (dimension): ami nem tény tábla, az dimenzió tábla. Amiatt hívjuk dimenziónak, mert ezek menténk szeretnénk a műveleteket végrehajtani és az eredményt megjeleníteni. Például: hogyan változott az alma eladás Ázsiában az elmúlt években. A tény táblában a dimenziók kulcsára hivatkozunk csak, és itt adjuk meg a részleteket, pl. az adott termékről (ha pl. a termék egy autó, akkor hány személyes, hány lóerős a motorja stb.), az adott területről (tegyük fel, hogy az eladásban az ország van megadva; itt adhatjuk meg a földrészt, és tudunk földrészekre bontott összegzéseket végrehajtani), az adott időpontról (pl. ha a vásárlás dátuma van megadva, akkor itt tudjuk kideríteni, hogy az pl. hányadik hete az évnek, és heti összegzéseket tudunk végrehajtani.)
  • Hierarchia (hierarchy): ez valójában a dimenzió továbbgondolása, egyre részletesebb granularitással alábontva. Példa a dátum hierarchiára: év - negyedév - hónap, tehát a legmagasabb szinten összesítjük az évet, alábontva megjelenik a negyedév, és az alatt a havi bontás. Ugyanígy lehetnek dimenziói az áru fajtájának (pl. fő kategória - alkategória - termék, pl. élelmiszer - gyümölcs - alma), az eladás helyszínének (kontinens - ország - terület).
  • Mérték (measure): azt jelenti, hogy mit szeretnénk megjeleníteni. Ez döntőrészt a tény táblából adódik, tipikusan egy-egy oszlop összege, pl. az eladások bevételeinek az összege. De tetszőleges mértéket megvalósíthatunk, pl. valamilyen érték maximuma, átlaga, növekedése az előző azonos időszakhoz képest. Vagy akár számított érték több oszlop alapján, pl. az előállítási költség és az eladási ár alapján számolható a nyereség.
  • KPI: a mértékekhez fűzhetünk határértékeket, tipikusan kettőt, ami 3 intervallumot határoz meg: rossz, elfogadható, jó. Ezeket tipikusan pirossal, sárgával és zölddel szokás megjeleníteni.

Power BI

Ez a leírás karcolja az üzleti intelligencia felszínét a Microsoft által fejlesztett Power BI rendszer segítségével. Ehhez töltsük le a Power BI Desktop programot a https://powerbi.microsoft.com/hu-hu/desktop/ oldalról és telepítsük fel. A rendszerről igen szerteágazó dokumentációt olvashatunk a https://docs.microsoft.com/hu-hu/power-bi/ oldalról indulva, és a szokásos Microsoft leírásokhoz képest ez kivételesen kifejezetten használható!

Adatforrások

A PowerBI számos adatforrást támogat, melyek közül most megnézünk néhányat. Amint azt látni fogjuk, a Power BI sok helyek kiforratlan, logikátlan és nehézkes. Az adatforrás megadása se nyilvánvaló. Az adatforrás első megadása: Home → Get Data → itt tudunk számos lehetőség közül választani; a More…-ra kattintva több mint százra. Utólag viszont a Home → Edit Queries → Data source settings menüpontot kiválasztva tudunk módosítani rajta. Ez alól kivételt képez az adatok közvetlen beírása.

Ha megnyitunk egy riportot, amelyben már be van állítva az adatforrás, ami nem elérhető, akkor hibaüzenetet hibaüzenetre halmoz, így gyakorlatilag használhatatlan.

Az adatok közvetlen beírása

Az adatokat közvetlenül is beírhatjuk, ezáltal nem függünk egy külső adatforrástól. A dolog jellegéből fakadóan csak kis adatmennyiséggel tudunk így dolgozni, leginkább kipróbálási céllal. Ebben a leírásban az egyszerűség érdekében ilyen adatokkal fogunk dolgozni.

Az adatok közvetlen beírása nem adja magát. A következőket érdemes tudni:

  • Home → Enter Data: itt tudunk új táblát létrehozni. Miután végeztünk az adatbevitellel (kivételesen itt adja magát az, hogy hogyan tudunk oszlopot létrehozni és sort beszúrni, és a típust is jól kitalálja, bár arra még nem jöttem rá, hogy azt hogyan lehet precízen beállítani), a teljesen logikátlan Load feliratú gombra kell kattintani a mentéshez (OK, hogy a riport szempontjából ez adatbetöltés, de akkor is…).
  • Home → Edit Queries: itt tudjuk a meglevő adatokat módosítani. Ehhez ki kell bal oldalon választani a módosítani kívánt táblát, job oldalon, az APPLIED STEPS alatt, a Source mellett jobb oldalon van egy fogaskerék, arra kattintva tudjuk módosítani az adatokat. (Nem votl egyszerű megtalálni!)
  • Az adattáblákat összekapcsolni - bármennyire is logikusnak tűnik - nem itt lehet, hanem a főprogramban a Modeling fülön a Manage Relationships ikonra kattintva tudjuk megtenni. A tapasztalatom szerint többé-kevésbé jól működik az automatikus felderítés.
  • A főprogram bal oldalán van három ikon: a riport nézet, az adat nézet és a modell nézet. Ezek áttekintést nyújtanak az adatokról.

Excel

Excelből is be tudjuk tölteni az adatokat, ami meglepően jól működött már elsőre: azExcel lapok megfelelnek a tábláknak, az első sort fejlécként értelmezi, és azok az oszlopnevek, az összekapcsolást pedig automatikusan teljesen logikusan elvégezte.

Készítettem egy példát, ami képzeletbeli eladásokat tartalmaz. Egy-egy eladás tartalmazza azt, hogy hol és mikor történt, mit adtak el, hány darabot vettek belőle és mennyit fizettek érte. Három helyszínen három évben három gyümölcs eladás történt, ami összesen 27 kombinációt eredményez. A darabszám és az eladási ár korrelál egymással, de mivel eltérő egységárat alkalmaztam, a korreláció messze nem 100%-os. Az eladás táblát F_, a többit D_ prefixszel láttam el, ezzel jelezve, hogy az eladás a tény tábla (fact), a többi pedig a dimenzió (dimension).

A példa reprodukálásához töltsük le a sales.xlsx Excel fájlt, majd a Power BI Desktopban a Home → Get Data → Excel menüpontot kiválasztva keressük meg a lementett fájlt, és töltsük be a táblákat. Célszerűen rejtsük el az azonosítókat: az ID postfixű mezőnevek mellett kattintsunk a 3 pontra → Hide.

A végeredmény (beleértve a később leírt fejlesztéseket is) a következő: sales.pbix.

Egyébként az Excel önmaga is tartalmaz olyan részeket, amelyek az üzleti intelligenciát segítik elő:

  • Az Excelben is tudunk diagramokat létrehozni; a lent bemutatottak közül számos itt is megtalálható.
  • A lent használt nyelv, azaz a DAX, az Excel függvényeinek továbbgondolása. A DAX függvények 80-90%-a az Excelben is megtalálható.
  • Az Excelnek van egy kiegészítője: a PowerPivot. Ennek segítségével tudunk olyan lekérdezéseket végrehajtani, amit a Power BI is tesz, és az adatokat táblázatosan meg tudjuk jeleníteni.

Adatbázis

A több mint százféle további adatforrás közül kétfélét próbáltam ki: az SQL adatbázist és az Analysis Services-t. Mindkét esetben kétféle módon tudunk csatlakozni a rendszerhez: az adatok betöltésével és élő kapcsolattal. Az első esetben az adatok a PowerBI memóriájában vannak eltárolva (feltételezhető, hogy ez a módszer csak bizonyos adatmennyiségig alkalmazható); az eredeti adatforrásnak tehát az importálás után nem kell elérhetőnek maradnia, viszont az adatok megváltozása nem kerül automatikusan frissítésre. A másik eset állandó adatkapcsolatot kíván, és mivel a kérés egy külső szolgáltatáshoz megy, lassúbb is, viszont minden változás az adatforráson azonnal megjelenik.

Az adatok kezelése

Az adatokat nemcsak forrás szinten tudjuk kezelni, hanem a Power BI-ban is. Lássunk két gyakori technikát!

Számolt oszlop

A meglevő oszlopokból újabb számított oszlopot hozhatunk létre. Pl. az egységárat tartalmazó oszlopot, ami az ára és a darabszám hányadosa, a következőképpen hozhatjuk létre:

  • A Fields alatt az F_Sales sorában navigálva az egérkurzorral látunk 3 pontot. Kattintsunk rá.
  • Válasszuk ki ezt: New column
  • Fent a beviteli mezőbe írjuk be a következő képletet: UnitPrice = F_Sales[Price] / F_Sales[Pieces]

Az eredményt úgy kell elképzelni, mintha a táblázatban megjelenne egy újabb oszlop az egységárral. Ha bal oldalon kiválasztjuk az adatokat (Data), majd jobb oldalon az F_Sales-re kattintunk, akkor láthatjuk is.

Új mérték

A diagramokon - ahogy látni fogjuk - mértékeket (angolul measure) tudunk megjeleníteni. Ilyeneket már a forrás oldalon is definiálhatunk, ill. a Power BI maga is automatikusan létrehoz a számszerű értékekből mértéket azok összegeként. De mi magunk is hozhatunk létre ilyet. Példál az egységár átlagát a következőképpen tudjuk létrehozni:

  • Ugyanúgy az F_Sales melletti 3 pontra kattintva válasszuk ki a New measure-t.
  • Írjuk be a következőt: AverageUnitPrice = AVERAGE(F_Sales[UnitPrice]). Az AVERAGE itt egy DAX függvény.

Vizuális elemek

"Egy kép többet mond ezer szónál" - szól a bölcsesség, és milyen igaz! Egy-egy jól elkészített diagram alapján gyakran sokkal jobban és gyorsabban megértjük a témát, mintha kisregényeket olvasnánk ugyanarról. De egy jó kép elkészítése nem egyszerű: ehhez megfelelő ismeretre és időre is szükség van. Ebben a szakaszban a leggyakoribb diagram típusokkal ismerkedünk meg, valamint azzal, hogy Power BI-ban hogyan tudjuk létrehozni.

Egy-egy vizuális elem létrehozás a következő:

  • Kattintsunk a kívánt vizuális elemre. Ezzel az aktuális fülön automatikusan létrejön egy üres terület, ami halványan utal a diagram típusára. (Füleket alul a + ikonra kattintva tudunk létrehozni.)
  • Az elemet mozgathatjuk, átméretezhetjük, a más programokban megszokott módokon.
  • A diagram típusától függ, hogy mi mindent tudunk beállítani. Értékeket, koordinátákat, tippeket stb. tudunk megadni, általában mértékek és dimenziók segítségével.
  • Általában elég csak a megfelelő elemre kattintani és azt megpróbálja a rendszer behelyezni a megfelelő helyre. Pl. a mértékeket a Values cellába helyezi, a dimenzióneveket pedig sorok, oszlopok, koordináták stb. lesznek.
  • A diagramot testre szabhatjuk, amiről még lesz szó később.
  • Kész diagram típusát egyetlen kattintással megváltoztathatjuk azzal, hogy rákattintunk a másik diagram típusra.

A vizuális elemek az általam használt verzióban az alábbi eltrendezésben látható; ez alapján hivatkozok a leírásban rájuk:

visualizations.png

Táblázatok

Talán a legegyszerűbb diagram típus a táblázat. Ne becsüljük alá ennek jelentőségét! A megfelelő forma megtalálása nem egyszerű, ha egyrészt informatívak, másrészt áttekinthetőek szeretnénk lenni.

A Power BI kétféle táblázat típust kínál, mely a vizualizációs elemek között található, az általam használt verzióban az ötödik sor második és harmadik eleme.

Táblázat (Table)

A megjelenítendő értékeket a kívánt sorrendben felsoroljuk, a rendszer pedig az összes lehetséges kombinációból készít egy sort. Leginkább statikus formában érdemes használni, pl. egy könyvben illusztrációként.

Táblázatot a következőképpen hozhatunk létre:

  • Készítsünk egy üres Table típusú elemet.
  • Válasszuk ki a megjeleníteni kívánt mértékeket és dimenziókat. Ezek automatikusan bekerülnek a Values alá. Ott fogd és vidd (drag and drop) technikával beállíthatjuk a sorrendet. A lenti példában a sorrend ez: Year, ProductName, Continent, Pieces, Price.

A példában szerepel minden adat: melyik évben melyik termékből melyik kontinensen hány darabot adtak el mennyi pénzért. A táblázat így 27 sort tartalmaz.

table.png

Mátrix (Matrix)

A táblázat interaktív továbbgondolása: bizonyos részek lenyithatóak, összecsukhatóak, így amellett, hogy minden információ megtalálható. Létrehozása.

  • Hozzunk létre egy üres Matrix típusú elemet.
  • Először adjuk meg magát az értéket (Values), pl. F_Sales → Pieces. Akár több mértéket is megadhatunk, pl. a darabszámot (Pieces) és az árat (Price) is, de úgy talán túlzsúfolt lesz a diagram. A példában én külön diagramot készítettem a két mértéknek.
  • Állítsuk be a kívánt sorokat. Itt többet is megadhatunk, pl. D_Date → Year és D_Territory → Continent.
  • Állítsuk be az oszlopokat is, pl. D_Product → ProductName.

Eredményül egy kompakt diagramot kaptunk, melyet kedvünkre nyithatunk, csukhatunk.

matrix.png

Oszlopdiagramok

Az oszlop diagramok alapvető fontosságúak. Kiválóan alkalmas mennyiségek összehasonlítására, azok időbeni változására vagy más szempont szerinti összehasonlítására, valamint a gyakoriság diagramok (hisztogramok) formája is oszlop diagram. A Power BI 6+2 féle oszlop diagramot tartalmaz, melyek - valószínűleg nem véletlenül - kitöltik a vizualizációs elemek első sorát, a +2 pedig a második sor negyedik és ötödik eleme. Ezek a következők. A 6 az oszlopdiagramok különböző változatai, a +2 pedig a vonaldiagramokkal kombinált változatok. Itt az első ötöt nézzük meg, az összevont változatokra pedig a következő alfejezetben láthatunk példát.

Egymásra helyezett oszlopdiagram (Stacked bar chart és Stacked column chart)

Lehet fekvő vagy álló, amit az első ill. a második ikonra kattintva használhatunk. A fekvőt sávdiagramnak is szokásnevezni. Lássunk a fekvőre egy példát, amin még nincs semmi egymásra rakva!

  • Kattintsunk a Stacked bar chart ikonra.
  • Értéknek (Value) állítsuk be a Pieces mértéket. (Elég rákattintani, a megfelelő helyre teszi.)
  • Tengelynek (Axis) adjuk meg ProductName dimenziót. (Erre is elég rákattintani.)

Eredményül az alábbit kapjuk (egyelőre más sorrendben; a rendezéssel később foglalkozunk):

barchart.png

Az egymásra helyezett (stacked) azt jelenti, hogy az oszlopdiagramokat alá lehet bontani. Ehhez folytassuk az előző példát (vagy készítsünk róla másolatot, ahogy én is tettem) a következő lépéssel:

  • A felirat (Legend) legyen Continent. (Itt is elég rákattintani.)

A diagram mérete megmaradt akkorának, amekkora volt, viszont azt is megmutatja, hogy miként állt össze az eladás kontinensre lebontva. Ezzel a módszerrel tehát két dimenziót is meg tudunk jeleníteni egyszerre.

stackedbarchart.png

Egymás mellé helyezett oszlopdiagram (Clustered bar chart és Clustered column chart)

Az előző példában az összeget hangsúlyoztuk, és az alábontással inkább csak nagyságrendi becslést érzékeltettünk. Ránézésre nehéz megmondani, hogy miből adtak el többet: banánból Európában vagy körtéből Ázsiában. Ha ezt összehasonlíthatóvá szeretnénk tenni, és az összeg nem fontos, akkor az oszlopokat célszerű egymás mellé helyezni.

A létrehozásának pontosan ugyanazok a lépései, mint a fenti példában, azzal a különbséggel, hogy a Clustered bar chart ikonjára kell kattintani. Valójában ha az előző példában rákattintunk akkor egyből megkapjuk az új diagramot.

clusteredbarchart.png

Persze mindennek ára van: most az összeg teljesen elveszett, és még annyira sem tudjuk elképzelni ennek alapján, hogy almából vagy barackból adtak-e el többet összesen, mint amennyire nem láttuk az előző példán az említett összehasonlítást.

100%-os kitöltöttségű egymásra helyezett oszlopdiagram (100% Stacked bar chart és 100% Stacked column chart)

Ha semmi más nem fontos, csak az oszlopon belüli arány, tehát pl. milyen volt az egyes gyümölcsfajta eladások kontinensenkénti eloszlása, és az abszolút érték irreleváns, akkor használhatjuk ezt a típust. A létrehozása megegyezik az egymásra helyezett módszerrel, azzal a nyilvánvaló eltéréssel, hogy a 100% Stacked bar chart ikonra kell kattintani.

100pstacked.png

Egymás mellé és egymás fölé helyezett oszlopdiagram

Sokszor jönne jól, mert ezzel egyszerre 3 dolgot is meg tudnánk jeleníteni, pl. az évet, a gyümölcsöt és a kontinenst, de ilyen sajnos nincs a Power BI-ban (kissé nevetséges, inkább kifogásszagú magyarázattal).

Vonal diagramok

A vonal diagramok szintén a legfontosabbak közé tartoznak. Elsősorban akkor célszerű használni, ha a mennyiségek időbeni változását szeretnénk illusztrálni. A Power BI ötféle vonal diagramot támogat: magát a vonaldiagramot, a terület diagramot, az egymásra helyezett terület diagramot, valamint két oszlopdiagram-vonaldiagram kombinációt.

Vonaldiagram (Line chart)

Készítsük el a gyümölcsök eladási darabszámának időbeli változását, kontinensre bontva! (Most tekintsünk el attól a hibától, hogy összeadjuk az almát a banánnal.)

  • Válasszuk ki a Line chart elemet!
  • Values: F_SalesPieces
  • Axis: D_DateYear
  • Legend: D_AreaContinent

Az eredmény (miután beállítottuk a határokat is, ld. lejjebb):

linechart.png

Terület diagram (Area chart)

A terület diagram olyan vonal diagram, melyben a vonal alatti rész be van festve. Ennek leginkább akkor van értelme, ha egy valamit szeretnénk megjeleníteni, az idő tengely folytonos, és illusztrálni szeretnénk a teljes eredmény méretét. Egy példával illusztrálva: ha az x tengely a folytonos idő, az y tengely pedig a pillanatnyi sebesség, akkor a vonal a mindenkori pillanatnyi sebességet mutatja (ami minden pillanatban más lehet), a befestett terület pedig a megtett úttal arányos.

Átalakítottam a fenti vonaldiagramot terület diagrammá, és az eredmény nem túl meggyőző:

areachart.png

Egymásra helyezett terület diagram (Stacked area chart)

Ez ugyanolyan mint a terület diagram, de az egyes részek egymásra vannak helyezve. Az alábbi példa az összes gyümölcs eladás változást illusztrálja, gyümölcsre lebontva:

stackedarea.png

Itt a gyümölcsön belüli változás csak a legalsónál látványos, de a hangsúly nem az egyes gyümölcsök eladási statisztikáinak összehasonlításán van, hanem az összes eladáson.

Vonaldiagram és egymásra helyezett oszlopdiagram egyszerre (Line and stacked column chart)

Gyakran előfordul az, hogy két, tipikusan erősen korreláló dolgot szeretnénk egyszerre megjeleníteni, két skálán. Ilyen lehet pl. az eladások darabszáma és a teljes bevétel. Hajtsuk végre az alábbi lépéseket:

  • Válasszuk ki a Line and stacked column chart elemet.
  • Line value (a vonal értéke): Price (ár).
  • Shared axis (közös tengely): Year (év).
  • Column values (oszlop értékek): Pieces (darabszám).
  • Column series (ez az, ami alapján alá bontjuk az oszlopokat): ProductName.

Az eredmény (szintén miután megváltoztattuk a határértéket):

linestackedbar.png

Figyeljük meg az eltérő bal- és jobboldali skálát. A bal oldali az oszlopokra vonatkozik, a jobb oldali pedig az egyenesre.

Vonaldiagram és egymás melletti oszlopdiagram egyszerre (Line and clustered column chart)

Az egymás melletti oszlopdiagramoknál leírtak itt is érvényesek: ha az összehasonlíthatóságot szeretnénk hangsúlyozni az összeg helyett, akkor az egymás melletti oszlopdiagramot célszerű választani. Az előző diagramot egyetlen kattintással át tudjuk ilyenné alakítani, a Line and clustered column chart ikonra kattintva, melyen az eredménye az alábbi:

lineclusteredbar.png

Kördiagramok

A kördiagramok alkalmasak a teljes egész valami szerinte felosztásának gyors illusztrálására. Ugyanakkor ha az összehasonlíthatóság is fontos (itt nem arra az esetekre kell gondolni, amikor az egyik elem háromszor akkora mint az összes többi együttvéve, hanem nagyságrendileg azonos méretűekre), akkor ez nem megfelelő, legalábbis nem elegendő.

Torta diagram (Pie chart)

Ez a klasszikus, teljesen kitöltött kördiagram. Az angol neve szó szerint inkább pite diagram, de magyarul torta diagramot szoktunk használni. Készítsünk egy példát, melyben a gyümölcs eladások bevétel szerinti eloszlása látható!

  • Válasszuk ki a Pie chart elemet!
  • Values: Price
  • Legend: Product name

Az eredmény az alábbi:

piechart.png

Az egyes cikkelyek közötti eltérés alig észrevehető.

Fánk diagram (Donut chart)

Nagyon hasonló a torta diagramhoz, a különbség csak annyi, hogy ez nincs kitöltve. Középre tehetünk kisebb grafikát. (Ezt a lehetőséget nem találtam a Power BI-ban.) Az előző diagram ilyen formában a következőképpen néz ki:

donutchart.png

Fatérkép

A fatérkép (Treemap) egy téglalapot rajzol ki, több kicsit téglalappal benne, és a téglalapok mérete az egymáshoz viszonyított relatív méretet illusztrálja. Különösen hasznos hierarchiák megjelenítésére, ahol alá tudjuk bontani. Például a legfelső szint lehetne a kontinensenkénti eladás, eggyel lejjebb pedig az országonkénti. Ez viszont túlbonyolítaná a példát, emiatt egy egyszerűbbet hozunk most létre: a legfelső szinten azt fogjuk látni, hogy melyik gyümölcsből hány darabot adtak el összesen, a másodikon pedig ugyanezt kontinens bontásban. A hierarchia lehetne még ennél is mélyebb.

  • Kattintsunk a Treemap ikonra.
  • Az értékek (Values) mezőbe a darabszám (Pieces) kerüljön. (Elég csak a Pieces-re kattintani.)
  • A csoportba (Group) a terméknév (ProductName) és a kontinens (Continent) kerüljön.

Ha az eredményen az összekötött kettős lefele nyílra kattintunk, akkor az alábbi ábrát kapjuk:

treemap.png

Térképek

Igazi térképeket is támogat a Power BI! Kétféle lehetőségből választhatunk.

Térkép (Map)

Itt a megfelelő helyre egy torta diagram kerül. Készítsünk egy példát!

  • Válasszuk ki a Map ikont.
  • Location (helyszín): Continent
  • Legend (felirat): ProductName
  • Size (méret): Pieces

Az eredmény az alábbi:

map.png

Kitöltött térkép (Filled map)

Itt teljes területeket lehet kitölteni. A fenti adatokkal annál értelmesebb példát nem találtam ki, hogy kiszámoljuk az eladási egységárak kontinens szerinti átlagát. Ehhez felhasználjuk a már fent létrehozott mértéket.

  • A diagram típusa: Filled map
  • Location: Continent
  • Tooltips: AverageUnitPrice

Az adott kontinens fölé navigálva a kurzorra kiírja az adott kontinensre jellemző átlagárat.

filledmap.png

Szórásgörbe diagram

Angol neve scatter chart. Ezzel belekóstolunk az adattudomány világába. A példába azt ábrázoljuk, hogy az egyes gyümölcsök kontinensenkénti eladási darabszáma és eladási ára hogyan viszonyul egymáshoz. Nyilván azt várjuk, hogy minél többet adunk el valamiből, annál nagyobb lesz a bevétel.

  • Válasszuk ki a Scatter chart ikont.
  • Details: Continent
  • Legend: ProductName
  • X Axis: Pieces
  • Y Acis: Price
  • Felül, közvetlenü az ikonok alatt válasszuk ki a harmadik elemet (Analytics), és ott a Trend line alatt kattintsunk a + Add-ra.

Az eredmény az alábbi:

scatter.png

R

R scriptet is futtathatunk Power BI-ban. A következő példában egy hisztogramot rajzolunk ki, melyben azt láthatjuk, hogy hány alkalommal történt adott mennyiségű gyümölcs vásárlása. Emlékezzünk: összesen 27 kombináció van. Tegyük a következőt:

  • Ha még nincs feltelepítve, telepítsük fel az R-t https://cran.r-project.org/bin/windows/base/. Győződjünk meg arról, hogy a Power BI érzékeli: File → Options and settings → Options → R scripting → a Detected R home directories-nak megfelelően kell kitöltve lennie.
  • Kattintsunk az R script visual ikonra.
  • Jelöljük ki a következőket: Year, ProductName, Continent, Pieces.
  • Alul az R script editorba a kommentek után írjuk a következő utasítást: hist(dataset$Pieces)
  • Kattintsunk a jobb felső sarokban a Run script ikonra.

A teljes R script így néz ki:

# The following code to create a dataframe and remove duplicated rows is always executed and acts as a preamble for your script: 

# dataset <- data.frame(Pieces)
# dataset <- unique(dataset)

hist(dataset$Pieces)

Ide természetesen tetszőleges R parancsot írhatunk. Az eredmény:

Rdiagram.png

Egyéb diagram típusok

A Power BI még számos egyéb diagram típust támogat, melyek közül szemezgetünk.

Szalag (Ribbon)

A szalag diagram lényegét tekintve hasonlít az egymásra helyezett terület diagramra. Ez viszont az időbeli változást is illusztrálja. Figyeljük meg az alábbi diagramot!

ribbon.png

Azon túl, hogy látjuk a gyümölcs eladások teljes tendenciáját, lebontva az egyes gyümölcsfajtákra, azt is illusztrálja az ábra, hogy 2019-ben az almák eladásának a darabszáma ideiglenesen magasabb volt a körtékénél. Az alábbi módon hozhatjuk létre a fenti diagramot:

  • Diagram típusa: Ribbon chart
  • Axis: Year
  • Legend: ProductName
  • Value: Pieces

Tölcsér (Funnel)

A tölcsér diagramot akkor érdemes használni, ha egyféle adatsort szeretnénk egymással összehasonlítani. Tehát nem érdekes sem az összeg és az alábontás sem, viszont fontos, hogy jól illusztrálja a sorrendet és az egymáshoz viszonyított méretet. Az alábbi ábrán azt láthatjuk, hogy az almák össz eladási darabszáma a banán 76,7%-a. Ezt ennyire hangsúlyosan egyik korábbi diagram sem mutatta be. De szinte semmilyen más információt nem látunk rajta.

funnel.png

A diagram létrehozása:

  • Diagram típusa: Funnel
  • Group: ProductName
  • Values: Pieces

Vízesés (Waterfall)

A vízesés diagramot akkor érdemes használni, ha az adatok időbeli változását szeretnénk hangsúlyozni. Pl. az eladásoknál lehet az és abszolút eladásokat bemutatni, a kettő közötti változást pedig az egyes hónapok alapján, összehasonlítva a korábbi időszak adataival. Külön színnel jelöli a növekedést és a csökkenést, így jól láthatjuk, hogy mely hónapok milyen mértékben járultak hozzá a változáshoz.

Mivel a havi szintű lebontás (ahogy fent a fent említett módon az ország szintű is) jelentősen elbonyolítaná az inputot, a diagram illusztrálására egy kissé mesterkélt megoldáshoz folyamodtam. A fő (kékkel illusztrált) értékek az éves abszolút eladott darabszám. A lebontás pedig kontinens alapján történik: a változáshoz mely kontinens mennyiben járult hozzá:

waterfall.png

A diagram magyarázata a következő. 2019-ben 2018-hoz képest 9-cel nőtt az eladott gyümölcsök darabszáma. (Figyeljük meg a határértéket: nem 0-ról indul. Nem az abszolút érték a hangsúlyos, hanem a változás.) A növekedéshez Ázsia 5, Amerika és Európa 2-2 darabbal járult hozzá, azaz ennyivel adtak el többet ezeken a helyeket 2019-ben a 2018-as évhez képest. 2020-ban a növekmény 2019-hez képest 4 darab, ebből Ázsiában 3, Amerikában 2 volt a növekmény, Európában pedig csökkent az eladás eggyel. A csökkenést más színnel jelöli, így itt igen hangsúlyos. Noha az ábrák jó részén megtalálható ez a változás, ennyire látványosan csak ez a diagram hozza ki.

A diagram elkészítése a következő:

  • Diagram típusa: Waterfall
  • Category: Year
  • Breakdown: Continent
  • X Axis: Pieces

Mérőműszer (Gauge)

A mérőműszer pont úgy néz ki, mint egy - nos - mérőműszer. Meg kell adni egy minimum értéket, egy maximum értéket és egy aktuális értéket, és általában ezt célszerű úgy megalkotni, hogy a maximális érték legyen a kívánatos.

A fenti adatokkal itt sem tudtam igazán értelmes megoldást kitalálni. Az alábbit alkottam meg: a skála bal oldala maradjon 0, a jobb oldala a maximális eladási ár, a mért érték pedig az átlagos eladási ár:

gauge.png

Ezt értelmezhetjük úgy is, hogy a mérőműszer értéke annál jobban megközelíti a maximumot, minél egyenletesebb volt az eladás. A diagram elkészítéséhez először létre kell hoznunk a maximális eladási ár és az átlagos eladási ár mértékeket. Ehhez tegyük a következőket:

  • A Fields alatt ha az F_Sales fölé megyünk az egérkurzorral, akkor látunk 3 pöttyöt a sor jobb oldalán. Kattintsunk rá!
  • Válasszuk ki a New measure menüpontot.
  • Felül megjelenik egy input mező Oda írjuk be ezt: MaxPrice = Max(F_Sales[Price]). A MAX egy beépített DAX függvény, ami a paraméterül megadott oszlop összes értékének veszi a maximumát.
  • Hajtsuk végre a fenti lépéseket még egyszer, de a végén ezt írjuk be: AveragePrice = AVERAGE(F_Sales[Price]). Az AVERAGE - melyről már volt szó - szintén DAX függvény.

Most már elkészíthetjük a diagramot:

  • Diagram típusa: Gauge
  • Value: AveragePrice
  • Minimum value: maradjon üres
  • Maximum value: MaxPrice

Kártya (Card)

A kártya diagram egyetlen érték megjelenítésére alkalmas. Általában a rendszer legvégső lényegét jeleníthetjük meg vele. Az alábbi az összes eladott gyümölcs darabszámát mutatja be:

card.png

Elkészítése:

  • Diagram típusa: Card
  • Fields: Pieces

Semmi mást nem lehet beállítani.

Többsoros kártya (Multi-row card)

Ezen a kártyán több érték szerepelhet. Az alábbi példán a gyümölcsök szerinti eladott darabszám és a teljes ár látható:

multicard.png

Elkészítése:

  • Diagram típusa: Multi-row card
  • Fields: ProductName, Pieces, Price

További diagramok

További diagramokat találunk ezen az oldalon: https://appsource.microsoft.com/en-us/marketplace/apps?product=power-bi-visuals.

  • A kiválasztott diagramon kattintsunk a Get in now feliratra! Például vegyük a Growth Rate Combo Chartot (https://store.office.com/addinsinstallpage.aspx?rs=en-001&assetid=WA200001407).
  • Elképzelhető, hogy ezen a ponton további információt kell megadnunk.
  • Remélhetőleg előbb-utóbb eljutunk a letöltő oldalra, és meg tudjuk szerezni a .pbiviz kiterjesztésű fájlt.
  • A diagramot csak adott riporthoz tudjuk telepíteni, globálisan nem. A Visualizations alatti ikonok után látunk 3 pontot. Arra kattintva válasszuk ki az Import from file menüpontot, majd keressük meg a letöltött fájlt.
  • Külön sorban megjelenik az új vizuális elem.

Készítsünk egy ilyen vizuális elemet!

  • Típus: Growth Rate Combo Chart.
  • Shared axis: Year.
  • Bar values: MaxPrice
  • Line values: AveragePrice
  • A riportban év szerint rendezzünk (… → Sort by → Year) növekbő sorrendben (… → Sort ascending).
  • A diagramon jobb oldalt válasszuk ki mindhárom évet.
  • Húzzuk eléggé szét, hogy látszódjanak a megjelenő százalék értékek.
growthrate.png

Az elemek tulajdonságai

Az egyes elemeket a tulajdonságai beállításával finomhangolni tudjuk. Lássunk ezek közül párat!

Rendezések

A diagram kinézetét meg tudjuk változtatni azzal, hogy mi szerint rendezünk. Például az oszlopdiagramok esetén az alapértelmezett sorrend az érték szerinti csökkenő; ezt akkor érdemes használni, ha hangsúlyozni szeretnénk a sorrendet, különösen az első elemet, és összehasonlíthatóvá tenni az "élboly" értékeit.

Ha nem érték szerint szeretnénk sorba rendezni, hanem név szerint, akkor tegyük a következőt:

  • Vigyük az egerünket a diagram fölé. A diagram fölött jobb oldalt (ill. alatt, ha túl magasan van) megjelenik 3 pont, arra kattintsunk rá.
  • Válasszuk ki a Sort by alatt a kívánt szempontot. Például válasszuk ki a ProductName-et, ha a gyümölcs neve szerint szeretnénk rendezni.
  • A sorrendet beállíthatjuk a Sort ascending ill. descending kiválasztásával. Ha név szerint rendezzük sorba, akkor célszerű a növekvő (ascending) sorrendet választani, érték szerint pedig a csökkenőt (desceding).

Skála

Az alapértelmezett skála a lineáris. Bizonyos esetekben a logaritmikus skála megfelelőbb, különösen akkor, ha az értékek eloszlása exponenciális, és nagyságrendi különbségek vannak az egyes értékek között. Ilyen lehet pl. a települések lakossága, ahol a lineáris skálás alig összehasonlítható a tízmilliós nagyváros, a kisebb településekkel. A fenti példában túl egyformák az értékek ahhoz, hogy ezt értelmesen használni tudjuk.

A beállítása:

  • Kattintsunk a megfelelő elemre.
  • A Visualization alatt válasszuk ki a Format ikont (középső).
  • Válasszuk ki a megfelelő tengelyt. Pl. sáv diagram esetén ez az X tengely (X axis).
  • Az első elem a Scale type, ami alapértelmezésben Linear, ezt változtassuk meg Log-ra.

Határértékek

A diagramok kinézetét a határértékek beállításával is befolyásolhatjuk. Az oszlopdiagramok alapértelmezett határértéke a 0 és a maximális elem értéke, a vonaldiagramok esetén viszont az alsó határérték kb. a legkisebb értéknek felel meg. Ez utóbbi tökéletesen megfelel, ha csak a változást szeretnénk hangsúlyozni, és az abszolút érték nem számít. Ha viszont az abszolút érték is számít (ahol esetleg eltörpül a változás), akkor a határértéket be kell állítanunk. Ezt a következőképpen tudjuk megtenni:

  • Válasszuk ki a változtatni kívánt elemet.
  • Válasszuk ki ezt: Format.
  • Nyissuk le a megfelelő tengelyt, pl. vonaldiagram esetén az Y tengelyt.
  • Ha a diagramon oszlop és vonal is van egyszerre, akkor külön be lehet állítani a határértékeket. Ez esetben a küldő csúszka mellett van egy belső is; mindkettőt le kell görgetni ahhoz, hogy vonal határértékeit be tujuk állítani.
  • Itt a Start az alsó, míg az End a felső határértéket jelenti. A Starthoz írjuk be a 0-t.

A fenti példában a vonaldiagramon, valamint mindkét oszlop + vonaldiagramon beállítottam ezt a határértéket.

Feliratok, színek

A formátumok menüpont alatt számos további beállítást végre tudunk hajtani: feliratok, színek, betűtípus, betűméret, a szöveg elhelyezkedése, vonalvastagság, vonal fajta stb. Ezek részletes ismertetése túlmutat e leírás keretein.

A színeket megváltoztatni egyébként célszerűbb az egyesével történő beállítás helyett úgy, hogy megváltoztatjuk a teljes riport témáját. Ezt fen tudjuk megtenni a főmenüben, a Home → Switch Theme alatt.

Tippek megjelenítése

Számos vizuális elemnek van egy Tooltips mezője. Ott tudjuk beállítani azt, hogy mi jelenjen (még) meg, ha felhasználó az adott elem fölé viszi az egeret. Például ha a sáv diagram esetén, melyben az eladott darabszámot illusztráljuk, meg szeretnénk ily módon jeleníteni az árat is, akkor húzzuk be a Price-t a Tooltips alá. Megjegyzés: ebben az esetben kivételesen nem elegendő csak rákattintani a Price-ra, mert "hozzácsapja" az sávhoz; fogd és vidd technológiával a megfelelő helyre kell tenni.

Szűrők

Szűrők segítségével bizonyos adatokat ki tudunk venni a statisztikából. Ezeket a Power BI-ban sokféleképpen tudjuk kezelni.

A szűrők fajtái

A szűrőket a következőképpen csoportosíthatjuk:

  • Nem látható szűrők: amelyek állandó beállítások. Ezen belül kétféle lehetőségünk van:
    • Globális (minden lapra érvényes) szűrő.
    • Egy adott lapra érvényes szűrő.
    • Egy adott vizuális elemre érvényes szűrő (miután kiválasztottuk az elemet).
  • Látható szűrők: ezeket a felhasználók használják.

Nem látható szűrők

A három jobb oldali oszlop közül a legbaloldalibb (Filters) tartalmazza ezeket a szűrőket. Jobbról a mezőkből fogd és vidd technikával tetszőleges számút húzhatunk akár az adott oldalra vonatkozó (Filters on this page) akár az összes oldalra vonatkozó (Filters on all pages) szűrők közé. Azon belül számos lehetőségünk van:

  • Szöveg esetén:
    • Megadhatjuk, hogy mik legyenek az eredményben (Basic filtering).
    • Összetett szabályokat adhatunk meg, pl. milyen szövegrészeket tartalmazhatnak (Advanced filtering).
  • Szám esetén
    • Felsorolni az elemeket itt is tudjuk.
    • Megadhatunk intervallumokat.
  • Mindegyik esetben ugyanazzal további szűrőfeltételeket adhatunk meg, és megadhatjuk azt, hogy logikailag ÉS vagy VAGY kapcsolatban legyenek.

Ezeket a szűrőket sokkal inkább finomhangolhatjuk, mint a látható szűrőket.

A szeletelő vizuális elem

A Slicer elem szolgált elsősorban szűrőfeltételként, bár - amint később látni fogjuk - a legtöbb vizuális elem alkalmas erre a célra. A példában fejlesszük az egymás mellé helyezett sáv diagramot! Emlékeztetőül: a sávokban a gyümölcsök szerepeltek, a sávokon belül kontinens bontásban. De ezen nem jelenik meg az év. Hozzunk létre egy olyan elemet, amely ezt szűri!

  • Diagram típusa: Slicer
  • Field: Year

A szűrő kinézete többféle lehet, pl. lista, melyből választhatunk elemet, vagy csúszka, ahol intervallumot jelölhetünk ki. Ez utóbbi különösen dátum esetén hasznos, ahol mondjuk egy teljes havi periódust szeretnénk kiválasztani, órás bontásban. A példában ezt a módszert alkalmazzuk. A rendszer elvileg "rájön" arra, hogy a Year egy dátum jellegű szűrő, és ezt a megoldást kínálja fel; ha mégsem, akkor a vizuális elem jobb felső sarkában van egy lefele mutató nyílvég, arra kattintva válasszuk ki a Between elemet. Az eredmény az alábbi:

slicerinterval.png

Ennek segítségével tehát minden információt a riport használójának rendelkezésére bocsájtottunk.

A példát kicsit szervezzük át úgy, hogy a szűrőfeltétel természetéből fakadóan kiválasztható legyen! A következőt hosszuk létre:

  • Diagram típusa: Clustered column chart
  • Axis: Continent
  • Legend: Year
  • Value: Pieces

Majd hozzunk létre egy szűrőt, ami gyümölcsre szűr:

  • Diagram típusa: Slicer
  • Field: Product name

Itt is mindent meg tudunk jeleníteni. Az eredmény:

slicercategory.png

A diagramok szűrőfeltételként történő használata

A legtöbb diagram szűrőfeltételként is használható. Ha egy olyan oldalon, ahol mondjuk több oszlopdiagram van, rákattintunk az egyik oszlopra, akkor a többi oszlop halványabb lesz, de a többi diagram oszlopai is részben halványak lesznek. Ugyanazon a lapon levő diagramok között háromféle interakció lehet (a példákban oszlopokat írok, de ez a legtöbb vizuális elemre igaz):

  • Szűrőfeltétel: tehát ha rákattintunk egy oszlopra, akkor a másik diagramon úgy változnak az oszlopméretek, hogy az előzőleg kiválasztott oszlop szűrőfeltételként szerepeljen.
  • Kiemelés: a másik diagram mérete megmarad, viszont külön kiemeli azokat a részeket, amelyek a másikon a kiválasztottra vonatkozik.
  • Semmilyen: a kiválasztás nincs hatással a másik diagramra.

Az alapértelmezett a kiemelés; mindegyik vizuális elem mindegyikkel ilyen kapcsolatban van. A kapcsolat nem szimmetrikus, tehát ha A diagram szűrőfeltételként hat a B-re, akkor a B nem feltétlenül hat szűrőfeltételként az A-ra. Ha pl. egy lapon 6 diagram van, akkor 6*5=30 beállítási lehetőségünk van. A következőképpen tudjuk ezeket beállítani:

  • Válasszunk ki egy érintett vizuális elemet.
  • Felül a Format menüpont alatt kattintsunk az Edit interactions-ra.
  • Az összes többi vizuális elem jobb felső sarkában (a jobb alsóban, ha túl magasan van) megjelenik 3 ikon: Filter (szűrő), Highlight (kiemelés), None (semelyik). Mindegyik elemnél állítsuk be a megfelelő értéket.
  • Majd kattintsunk a következő elemre, ott is állítsuk be az összes kombinációt a megfelelő értékre, és így tovább, az összes elemmel.

Az alábbi példában a felső három s az alsó három diagram össze van ily módon kapcsolva, de a két sor egymásra nincs hatással:

relationship.png

Ez a módszer a szeletelő vizuális elemre is érvényes. A fenti példában ha a két Slicer és a két diagram ugyanazon a lapon szerepel, akkor célszerű szétválasztani őket, hogy mindkét diagramra csak a rá vonatkozó szűrő hasson.

Ugyanaz a szűrőfeltétel a fülek között

Elképzelhető, hogy ugyanaz a szűrőfeltétel szerepel több lapon. Itt alapvetően kétféle működés képzelhető el:

  • A kettő (vagy több) szűrőfeltételt egymástól függetlenül szeretnénk használni, tehát a ha a felhasználó az egyik lapon átállítja, annak ne legyen hatása a msik lapra.
  • Azt szeretnénk, hogy ha a felhasználó az egyik lapon beállt egy szűrőfeltételt, akkor a másikon is automatikusan ugyanarra álljon be.

Ennek beállításához tegyük a következőt:

  • A View menüpont alatt kattintsunk a Sync slicers előtti négyzetre.
  • Válasszunk ki egy Slicer vizuális elemet.
  • Jobb oldalon megjelenik egy új oszlop Sync slicers címmel. Itt be tudjuk állítani, hogy mely lapok között legyen szinkronizálva.

Szeletelő panel

Létezik egy olyan technika, amelyet nem nyújt a Power BI alapból, de a Power BI elemekből fel tudjuk építeni. Ez a szeletelő panel (slicer panel). Arról szól a dolog, hogy létrehozunk egy téglalapot, melyre rápakoljuk a szűrő elemeket. Ezt akár elrejthetővé is tehetjük. Rámásoljuk ugyanazt mindegyik lapra, és összekapcsoljuk a szűrőfeltételeket, azt a hatást keltve, mintha ez ugyanaz lenne mindegyik oldalon. Ehhez a könyvjelzőket (View → Bookmarks Pane) is használnunk kell, nem pont arra a célra, amire eredetileg kitalálták, hanem az egyik "könyvjelző" azt az állapotot menti el, amikor látszódnak a szűrőfeltételek, egy másik pedig amikor el vannak rejtve, és csak a megjelenítés gomb látszódik. A szükséges lépések részletezése megtalálható a https://exceleratorbi.com.au/create-a-power-bi-slicer-panel/ oldalon.

A riport publikálása

A riport publikálásának a kissé elnagyolt menete a következő:

  • A powerbi.com oldalon létre kell hoznunk egy azonosítót, majd lépjünk be vele.
  • Bal oldalon látni fogunk egy Workspaces menüpontot; kattintsunk ár, és alul válasszuk ki a Create workspace menüpontot. Adjunk neki egy nevet, majd mentsük el.
  • A Power BI Desktopban kattintsunk a Home → Publish ikonra.
  • Jelentkezzünk be a powerbi.com-ra a fenti azonosítóval.
  • A felugró listából válasszuk ki az imént létrehozott munkaterületet.
  • Kattintsunk a Select-re. Pár másodperc alatt feltölti a riportot.
  • A powerbi.com oldalon válasszuk ki a fent létrehozott munkaterületet (Workspace), majd kattintsunk a Reports fülre. Ha mindent jól csináltunk, akkor ott kell látnunk a riportot.
  • Ha a riportra kattintunk, akkor láthatjuk a vizuális elemeket kb. úgy, ahogy a végfelhasználó fogja látni. (Mi valójában kicsit kisebben látjuk, és látunk pár olyan elemet, amit a végfelhasználó nem lát.)
  • A riportot konkrét személlyel a Share ikonra (második ikon) kattintva tudjuk megosztani.
  • A riportból appot is létre tudunk hozni. Ez a jobb felső sarokban található Publish app sárga alapú feliratra kattintva tehetjük meg.
  • Ahhoz, hogy a felhasználók meg tudják nézni, Power BI Pro licenszre van szükségük, melyen havi költsége személyenként kb. 10 dollár.
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License