Személyek modellezése Power BI-ban II.

A múltkori személyek modellezése Power BI-ban című cikkben megbeszéltük, hogy az azonos nevű személyek megkülönböztetésének egyik lehetséges útja Power BI-ban, ha

  1. a személyeket tartalmazó tábla dolgozó kód oszlopát Key Column-á tesszük Power BI-ban
  2. és a dolgozó név oszlop Keep Unique Rows tulajdonságát igazra állítjuk tabular editorrak

Ennek hatására a dolgozó neve és kódja mellett megjelenik egy új, belépőkártyát szimbolizáló ikon:

És az azonos nevű dolgozókat nem fogja összevonni a Power BI:

Power BI mátrix

De hogyan valósítja ezt meg a háttérben Power BI? Úgy hogy minden dolgozó név oszlopra hivatkozó DAX lekérdezésbe belefoglalja a dolgozó kódját is. Mutatom a fenti táblázat feltöltéshez generált DAX lekérdezés releváns részét:

Power BI Key Column, Keep Unique Rows

Azaz hiába csak a dolgozó nevét tartalmazza a táblázat, a táblázat feltöltéséhez használt DAX lekérdezés lekérdezi a dolgozó kódját is. A Power BI tehát úgy teszi egyedivé megjelenítéskor a dolgozó nevét, hogy hozza a kódját is, és a kettőre aggregál.

Hol üthet ez vissza?

Mindenhol olyan measure-ben, ahol a dolgozó nevére szűrünk…

Tegyük fel, hogy dolgozók teljesítményét kell vizsgálnunk a csoportátlaghoz képest. Vagy vegyünk egy még egyszerűbb példát: dolgozók hozzájárulást szeretnénk vizsgálni a csoport teljesítményéhez. Ehhez ki kell számolnunk a csoport teljesítményét:

A screenshot of a computerDescription automatically generated with medium confidence

Mindenki, aki az elmúlt 10 éven Power Pivot vagy Power BI tanfolyamon járt nálam, álmából felriadva is tudja, hogy ehhez a REMOVEFILTERS() (korábban ALL()) függvényt kell használni, és rutinból megírja a képletet:

A black text on a white backgroundDescription automatically generated with low confidence

Behúzza a számított mezőt a mátrixba, és döbbenten figyeli, hogy mit ír ki a mátrix:

A screenshot of a computerDescription automatically generated with low confidence

Először feljajdul, a szívéhez kap. Öngyilkos akar lenni egy töltött revolverrel, mert még egy ilyen primitív REMOVEFILTERS() függvényt sem tud használni, majd a mezőlistában megpillantja a belépőkártya ikont a dolgozó név oszlop mellett

Power BI Keep Unique Rows, Key Column

belépőkártya ikon a dolgozó kód és név oszlop mellett

És magához tér. Eszébe jut ugyanis, hogy ebben az esetben hiába szünteti meg a szűrést a REMOVEFILTERS()-szel a dolgozó nevén, a mátrixbeli lekérdezés szűr a kód oszlopra is, és ahhoz, hogy a kívánt eredményt elérje, a kódoszlopot is bele kell foglalnia a szűrés feloldásába. Átírja a képletet:

DAX REMOVEFILTERS()

A világbéke visszaáll. a Power BI jól számolja a csoport teljesítményét:

Power BI mátrix

Ezek után már egy egyszerű osztással könnyen ki tudja számolni az egyén hozzájárulását a csoport teljesítményéhez…

Power BI mátrix

Összefoglalva: Óvatosan használja a Key Column – Keep Unique Rows párost az ismétlődő elemek megtartására, mert a háttérben a Power BI olyan DAX lekérdezést generál, amely a név oszlop mellett a kód oszlopra is hivatkozik, és ez a névre szűrő számított mezőknél nem várt eredmény okozhat…

Ha pedig nem Ön készítette a Power BI adatmodellt, és a mezőlistában egy oszlop neve mellett belépőkártya ikont lát, akkor jusson eszébe, hogy a háttérben a DAX, a „belépőkártyás” oszlopokat együtt kezeli, a vizualizációk által a Tabular modell felé küldött lekérdezések annyi sort fognak visszaadni ahány különböző eleme van a belépőkártyás (kód + név) oszlopoknak.

Kővári Attila - BI projekt

POWER BI WORKSHOP

Tudjon meg többet az itt elhangzottakról! Jöjjön el a 2024. szeptember 26.-i Power BI workshopra vagy rendeljen kihelyezett képzést! Részletek >>

 

Új hozzászólás