Sdílet prostřednictvím


Vyhněte se převodu BLANKů na values

Jako modelátor dat můžete při psaní výrazů measure narazit na případy, kdy se nedá vrátit smysluplný value. V těchto případech můžete být lákaví vrátit místo toho value( například nula). Doporučujeme pečlivě určit, jestli je tento návrh efektivní and praktický.

Zvažte následující definici measure, která explicitně převádí BLANK výsledky na nulu.

Sales (No Blank) =
IF(
    ISBLANK([Sales]),
    0,
    [Sales]
)

Zvažte další definici measure, která také převádí BLANK výsledky na nulu.

Profit Margin =
DIVIDE([Profit], [Sales], 0)

Funkce DIVIDE vydělí Profitmeasure hodnotou Salesmeasure. Pokud je výsledek nulový orBLANK, vrátí se třetí argument – alternativní výsledek (který je volitelný). V tomto příkladu, protože nula je předána jako alternativní výsledek, je zaručeno, že measure vždy vrátí value.

Tyto návrhy measure jsou neúčinné and způsobují neefektivní návrhy sestav.

Po přidání do vizuálu sestavy se Power BI pokusí načíst all seskupení v kontextu filter. Proces vyhodnocování načítání velkých výsledků dotazů and často vede k pomalému vykreslování sestav. Každý příklad measure efektivně změní řídký výpočet na zhuštěný výpočet, který vynutí Power BI, aby používal více paměti, než je nutné.

Příliš mnoho seskupení také často zahltí uživatele sestavy.

Podívejme se, co se stane, když do tabulkového vizualizace přidáme Profit Marginmeasure, seskupené podle zákazníka.

snímek obrazovky Power desktopové verzi BI zobrazující vizuál tabulky dat s jedním řádkem na zákazníka. Prodejní values jsou BLANKand zisková marže values jsou nula procent.

Tabulka zobrazuje ohromující počet řádků. (V modelu je fact 18 484 zákazníků, and aby se tabulka pokusila zobrazit all z nich.) Všimněte si, že zákazníci v zobrazení nedosáhli žádného prodeje. Vzhledem k tomu, že measure vždy vrátí ziskovou marži value, zobrazí se.

Poznámka

Pokud je ve vizuálu příliš mnoho datových bodů, Power BI může použít strategie redukce dat k odebrání orsummarize velkých výsledků dotazu. Další informace najdete v tématu Omezení datových bodů and strategie podle typu vizuálu.

Pojďme se podívat, co se stane, když se zlepší definice ziskové marže . now vrátí value pouze v případech, kdy Salesmeasure není BLANK (or nula).

Profit Margin =
DIVIDE([Profit], [Sales])

Vizuál tabulky now zobrazuje pouze zákazníky, kteří v aktuálním filter kontextu provedli prodej. Vylepšená measure vede k efektivnějšímu and praktickému prostředí pro uživatele sestavy.

Snímek obrazovky Power BI Desktopu zobrazující vizuál tabulky dat s filtrovaným obsahem

Spropitné

V případě potřeby můžete vizuál nakonfigurovat tak, aby zobrazoval all seskupování (které vrací valuesorBLANK) v kontextu filter povolením možnosti Zobrazit položky bez dat.

Doporučení

Doporučuje se, aby měření vrátily BLANK, pokud nelze vrátit významný value.

Tento přístup k návrhu je efektivní a umožňuje Power BI generovat sestavy rychleji. Vrácení BLANK je také lepší, protože vizuály sestav ve výchozím nastavení eliminují seskupení, když jsou souhrny BLANK.