Práce s funkcemi iterátoru agregace

Dokončeno

Každá funkce souhrnu jednoho sloupce má svou ekvivalentní funkci iterátoru. Následující části berou v úvahu dva scénáře agregace, pokud jsou užitečné funkce iterátoru: komplexní shrnutí a sumarizace s vyššími úrovněmi.

Komplexní souhrn

V této části vytvoříte první míru, která bude používat funkci iterátoru. Nejprve stáhněte a otevřete soubor Adventure Works DW 2020 M05.pbix. Následně přidejte tuto definici míry:

Revenue =
SUMX(
    Sales,
    Sales[Order Quantity] * Sales[Unit Price] * (1 - Sales[Unit Price Discount Pct])
)

Naformátujte míru Revenue (Výnosy ) jako měnu se dvěma desetinnými místy a pak ji přidejte do vizuálu tabulky, který najdete na stránce 1 sestavy.

Obrázek znázorňující vizuál tabulky se dvěma sloupci: Month (Měsíc) a Revenue (Výnosy). Zobrazují se data za celý rok.

Tím, že využívá funkci iterátoru, agreguje vzorec míry Revenue (Výnosy) více než hodnoty jednoho sloupce. Aby vzorec vrátil výši výnosů, pro každý řádek používá hodnoty kontextu řádků ze tří sloupců.

Nyní přidejte další míru:

Discount =
SUMX(
    Sales,
    Sales[Order Quantity]
    * (
        RELATED('Product'[List Price]) - Sales[Unit Price]
    )
)

Míru Discount (Sleva) naformátujte jako měnu se dvěma desetinnými místy a pak ji přidejte do vizuálu tabulky.

Obrázek znázorňující vizuál tabulky se třemi sloupci: Month (Měsíc), Revenue (Výnosy) a Discount (Sleva). Zobrazují se data za celý rok.

Všimněte si, že vzorec používá RELATED funkci . Mějte ale na paměti, že kontext řádku nepřesahuje rámec tabulky. Pokud vzorec potřebuje odkazovat na sloupce v jiných tabulkách a mezi tabulkami existují relace modelu, použijte RELATED funkci pro jednostrannou relaci nebo RELATEDTABLE funkci pro relaci na více stranách.

Souhrn s vyšší členitostí

V následujícím příkladu se zaměříme na sestavu týkající se průměrných výnosů. Přidejte následující míru:

Revenue Avg =
AVERAGEX(
    Sales,
    Sales[Order Quantity] * Sales[Unit Price] * (1 - Sales[Unit Price Discount Pct])
)

Míru Revenue Avg (Průměrné výnosy) naformátujte jako měnu se dvěma desetinnými místy a pak ji přidejte do vizuálu tabulky.

Obrázek znázorňující vizuál tabulky se čtyřmi sloupci: Month (Měsíc), Revenue (Výnosy), Discount (Sleva) a Revenue Avg (Průměrné výnosy). Zobrazují se data za celý rok.

Vezměte v úvahu, že průměr znamená součet hodnot dělený počtem hodnot. Tato teorie ale přináší otázku: Co představuje počet hodnot? V tomto případě počet hodnot představuje počet výrazů, jejichž výsledky nebyly prázdné hodnoty. Vzhledem k tomu, že funkce iterátoru vytvoří výčet řádků tabulky Sales , průměr by znamenal výnosy na řádek. Když vezmeme tuto logiku ještě o krok dál, protože každý řádek v tabulce Sales (Prodej ) zaznamenává řádek prodejní objednávky, lze ji přesněji popsat jako výnosy na řádek objednávky.

Proto míru Revenue Avg (Průměrné výnosy) přejmenujte na Revenue Avg Order Line (Průměrný výnos řádku objednávky), aby bylo uživatelům sestavy jasné, co slouží jako základ průměrné hodnoty.

Následující příklad používá funkci iterátoru k vytvoření nové míry, která přináší podrobné informace na úrovni prodejních objednávek (prodejní objednávka se skládá z jednoho nebo více řádků objednávky). Přidejte následující míru:

Revenue Avg Order =
AVERAGEX(
    VALUES('Sales Order'[Sales Order]),
    [Revenue]
)

Míru Revenue Avg Order (Průměrný výnos objednávky) naformátujte jako měnu se dvěma desetinnými místy a pak ji přidejte do vizuálu tabulky.

Obrázek znázorňující vizuál tabulky s pěti sloupci: Month (Měsíc), Revenue (Výnosy), Discount (Sleva), Revenue Avg Order Line (Průměrný výnos řádku objednávky) a Revenue Avg Order (Průměrný výnos objednávky). Zobrazují se data za celý rok.

Jak lze očekávat, průměrný výnos objednávky je vždy vyšší než průměrný výnos jednoho řádku objednávky.

Všimněte si, že vzorec používá VALUES funkci DAX. Tato funkce umožňuje, aby vzorce určily, které hodnoty patří do kontextu filtru. V tomto případě AVERAGEX funkce iteruje každou prodejní objednávku v kontextu filtru. Jinými slovy, provádí iteraci v každé prodejní objednávce za daný měsíc. Kontext filtru a VALUES funkce jsou představeny v modulu kontextu filtru.