Vysvetlenie iterátorných funkcií
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.
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:
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.
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.
Ďalej sa vytvára výstup zoznamu v dočasnej tabuľke.
Nakoniec vykonáva agregáciu zadanú na začiatku funkcie.
Referenčné prepojenia
Ď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
Potrebujete pomoc? Pozrite si nášho sprievodcu riešením problémov alebo odošlite konkrétne pripomienky nahlásením problému.


