Dirbant su Power BI dažnai neužtenka tiesiog susumuoti stulpelį. Dažniausiai norime skaičiuoti pagal sąlygas: tik vieną kategoriją, konkretų laikotarpį ar tam tikrą miestą.
Tokiose situacijose naudojama CALCULATE funkcija. Ji leidžia paimti esamą skaičiavimą ir pakeisti jo filtrų kontekstą.
Jei dar tik pradedi su DAX, pirmiausia verta perskaityti: kas yra DAX ir kuo skiriasi measures nuo calculated columns .
Kas yra CALCULATE?
CALCULATE yra DAX funkcija, kuri apskaičiuoja išraišką pakeistame filtrų kontekste.
Paprastai tariant: tu nurodai, ką skaičiuoti ir kokiomis sąlygomis.
CALCULATE sintaksė
CALCULATE(expression, filter1, filter2, ...)
expression – skaičiavimas, pvz. SUM(Pardavimai[Suma]).
filter – sąlyga, kuri keičia filtrų kontekstą.
Paprastas pavyzdys
Turime bendrą pardavimų measure:
Visi pardavimai := SUM(Pardavimai[Suma])
Norime apskaičiuoti tik dviračių pardavimus:
Dviračių pardavimai :=
CALCULATE(
SUM(Pardavimai[Suma]),
Produktas[Kategorija] = "Dviračiai"
)
Šiuo atveju Power BI apskaičiuoja pardavimų sumą tik toms eilutėms, kur produkto kategorija yra „Dviračiai”.
Kaip CALCULATE keičia filter context
Filter context – tai filtrai, kurie veikia skaičiavimą: sliceriai, lentelės, grafikai, puslapio filtrai ir kiti ataskaitos elementai.
Jei CALCULATE viduje nurodomas naujas filtras tam pačiam stulpeliui, jis gali perrašyti esamą filtrą.
Plačiau apie tai: filter context ir row context skirtumus .
REMOVEFILTERS pavyzdys
CALCULATE dažnai naudojama kartu su funkcijomis, kurios keičia filtrų elgesį. Viena iš jų yra REMOVEFILTERS.
Pardavimai visi miestai :=
CALCULATE(
SUM(Pardavimai[Suma]),
REMOVEFILTERS(Parduotuvės[Miestas])
)
Šiuo atveju ignoruojamas miesto filtras ir grąžinama bendra suma visiems miestams.
Plačiau apie šias funkcijas: kaip veikia ALL, REMOVEFILTERS ir KEEPFILTERS .
Dažniausios CALCULATE klaidos
- Manoma, kad CALCULATE keičia duomenis, nors ji keičia tik kontekstą.
- Painiojamas row context ir filter context.
- Per daug logikos sudedama į vieną measure.
- Ignoruojami duomenų modelio ryšiai.
Dirbi su Excel prieš pereidamas į Power BI?
Suprasti duomenų logiką lengviausia pradėti nuo Excel lentelių jungimo. Tam paruošėme trumpą mini kursą apie XLOOKUP.
🎓 Peržiūrėti mini kursąKą skaityti toliau
- Kaip DAX mato duomenis: Row vs Filter context
- ALL, REMOVEFILTERS ir KEEPFILTERS
- Time Intelligence Power BI
Išvada
CALCULATE yra DAX pagrindas. Supratus, kaip ji keičia filtrų kontekstą, atsiveria daug platesnės Power BI analizės galimybės.
Svarbiausia prisiminti: CALCULATE nekeičia duomenų lentelėje. Ji pakeičia sąlygas, pagal kurias atliekamas skaičiavimas.
Power Query atmintinė: automatizuok ataskaitą
Pagrindiniai žingsniai, 5 dažnos klaidos ir kada verta automatizuoti ataskaitą.
- PDF · 2 psl., praktiška
- Be spam'o — tik nauda
