Suodatinkontekstin muokkaaminen

Valmis

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.