Suodatinkontekstin muokkaaminen
DAX-funktiolla CALCULATE
voit muokata kaavojen suodatinkontekstia. CALCULATE-funktion syntaksi on seuraava:
CALCULATE(<expression>, [[<filter1>], <filter2>]…)
Funktio edellyttää siirtämistä lausekkeesta, joka palauttaa skalaariarvon ja niin monta suodatinta kuin tarvitset. Lauseke voi olla mittari (joka on nimetty lauseke) tai mikä tahansa lauseke, joka voidaan laskea suodatinkontekstilla.
Suodattimet voivat olla totuusarvolausekkeita tai taulukkolausekkeita. On myös mahdollista välittää suodattimen muokkausfunktioihin, jotka antavat lisäohjausobjektin, kun muokkaat suodatinkontekstia.
Kun sinulla on useita suodattimia, ne arvioidaan käyttämällä loogista AND
operaattoria, mikä tarkoittaa sitä, että kaikkien ehtojen on oltava TRUE
samanaikaisesti.
Huomautus
DAX-funktio CALCULATETABLE
suorittaa täsmälleen samat toiminnot kuin CALCULATE
funktio, paitsi että se muokkaa suodatinkontekstia, jota käytetään taulukko-objektin palauttavan lausekkeen kanssa. Tässä moduulissa selitykset ja esimerkit käyttävät -funktiota CALCULATE
, mutta muista, että nämä skenaariot voivat koskea CALCULATETABLE
myös funktiota.
Totuusarvolausekkeen suodattimien käyttö
Totuusarvolausekkeen suodatin on lauseke, joka antaa tulokseksi TRUE
tai FALSE
. Totuusarvosuodattimien on noudatettava seuraavia sääntöjä:
- Ne voivat viitata vain yhteen sarakkeeseen.
- Ne eivät voi viitata mittareihin.
- Ne eivät voi käyttää funktioita, jotka skannaavat tai palauttavat taulukon, joka sisältää koostamisfunktioita, kuten
SUM
.
Tässä esimerkissä luodaan mittari. Lataa ja avaa ensin tiedosto Adventure Works DW 2020 M06.pbix. Lisää sitten seuraava mittari Myynti-taulukkoon, joka suodattaa Tuotto-mittarin käyttämällä ehtolauseketta punaisille tuotteille.
Revenue Red = CALCULATE([Revenue], 'Product'[Color] = "Red")
Lisää Revenue red -mittari taulukon visualisointiin, joka on raportin sivulla 1.
Seuraavassa esimerkissä seuraava mittari suodattaa Tuotto-mittarin useiden värien mukaan. Huomaa operaattorin käyttö, IN
jota seuraa väriarvojen luettelo.
Revenue Red or Blue = CALCULATE([Revenue], 'Product'[Color] IN {"Red", "Blue"})
Seuraava mittari suodattaa Tuotto-mittarin kalliiden tuotteiden mukaan. Kalliit tuotteet ovat niitä, joiden listahinta on suurempi kuin 1000 dollaria.
Revenue Expensive Products = CALCULATE([Revenue], 'Product'[List Price] > 1000)
Taulukkolausekkeen suodattimien käyttö
Taulukkolausekesuodatin käyttää suodattimena taulukko-objektia. Se voi olla viittaus mallitaulukkoon. Se on kuitenkin todennäköisesti DAX-funktio, joka palauttaa taulukko-objektin.
Yleensä DAX-funktiolla käytetään FILTER
monitasoista suodatusehtoa, myös sellaisia, joita totuusarvosuodatinlauseke ei voi määrittää. Funktio FILTER
luokitellaan iteraattorifunktioksi, joten voit välittää taulukon tai taulukkolausekkeen ja lausekkeen kunkin taulukon rivin arvioimiseksi.
Funktio FILTER
palauttaa taulukko-objektin, jonka rakenne on täsmälleen sama kuin välitetyssä taulukossa. Sen rivit ovat välitettyjen rivien alijoukko eli rivit, joissa lauseke arvioidaan arvoksi TRUE
.
Seuraavassa esimerkissä näytetään taulukkosuodatinlauseke, joka käyttää -funktiota FILTER
:
Revenue High Margin Products =
CALCULATE(
[Revenue],
FILTER(
'Product',
'Product'[List Price] > 'Product'[Standard Cost] * 2
)
)
Tässä esimerkissä funktio suodattaa kaikki Product-taulukon rivit, jotka ovat suodatinkontekstissa FILTER
. Tuotteen jokainen rivi, jossa listahinta ylittää vakiohinnan, näytetään suodatetun taulukon rivinä. Siksi Tuotto-mittari lasketaan kaikille funktion FILTER
palauttamia tuotteita varten.
Kaikki funktioon CALCULATE
välitettyjä suodatinlausekkeita ovat taulukkosuodatinlausekkeita. Totuusarvosuodatinlauseke on tiivistelmä, joka parantaa kirjoitus- ja lukukokemusta. Sisäisesti Microsoft Power BI muuntaa totuusarvosuodatinlausekkeet taulukkosuodatinlausekkeiksi. Näin se kääntää Revenue Red -mittarin määrityksen.
Revenue Red =
CALCULATE(
[Revenue],
FILTER(
'Product',
'Product'[Color] = "Red"
)
)
Suodattimen toiminta
Kaksi mahdollista vakiotulosta syntyy, kun lisäät suodatinlausekkeita funktioon CALCULATE
:
- Jos sarakkeet (tai taulukot) eivät ole suodatinkontekstissa, suodatinkontekstiin lisätään uusia suodattimia lausekkeen
CALCULATE
arvioimiseksi. - Jos sarakkeet (tai taulukot) ovat jo suodatinkontekstissa, uudet suodattimet korvaavat olemassa olevat suodattimet lausekkeen
CALCULATE
arvioimiseksi.
Seuraavissa esimerkeissä näytetään, miten suodatinlausekkeiden lisääminen funktioon CALCULATE
toimii.
Huomautus
Kaikissa esimerkeissä taulukon visualisointiin ei käytetä suodattimia.
Kuten edellisessä toiminnossa, Revenue Red -mittari lisättiin taulukkovisualisointiin, joka ryhmittelee alueen mukaan ja näyttää tuoton.
Koska Tuote-taulukonVäri-sarakkeessa ei käytetä suodatinta, mittarin arviointi lisää uuden suodattimen suodatinkontekstiin. Ensimmäisellä rivillä on arvo $2 681 324,79 punaisille tuotteille, jotka myytiin Australian alueella.
Taulukon visualisoinnin ensimmäisen sarakkeen vaihtaminen AlueestaVäriksi tuottaa erilaisen tuloksen, koska Tuote-taulukonColor-sarake on nyt suodatinkontekstissa.
Revenue Red -mittarin kaava arvioi Tuotto-mittarin lisäämällä suodattimen Tuote-taulukonVäri-sarakkeeseen (punaiseksi). Näin ollen tässä visualisoinnissa, joka ryhmittelee värin mukaan, mittarin kaava korvaa suodatinkontekstin uudella suodattimella.
Tämä tulos voi olla tai ei ehkä ole haluamasi. Seuraava yksikkö esittelee KEEPFILTERS
DAX-funktion, joka on suodattimen muokkausfunktio, jota voit käyttää suodattimien säilyttämiseen niiden korvaamisen sijaan.