DAX CALCULATE: galingiausia Power BI funkcija

CALCULATE — Power BI | analytics.bi
CALCULATE yra viena svarbiausių DAX funkcijų Power BI aplinkoje. Ji leidžia pakeisti filtrų kontekstą ir skaičiuoti rezultatą pagal naujas sąlygas. Jei nori rimčiau suprasti DAX, CALCULATE yra viena iš tų funkcijų, kurią būtina perprasti.

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”.

DAX CALCULATE filter context Power BI

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 .

Power BI filter override CALCULATE
CALCULATE nekeičia duomenų – ji keičia tik filtravimo sąlygas. Tai labai svarbus skirtumas.

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.
CALCULATE dažniausiai naudojama measures. Ji gali būti naudojama ir calculated columns, bet tada reikia suprasti context transition logiką.

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

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.

Nemokama atmintinė

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
Blank Form (#5)
Be spam'o. Atsisakyti gali bet kada.

Panašūs straipsniai