Funkcia CALCULATE
Funkcia CALCULATE je jednou z najvšeobsiahodnejších funkcií v službe Power BI. Nasledujúci príklad znázorňuje syntax funkcie CALCULATE:
CALCULATE( <expression>, <filter1>, <filter2>, ... )
Výraz v prvom parametri sa musí vyhodnotiť, aby sa vrátil výsledok (hodnota) a zvyčajne ide o agregačnú funkciu, ako napríklad SUM, AVG, MIN atď. Tento výraz sa potom vyhodnotí v kontexte na základe filtrov. Tieto filtre môžu rozbaliť a obmedziť aktuálny kontext vyhodnotenia.
S funkciou CALCULATE máte kontrolu nad kontextom riadka a filtra. Filtre môžete pridávať, odstraňovať a aktualizovať. CALCULATE je kľúčovou funkciou pre mnohé výpočty v jazyku DAX.
Pridanie filtra pomocou funkcie CALCULATE
Nasledujúci úryvok kódu zobrazuje príklad toho, ako vyhodnotiť celkový predaj a pridať kontext filtra V lietadle.
Airplane Sales = CALCULATE( [Total Sales], 'Product Details'[ItemGroup] = "Airplane" )
Tip
Nasledujúci výstrižok kódu ukazuje, ako by ste v Tabuľke mohli vykonať rovnaký výpočet: Airplane Sales = IF [ItemGroup] = "Airplane" THEN SUM([Sales Amount] ELSE 0 END
Aktualizácia filtra pomocou funkcie CALCULATE
Nasledujúci úryvok kódu zobrazuje príklad toho, ako získať hodnotu Predaj za rok 2018, aj keď je v rýchlom filtri roka vybratý rok 2019.
2018 Sales = CALCULATE( [Total Sales], DATE[Year] = 2018 )
Tip
Priame porovnanie Tableau sa nezdá byť dostupné. Na dokončenie tejto funkcie v tabuľke Tableau budete musieť duplikovať polia, priniesť ďalšie zdroje údajov alebo vykonať výpočty v každom stĺpci.
Ignorovať filter s funkciou CALCULATE
Nasledujúci úryvok kódu zobrazuje príklad toho, ako vyhľadať celkový predaj štátov, ktoré majú Alexandriu uvedenú ako mesto (Alexandria je hodnota vybratá v rýchlom filtri mesta).
Total Sales All States = CALCULATE( [Total Sales], ALL( Geography[State] ) )
Tip
Rovnaký výpočet by ste použili aj v tabuľke Tableau pomocou výrazu EXCLUDE LOD. Všimnite si, že tento výraz LOD sa líši od toho druhého podľa jeho granularity. Pomocou tohto výrazu budete chcieť namiesto zobrazenia štátu a mesta vylúčiť stav: Total Sales All States = { EXCLUDE [State] : SUM([Total Sales]) }
Potrebujete pomoc? Pozrite si nášho sprievodcu riešením problémov alebo odošlite konkrétne pripomienky nahlásením problému.