egyedi bejegyzések lekérdezése a DAX-ban

2018-03-31    Excel 2016
A DAX öt függvényt biztosít egy mező egyedi bejegyzéseinek összegyűjtésére: DISTINCT, VALUES, FILTERS, ALLSELECTED és ALLNOBLANKROW. A függvények egyetlen argumentuma a vizsgálandó mező: FÜGGVÉNYNÉV( ’táblanév’[mezőnév] ). A mezőben álló üres bejegyzéseket mind az öt függvény „egyedi bejegyzésnek” ítéli. Másként fogalmazva, üres bejegyzéseket is tartalmazó mező vizsgálatát követően, az egyedi bejegyzések listája egy üres elemet is tartalmazni fog.
    Egy mező megjelenített bejegyzéseit a mező saját, közvetlen szűrője és a többi mezőhöz beállított szűrők, a közvetett szűrők befolyásolják. A közvetlen és közvetett szűrők kezelésének módja az öt függvény első tulajdonsága.
    Tanulmányozzuk az egyedi bejegyzéseket összegyüjtő függvényeket egy kéttáblás modellen: termékek, eladások. Az összetartozó rekordok lekérdezhetőségét a név mezők azonos bejegyzései biztosítják.
egyedi bejegyzések lekérdezése a DAX-ban, példa
A PowerPivot bővítmény szabályrendszere megengedőbb, mint a relációs adatbázis-kezelés előírásai. Például a több oldali táblában állhatnak olyan rekordok is, amelyek nem kapcsolódnak az egy oldali tábla egyetlen rekordjához sem. Ezek a rekordok a nem kapcsolódó rekordok. A bővítmény a nem kapcsolódó rekordokat egy kalap alá veszi és az egy oldali táblában egy üres rekorddal felelteti meg. Ez a rekord azonban a táblában nincs megjelenítve, csak a pivot táblából szerzünk tudomást a létezéséről, mikor az egy oldali táblából választunk csoportosító mezőt.
    Az eladások táblát nézegetve felfigyelhetünk egy E és egy F nevű termékre, amelyek nem szerepelnek a termékek táblában. A „nem regisztrált” termékek rekordjait a bővítmény egy üres rekorddal „kapcsolja” össze a termékek táblában. Ezért látunk (üres) feliratú tételcímkét a pivot táblában, amikor az egy oldali tábla valamelyik mezőjét sor- vagy oszlop területre helyezünk. Az egyedi bejegyzéseket összegyűjtő függvényeknek ez a második tulajdonsága: figyelembe veszik-e az egy oldali táblában álló láthatatlan rekordot vagy sem.
PowerPivot, nem kapcsolódó rekordok a pivot táblában
Először kérdezzük le az eladások tábla név mezőjének egyedi bejegyzéseit, mind az öt függvénnyel. Adatnézetben dolgozzunk! Mivel a függvények eredményét nem tudjuk megjeleníteni, ezért az egyéni összesítések képletében megszámláltatjuk az eredményül kapott bejegyzéseket: =COUNTROWS( <függvénynév>( ’eladások’[név] )). A vizsgálatot először szűrés nélkül, majd közvetlen-, végül közvetett szűréssel végezzük el.
az egyedi bejegyzéseket összegyüjtő DAX függvények a több oldali táblában
A példa jól mutatja, hogy a DISTINCT és a VALUES függvények teljesen egyformán működnek a kapcsolat több oldali táblájában: figyelembe veszik a közvetlen és a közvetett szűrőket is. A FILTERS és az ALLSELECTED már csak a közvetlen szűrőt veszi figyelembe, míg a ALLNOBLANKROW egyiket sem.
    Ezután kérdezzük le a kapcsolat egy oldalán álló, eladások tábla név mezőjének egyedi bejegyzéseit, mind az öt függvénnyel. Képletünkben csak a táblanév változik: =COUNTROWS( <függvénynév>( ’termékek’[név] )). A vizsgálatot először szűrés nélkül, majd közvetlen-, végül közvetett szűréssel végezzük el.
az egyedi bejegyzéseket összegyüjtő DAX függvények az egy oldali táblában
Az eredményeket vizsgálva megállapíthatjuk, a függvények szűrő-kezelése a kapcsolat két oldalán azonos, de az egy oldali tábla üres rekordját csak VALUES, a FILTERS és ALLSELECTED függvények „látják”.
    Az egyedi bejegyzéseket összegyűjtő függvények harmadik tulajdonságát csak a pivot táblában figyelhetjük meg. Vegyünk egy példát ennek a tulajdonságnak a bemutatására is. Egyetlen táblát vizsgálunk, amelynek neve A.
az egyedi bejegyzéseket összegyüjtő DAX függvények viselkedése a pivot táblában
A képen a tábla forrását, az elemzésére létrehozott öt kimutatást és közös külső szűrőjüket látjuk. Minden kimutatás egy-egy egyéni összesítést tartalmaz, képletükben a tárgyalt függvényekkel: =COUNTROWS( <függvénynév>( A[szín] )). Csak a kék és a sárga rekordokat vizsgáltuk. A FILTERS, az ALLSELECTED és az ALLNOBLANKROW függvényeket tartalmazó egyéni összesítések nem a megszokott módon viselkednek: nem a sor és oszlopmező tételei által meghatározott rekordok statisztikai értékét, hanem a teljes rekordhalmazra vonatkozó értéket jelenítenek meg, az összes nem üres „kategóriában”. Másként fogalmazva: bontatlan statisztikai értéket szolgáltatnak.
az egyedi bejegyzéseket összegyüjtő DAX függvények tulajdonságai
Foglaljuk össze az egyes függvények jellemzőit. A DISTINCT és a VALUES figyelembe veszik a közvetlen és közvetett szűrőket is, de a DISTINCT nem érzékeli az egy oldali tábla üres rekordját. A FILTERS és az ALLSELECTED csak a közvetlen szűrőket figyelik, de mindketten látják az üres kategóriát. Az ALLNOBLANKROW nem veszi figyelembe a szűrőket és eredményéből hiányzik az egy oldali tábla üres rekordja is. A FILTERS, az ALLSELECTED és az ALLNOBLANKROW bontatlan statisztikai értéket szolgáltatnak a pivot táblában
margitfalvi.arpad@gmail.com