Contact us

Pošlji
povpraševanje

Zakladnica znanja

  • Predzanje

  • Kategorije

September 11, 2020

Filterni kontekst v Power BI

Avtor: Branka Trifunović

V članku je uporabljen Power BI Desktop verzije 2.76.5678.782 (December 2019).

Razumevanje delovanja filtrov je ključno pri delu v Power BI. Filterni kontekst in propagiranje filtrov sta pomembna koncepta, ki ju moramo osvojiti, če želimo zares razumeti DAX.

Začetni filterni kontekst

Initial filter context ali Začetni filterni kontekst je filtriranje, ki pride iz katerekoli vizualizacije ali drugih delov poročila. Oglejmo si enostaven primer. Imamo tabelo Products s poljema Platform in Storage.

V poročilu naredimo izberemo vizualizacijo matriko in vstavimo polje Platform v vrstice Rows, polje Storage pa v vrednosti Values.

Za vsako Platformo dobimo vrednost zaloge Storage. Kaj se zgodi? Znotraj vsakega polja se izvede filter na naši tabeli. Za prvo polje se tabela Products filtrira, v njej ostanejo zgolj vrstice, ki imajo v polje Platform enake PC. Zdaj se v filtrirani tabeli vse vrednosti znotraj stolpca Storage seštejejo in dobimo rezultat 107. Podobno je z naslednjim poljem, tabela Products se filtrira in ostanejo zgolj vrednosti, ki imajo Platform enak PS3. Stolpec Storage se nato sešteje in dobimo 7.

Filtriranje se zgodi le v trenutku vrednotenja polja in tudi sprosti po končanem vrednotenju.

Viri filternega konteksta

Filterni kontekst lahko prihaja iz različnih delov poročila. Razvrstimo ga v štiri vire:

  1. Vrstice
  2. Stolpci
  3. Razčlenjevalniki
  4. Filtri

Na mestu razčlenjevalnikov bi lahko uporabili tudi katerokoli drugo vizualizacijo, saj vsaka vizualizacija lahko vpliva na druge vizualizacije. Prav tako bi na mestu Filtrov lahko uporabili filter, ki deluje zgolj na eno vizualizacijo, celo stran, ali na celotno poročilo.

Začetni filterni kontekst se nanaša na zgornje štiri filtre. Začetni mu rečemo zato, ker ga lahko kasneje spreminjamo z DAX formulo CALCULATE(). Začetni filterni kontekst torej pomeni filtriranje iz zgornjih štirih virov, ki se zgodi pred filtriranjem z DAX formulo CALCULATE().

Propagiranje filtrov

Oglejmo si podatkovni model, ki je sestavljen iz dimenzijskih tabel Products ter Projects, in fact tabele Sales.

V poročilu sestavimo matriko, s katero opazujemo produkte po Platformi in zalogi Storage iz tabele Products po številu projektov Projects in tabele Projects.

Prvi del tabele je identičen kot smo si ga ogledali na zgornjem primeru. Število projektov pa je enako za vsako platformo. Zakaj? Razlog je, da polje vrstica PC oz. polje Platform filtrira zgolj tabelo znotraj katere se nahaja. Ker se nahaja znotraj tabele Products, se filtrira samo tabela Products. Tabela Projects ostane enaka in za vsako platformo vrne celotno število projektov.

Prelivanje filtrov med tabelami

Dodajmo v zgornjo tabelo novo polje: polje Values iz tabele Sales. Dobimo naslednjo tabelo.

Čeprav je polje Values v tabeli Sales, je tabela očitno filtrirana. Filtri se namreč prelivajo po povezavah med tabelami, a vedno le v smeri povezave.

Pri tipični postavitvi tabel (dimenzijske tabele zgoraj, fact tabela spodaj) filtri vedno potujejo navzdol.

Kazalo