Informace o kontextu řádku
Vytvořili jste počítané sloupce. Teď se dozvíte, jak se jejich vzorce vyhodnocují.
Vzorec počítaného sloupce se vyhodnotí pro každý řádek tabulky. Vyhodnotí se také v kontextu řádku, přesněji aktuálního řádku. Vezměme si třeba definici počítaného sloupce Due Fiscal Year (Fiskální rok splatnosti):
Due Fiscal Year =
"FY"
& YEAR('Due Date'[Due Date])
+ IF(
MONTH('Due Date'[Due Date]) <= 6,
1
)
Při vyhodnocení vzorce každého řádku vrátí odkaz na sloupec 'Due Date'[Due Date]
hodnotu sloupce pro daný řádek. Zjistíte, že stejný princip používá i Microsoft Excel při práci se vzorci v excelových tabulkách.
Kontext řádku ale nezasahuje za tabulku. Pokud chcete ve vzorci použít odkazy na jiné tabulky, máte dvě možnosti:
- Pokud tabulky přímo nebo nepřímo souvisejí, můžete použít
RELATED
funkci neboRELATEDTABLE
jazyka DAX. FunkceRELATED
načte hodnotu na straně 1 relace, zatímcoRELATEDTABLE
načte hodnoty na straně N. FunkceRELATEDTABLE
vrátí objekt tabulky. - Pokud tabulky nesouvisejí, můžete použít
LOOKUPVALUE
funkci DAX.
Obecně platí, že pokud je to možné, zkuste funkci použít RELATED
. Obvykle bude fungovat lépe než LOOKUPVALUE
funkce, protože se data relací a sloupců ukládají a indexují.
Teď do tabulky Sales přidejte následující definici počítaného sloupce:
Discount Amount =
(
Sales[Order Quantity]
* RELATED('Product'[List Price])
) - Sales[Sales Amount]
Definice počítaného sloupce přidá sloupec Discount Amount (Částka slevy ) do tabulky Sales (Prodej ). Power BI vyhodnotí vzorec počítaného sloupce pro každý řádek tabulky Sales . Hodnoty Order Quantity (Objednané množství) a Sales Amount (Částka prodeje) se načítají v kontextu řádku. Vzhledem k tomu, že sloupec List Price (Ceníková cena ) patří do tabulky Product (Produkt ), RELATED
je funkce nutná k načtení hodnoty ceníkové ceny prodejního produktu.
K vyhodnocení vzorců v počítaných sloupcích se používá kontext řádku. Používá se také, pokud je použitá třída funkcí označovaná jako iterační funkce. Iterační funkce umožňují pružně vytvářet složité souhrny. Funkce iterátoru jsou popsané v pozdějším modulu.