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 ALL­NO­BLANK­ROW. 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 be­jegy­zé­se­ket 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 egye­di 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 be­fo­lyá­sol­já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ó re­kor­dok 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 áll­hat­nak olyan rekordok is, amelyek nem kapcsolódnak az egy oldali tábla egyetlen rekordjához sem. Ezek a rekordok a nem kapcsolódó re­kordok. 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 re­kord 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á­lasz­tunk 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 re­gisz­trá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étel­cím­ké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 össze­gyűjtő függ­vé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ügg­vé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 be­jegy­zé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és­sel 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: figye­lem­be 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 ALL­NO­BLANK­ROW 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ép­le­tünk­ben 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öz­vet­len-, 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 re­kord­já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 össze­sí­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 vizs­gál­tuk. A FILTERS, az ALLSELECTED és az ALLNOBLANKROW függvényeket tartalmazó egyéni összesítések nem a megszokott módon vi­sel­ked­nek: nem a sor és oszlopmező tételei által meghatározott rekordok statisztikai értékét, hanem a teljes rekordhalmazra vonatkozó ér­té­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 DIS­TINCT 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át­já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
ismertető letöltése pdf-ben munkafüzet letöltése
margitfalvi.arpad@gmail.com