CALCULATETABLE
platí pro:počítaný sloupecPočítaná tabulkaMeasure vizuálu
Vyhodnotí výraz tabulky v upraveném kontextu filter.
Poznámka
K dispozici je také funkce CALCULATE. Provádí přesně stejné funkce, except upravuje kontext filter použitý u výrazu, který vrací skalární value.
Syntax
CALCULATETABLE(<expression>[, <filter1> [, <filter2> [, …]]])
Parametry
Semestr | Definice |
---|---|
expression |
Výraz tabulky, který se má vyhodnotit. |
filter1, filter2,… |
(Volitelné) Logické výrazy or výrazy tabulky, které definují filters, orfilter modifikační funkce. |
Výraz použitý jako parametr first musí být tabulka modelu or funkce, která vrací tabulku.
Filters může být:
- Logické výrazy filter
- Výrazy filter tabulky
- Filter funkce úprav
Pokud existuje více filters, vyhodnotí se pomocí logického operátoru AND. To znamená, že all podmínky musí být TRUE
ve stejném time.
Logické výrazy filter
Logický výraz filter je výraz, který se vyhodnotí jako TRUE
orFALSE
. 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í or vracejí tabulku, pokud nejsou předány jako argumenty agregačním funkcím.
- mohou obsahovat agregační funkci, která vrací skalární value.
Výraz table filter
Výraz tabulky filter použije objekt tabulky jako filter. 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 složité filter podmínky, včetně těch, které nelze definovat pomocí logického výrazu filter.
modifikační funkce Filter
Filter modifikační funkce umožňují provádět více než jednoduše přidávat filters. Poskytují vám další ovládací prvek při úpravě filter kontextu.
Funkce | Účel |
---|---|
REMOVEFILTERS | Odeberte allfilters, orfilters z jednoho or více sloupců tabulky, or ze all sloupců jedné tabulky. |
ALL 1, ALLEXCEPT, ALLNOBLANKROW | Odeberte filters z jednoho or více sloupců or ze sloupců all jedné tabulky. |
KEEPFILTERS | Přidejte filter bez odebrání existujících filters ve stejných sloupcích. |
USERELATIONSHIP | Zapojte neaktivní relaci mezi related sloupci, v takovém případě se aktivní relace automaticky stane neaktivní. |
CROSSFILTER | Upravte filter směr (z obou do jednoho, or z jednoho na oba) or relaci zakažte. |
1 funkce ALLand se její varianty chovají jako modifikátory filterand jako funkce, které vracejí objekty tabulky. If nástroj podporuje funkci REMOVEFILTERS, je lepší ji použít k odebrání filters.
Vrácení value
Tabulka values.
Poznámky
Pokud jsou k dispozici výrazy filter, funkce CALCULATETABLE upraví kontext filter tak, aby evaluate výrazu. Pro každý výraz filter existují dva možné standardní výsledky, pokud je výraz filternot zabalený do funkce KEEPFILTERS:
- If sloupce (tabulkyor) nejsou v kontextu filter, pak se do evaluate výrazu přidají nové filters kontextu filter.
- If sloupce (tabulkyor) už jsou v kontextu filter, stávající filters se přepíší novým filters tak, aby evaluate výraz CALCULATETABLE.
Tato funkce je not podporována pro použití v režimu DirectQuery při použití v počítaných sloupcích or pravidla zabezpečení na úrovni řádků (RLS).
Příklad
Následující příklad používá funkci CALCULATETABLE k získání sum internetového prodeje za 2006. Tento value se později použije k calculate poměru internetového prodeje v porovnání s prodejem all pro year 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 |
obsah Related
- kontextu
- funkce CALCULATE (DAX)
- funkce Filter (DAX)