CALCULATETABLE
platí pro:Počítaný sloupec
Počítaná tabulka
míra
vizuální
Vyhodnotí výraz tabulky v upraveném kontextu filtru.
Poznámka
K dispozici je také funkce CALCULATE. Provádí přesně stejné funkce, s výjimkou toho, že upravuje kontext filtru použitý u výrazu, který vrací skalární hodnotu.
Syntax
CALCULATETABLE(<expression>[, <filter1> [, <filter2> [, …]]])
Parametry
Semestr | Definice |
---|---|
expression |
Výraz tabulky, který se má vyhodnotit. |
filter1, filter2,… |
(Volitelné) Logické výrazy nebo výrazy tabulky, které definují filtry nebo modifikační funkce filtru. |
Výraz použitý jako první parametr musí být tabulka modelu nebo funkce, která vrací tabulku.
Filtry můžou být:
- Logické výrazy filtru
- Výrazy filtru tabulky
- Funkce úprav filtru
Pokud existuje více filtrů, vyhodnotí se pomocí logického operátoru AND. To znamená, že všechny podmínky musí být TRUE
současně.
Logické výrazy filtru
Logický filtr výrazů je výraz, který se vyhodnotí jako TRUE
nebo FALSE
. Existuje několik pravidel, která musí dodržovat:
- Mohou odkazovat pouze na jeden sloupec.
- Nemůžou odkazovat na míry.
- Nemůžou použít vnořenou funkci CALCULATE.
Od verze Power BI Desktopu ze září 2021 platí také toto:
- Nemůžou používat funkce, které prohledávají nebo vracejí tabulku, pokud nejsou předány jako argumenty agregačním funkcím.
- mohou obsahovat agregační funkci, která vrací skalární hodnotu.
Výraz filtru tabulky
Filtr výrazů tabulky použije objekt tabulky jako filtr. Může se jednat o odkaz na tabulku modelu, ale s větší pravděpodobností se jedná o funkci, která vrací objekt tabulky. Pomocí funkce FILTER můžete použít komplexní podmínky filtru, včetně těch, které nelze definovat pomocí logického výrazu filtru.
Modifikační funkce filtru
Modifikační funkce filtru umožňují provádět více než pouhé přidávání filtrů. Poskytují vám další ovládací prvek při úpravě kontextu filtru.
Funkce | Účel |
---|---|
REMOVEFILTERS | Odeberte všechny filtry nebo filtry z jednoho nebo více sloupců tabulky nebo ze všech sloupců jedné tabulky. |
ALL 1, ALLEXCEPT, ALLNOBLANKROW | Odeberte filtry z jednoho nebo více sloupců nebo ze všech sloupců jedné tabulky. |
KEEPFILTERS | Přidejte filtr bez odebrání existujících filtrů ve stejných sloupcích. |
USERELATIONSHIP | Zapojte neaktivní relaci mezi souvisejícími sloupci, v takovém případě se aktivní relace automaticky stane neaktivní. |
CROSSFILTER | Změňte směr filtru (z obou na jeden nebo z jednoho na oba) nebo zakažte relaci. |
1 Funkce ALL a její varianty se chovají jako modifikátory filtru i jako funkce, které vracejí objekty tabulky. Pokud nástroj podporuje funkci REMOVEFILTERS, je lepší ji použít k odebrání filtrů.
Návratová hodnota
Tabulka hodnot.
Poznámky
Pokud jsou k dispozici výrazy filtru, funkce CALCULATETABLE upraví kontext filtru tak, aby vyhodnotil výraz. Pro každý výraz filtru existují dva možné standardní výsledky, pokud není výraz filtru zabalený do funkce KEEPFILTERS:
- Pokud sloupce (nebo tabulky) nejsou v kontextu filtru, přidají se do kontextu filtru nové filtry, aby se výraz vyhodnotil.
- Pokud už jsou sloupce (nebo tabulky) v kontextu filtru, stávající filtry se přepíšou novými filtry, aby se vyhodnotil výraz CALCULATETABLE.
Tato funkce není podporována pro použití v režimu DirectQuery při použití v počítaných sloupcích nebo pravidlech zabezpečení na úrovni řádků (RLS).
Příklad
Následující příklad používá funkci CALCULATETABLE k získání součtu internetového prodeje za 2006. Tato hodnota se později použije k výpočtu poměru internetových prodejů v porovnání se všemi prodeji za rok 2006.
Následující vzorec:
= SUMX(
CALCULATETABLE(
'InternetSales_USD',
'DateTime'[CalendarYear] = 2006
),
[SalesAmount_USD]
)
Výsledkem je následující tabulka:
Popisky řádků | Internet SalesAmount_USD | CalculateTable 2006 Internet Sales | Poměr internetového prodeje k roku 2006 |
---|---|---|---|
2005 | 2 627 031,40 Kč | 5 681 440,58 Kč | 0.46 |
2006 | 5 681 440,58 Kč | 5 681 440,58 Kč | 1.00 |
2007 | 8 705 066,67 Kč | 5 681 440,58 Kč | 1.53 |
2008 | 9 041 288,80 Kč | 5 681 440,58 Kč | 1.59 |
Celkový součet | 26 054 827,45 Kč | 5 681 440,58 Kč | 4.59 |
Související obsah
- kontextový filtru
- funkce CALCULATE (DAX)
- funkce filtru (DAX)