Contact us

Pošlji
povpraševanje

Zakladnica znanja

  • Predzanje

  • Kategorije

September 18, 2020

Vrstični kontekst v Power BI

Avtor: Branka Trifunović

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

Vrstični kontekst je lastnost kalkuliranih stolpcev in nekaterih funkcij, da se znotraj kalkulacije zavedajo vrstic. Vrstični kontekst pomeni, da funkcija znotraj iteracije potuje skozi vsako vrstico posebej. Za vsako vrstico se ovrednoti vrednost izraza v funkciji, in nato agregira v en končni rezultat.

Vrstični kontekst poznajo:

  • X-funkcije, npr. SUMX(), AVERAGEX()
  • Funkcija FILTER()
  • Kalkulirane vrstice

Za primer si oglejmo uporabo funkcije SUMX.

Funkcija SUMX() ustvari vrstični kontekst v tabeli Sales (#1). Nato iterira skozi tabelo, vrstico za vrstico. V vsaki vrstici vzame vrednosti polja Price (#2) in Tax (#3) in ju sešteje. Na koncu sešteje vsote vseh vrstic v en končni rezultat (#4).

Vrstični kontekst v kalkuliranih stolpcih

Tudi kalkulirani stolpci poznajo vrstični kontekst. Za vsako vrstico se ovrednoti vrednost izraza in shrani v vsako polje posebej. Glavna razlika med X-funkcijami in kalkuliranimi stolpci je ta, da X-funkcije ne shranjujejo vmesnih izračunov, ampak le končni rezultat, medtem ko je v kalkuliranih stolpcih shranjena vsaka vrednost posebej. To je razlog, da se kalkuliranim stolpcem izogibamo, saj lahko zasedejo veliko spomina in upočasnijo delovanje modela.

Vrstični kontekst ne ustvari vedno filternega konteksta

V članku Filterni kontekst v Power BI smo si ogledali, kako deluje filterni kontekst. Pomembno je razumeti, da vrstični kontekst ne ustvari vedno filternega konteksta. Vrstični kontekst se tudi ne preliva čez povezave. Oglejmo si na primeru, kaj to pomeni.

Tabeli Products dodajmo kalkulirani stolpec: TotalSales = SUM(Sales[Value])

Stolpec bo seštel vse vrednosti v polju Value v tabeli Sales. Kakšen rezultat pričakujemo? Bo vrednost za vsak posamezen produkt različna? Odgovor je ne, vrednost je enaka za vse vrstice.

Razlog je v tem, da vrstični kontekst ne ustvari vedno filternega konteksta. Vrednost se res izračuna za vsako vrstico posebej, a posamezni produkt znotraj vrstice ne more filtrirati tabele Sales. Tabela Sales ostane v celoti nefiltrirana in rezultat je za vsako vrstico enak.

 

Kazalo