Vysvetlenie iterátorných funkcií

Dokončené

Vypočítané stĺpce aj mierky majú kontext, v rámci ktorého sa vyhodnocujú. Kontext definuje granularát, pri ktorom sa budú vykonávať výpočty. Porozumenie kontextu a použitie kontextu sú dôležité na vytváranie vysoko výkonných vzorcov, dynamických analýz a na riešenie problémov vo vzorcoch.

Pred rozprávanie o iterátorových funkciách musíte prejsť cez dva dôležité kontextové koncepty: kontext riadka a kontext filtra.

Vysvetlenie kontextu riadka

Kontext riadka je zrnko alebo aktuálny riadok; Ide o rozdelenia riadkov, podľa ktorých sa majú vyhodnotiť vaše údaje. Všetky iteračné funkcie sa vyhodnotia podľa kontextu riadka. Vypočítané stĺpce sa vyhodnotia podľa kontextu riadka – takto majú hodnotu stĺpca pre každý riadok.

Kontext riadka automaticky sleduje vzťahy medzi tabuľkami a určuje, ktoré riadky (v súvisiacich tabuľkách) sú priradené k aktuálnemu riadku.

Príklad kontextu riadka, v ktorom určujete, ktoré riadky sú priradené k aktuálnemu riadku.

Pozrime sa napríklad na nasledujúci kód:

ActualSales = Sales * RELATED( Product[Discount] )

Predchádzajúci vzorec jednoducho používa funkciu RELATED na získanie diskontnej sadzby pre aktuálny produkt z tabuľky Produkt. Nie je potrebné zadať pole, ktoré spája dve tabuľky.

Vysvetlenie kontextu filtra

Kontext filtra je množina hodnôt povolených v každom stĺpci na základe obmedzení filtrov, ktoré boli použité v riadku. Možno ich považovať aj za filtre použité vo vašej zostave prostredníctvom rýchlych filtrov alebo interakcií.

Pozrime sa na príklad kontextu filtra:

Ukážka údajov pre príklad kontextu filtra.

Zvýraznená bunka má kontext filtra pre rok 2018, štát sa rovná Alabame a štvrťrok sa rovná 1. štvrťroku. Ľubovoľná iná hodnota v kontingenčnej tabuľke sa líši, pretože má iný kontext filtra pre rok, štát a štvrťrok.

Tip

KORELÁCIA S TABUĽKOUAU: Ako sa tableau a Power BI rozhodnú vypočítať mierky podobné; je založený na tom, čo máte na stránke, aké filtre ste použili, atď. Kontext vo výpočtoch tableau sa najčastejšie spája s výrazmi úrovne podrobností (LOD) a výpočtami tabuľky.

Vysvetlenie iterátorných funkcií

Keď hovoríte o iterátorových funkciách, zameriavate sa na koncept kontextu riadka.

Tu je príklad jednoduchej iteračnej funkcie:

COGS = SUMX( Sales, RELATED( Product[Wholesale Price]) * Sales[Quantity] )

V predchádzajúcom vzorci používate rovnaký vzorec COGS ako predtým, ale zabalíte ho do iteračnej funkcie SUMX.

Príklad iteračnej funkcie.

  1. Prvou časťou funkcie SUMX je iteračnú tabuľku alebo aké vlákno by sa malo vyhodnotiť. V tomto prípade iteračnú tabuľku tvorí tabuľka Sales (Predaj). Ak chcete vykonať tento výpočet, musíte vyhodnotiť každý riadok v tabuľkách Predaj.

  2. Ďalej sa vytvára výstup zoznamu v dočasnej tabuľke.

  3. Nakoniec vykonáva agregáciu zadanú na začiatku funkcie.

Ďalšie informácie o kontexte nájdete v téme Kontext vo vzorcoch DAX.

Ďalšie informácie o kontexte riadka a filtra nájdete v téme Kontext riadka a Kontext filtra v jazyku DAX