Suodattimen valitsimen funktion käyttö
Kun käytät -funktiota CALCULATE
, voit siirtää suodatuksen muokkausfunktioihin, joiden avulla voit suorittaa muutakin kuin lisätä pelkästään suodattimia.
Suodattimien poistaminen
REMOVEFILTERS
Poista suodattimet suodatinkontekstista CALCULATE
käyttämällä DAX-funktiota suodatinlausekkeena. Se voi poistaa suodattimia yhdestä tai useammasta sarakkeesta tai yksittäisen taulukon kaikista sarakkeista.
Huomautus
Funktio REMOVEFILTERS
on suhteellisen uusi. Aikaisemmissa DAX-versioissa suodattimet poistettiin käyttämällä DAX-funktiota ALL
tai variantteja, mukaan lukien - ALLEXCEPT
ja ALLNOBLANKROW
DAX-funktiot. Nämä funktiot toimivat sekä suodatinmääritteinä että funktioissa, jotka palauttavat erillisten arvojen taulukko-objekteja. Nämä funktiot on mainittu nyt, koska todennäköisesti löydät dokumentaatio- ja kaavaesimerkkejä, jotka poistavat suodattimia niiden avulla.
Seuraavassa esimerkissä lisäät Sales-taulukkoon uuden mittarin, joka arvioi Tuotto-mittarin , mutta poistaa suodattimet Myyntialue-taulukosta . Muotoile mittari valuutaksi kahden desimaalin tarkkuudella.
Revenue Total Region = CALCULATE([Revenue], REMOVEFILTERS('Sales Territory'))
Lisää nyt Revenue Total Region -mittari matriisivisualisointiin, joka löytyy raportin sivulta 2 . Matriisivisualisointi ryhmittää kolme saraketta Myyntialue-taulukosta riveillä: Ryhmä, Maaja Alue.
Huomaa, että jokainen Revenue Total Region -arvo on sama. Se on kokonaistuoton arvo.
Vaikka tämä tulos ei olekaan sinällään hyödyllinen, kun sitä käytetään nimittäjänä suhteessa, se laskee prosenttiluvun kokonaissummasta. Niinpä korvaat Revenue Total Region -mittarin määrityksen seuraavalla määrityksellä. (Tämä uusi määritys muuttaa mittarin nimeä ja määrittää kaksi muuttujaa. Muotoile mittari prosenttilukuna, jossa on kaksi desimaalia.)
Revenue % Total Region =
VAR CurrentRegionRevenue = [Revenue]
VAR TotalRegionRevenue =
CALCULATE(
[Revenue],
REMOVEFILTERS('Sales Territory')
)
RETURN
DIVIDE(
CurrentRegionRevenue,
TotalRegionRevenue
)
Varmista, että matriisin visualisointi näyttää nyt Revenue Total Region -arvot.
Luot nyt toisen mittarin, mutta tällä kertaa lasket alueen tuoton suhteen jaettuna maan tuloilla.
Ennen kuin suoritat tämän tehtävän, huomaa, että Revenue % Total Region -arvo lounaiselle alueelle on 22,95 prosenttia. Tutki tämän solun suodatinkontekstia. Vaihda tietonäkymään ja valitse sitten Kentät-ruudussaMyyntialue-taulukko .
Käytä seuraavia sarakesuodattimia:
- Ryhmä - Pohjois-Amerikka
- Maa - Yhdysvallat
- Alue - Lounainen
Huomaa, että suodattimet kaventavat taulukon vain yhdelle riville. Kun nyt ajattelet uutta tavoitettasi alueiden tuottojen luomisen suhteesta maan tuottoon nähden, tyhjennä suodatin Alue-sarakkeesta.
Huomaa, että viisi riviä on nyt olemassa, joista jokainen kuuluu maalle Yhdysvallat. Näin ollen, kun tyhjennät Alue-sarakesuodattimet ja säilytät suodattimet Maa- ja Ryhmä-sarakkeille, saat uuden suodatuskontekstin, joka on tarkoitettu alueen maalle.
Seuraavassa mittarin määrityksessä saat tietää, miten voit tyhjentää tai poistaa suodattimen sarakkeesta. DAX-logiikassa se on pieni ja hienovarainen muutos, joka tehdään Revenue % Total Region - mittarin kaavalla: Funktio REMOVEFILTERS
poistaa nyt suodattimet Alue-sarakkeesta kaikkien Myyntialue-taulukon sarakkeiden sijaan.
Revenue % Total Country =
VAR CurrentRegionRevenue = [Revenue]
VAR TotalCountryRevenue =
CALCULATE(
[Revenue],
REMOVEFILTERS('Sales Territory'[Region])
)
RETURN
DIVIDE(
CurrentRegionRevenue,
TotalCountryRevenue
)
Lisää Revenue % Total Country -mittari Sales-taulukkoon ja muotoile se prosenttilukuna kahden desimaalin mittarilla. Lisää uusi mittari matriisivisualisointiin.
Huomaa, että kaikki arvot, lukuun ottamatta Yhdysvallat-alueen arvoja, ovat 100 prosenttia. Syynä on se, että Adventure Works -yrityksessä Yhdysvalloissa on alueita, kun taas muissa maissa ei ole.
Huomautus
Taulukkomallit eivät tue epätasaisia hierarkioita, jotka ovat hierarkioita, joilla on vaihteleva syvyys. Sen vuoksi on yleinen suunnittelutapa toistaa ylemmän tason (tai muiden esi-arvojen) arvot hierarkian alemmilla tasoissa. Esimerkiksi Australialla ei ole aluetta, joten maan/alueen arvo toistetaan alueen nimenä. On aina parempi tallentaa mielekäs arvo tyhjän sijaan.
Seuraava esimerkki on viimeisin luomasi mittari. Lisää Tuotto % yhteensä ryhmittäin -mittari ja muotoile se prosenttilukuna kahden desimaalin tarkkuudella. Lisää sitten uusi mittari matriisivisualisointiin.
Revenue % Total Group =
VAR CurrentRegionRevenue = [Revenue]
VAR TotalGroupRevenue =
CALCULATE(
[Revenue],
REMOVEFILTERS(
'Sales Territory'[Region],
'Sales Territory'[Country]
)
)
RETURN
DIVIDE(
CurrentRegionRevenue,
TotalGroupRevenue
)
Kun poistat suodattimia Alue ja Maa -sarakkeista Myyntialue-taulukosta , mittari laskee alueen tuoton ryhmän tuoton suhteen.
Suodattimien säilyttäminen
Voit käyttää DAX-funktiota KEEPFILTERS
suodatinlausekkeena funktiossa CALCULATE
suodattimien säilyttämiseksi.
Jos haluat tarkkailla, miten tämä tehtävä suoritetaan, siirry raportin sivulle 1 . Muokkaa sitten Revenue Red -mittarin määritystä käyttämään -funktiota KEEPFILTERS
.
Revenue Red =
CALCULATE(
[Revenue],
KEEPFILTERS('Product'[Color] = "Red")
)
Huomaa, että taulukon visualisoinnissa vain yksi Tuotto punainen -arvo on olemassa. Syynä on se, että totuusarvosuodatinlauseke säilyttää Tuote-taulukon Väri-sarakkeessa olemassa olevat suodattimet. Syy siihen, miksi muut kuin punaiset värit ovat tyhjiä, on se, että suodatinkontekstit ja suodatinlausekkeet yhdistetään näille kahdelle suodattimelle. Värit musta ja punainen väri leikkaavat keskenään, ja koska molempia ei voi olla TRUE
samanaikaisesti, lauseke suodatetaan ilman tuoterivejä. On mahdollista, että molemmat punaiset suodattimet voivat olla TRUE
samanaikaisesti, mikä selittää, miksi Tuotto punainen -arvo näytetään.
`Passiivisten suhteiden käyttö
Passiivinen malliyhteys voi levittää suodattimia vain, kun USERELATIONSHIP
DAX-funktio välitetään suodatinlausekkeena funktiolle CALCULATE
. Kun käytät tätä funktiolla passiivisiin suhteisiin, aktiivisesta suhteesta tulee automaattisesti passiivinen.
Tarkista esimerkkimittarin määritys, joka käyttää passiivisia suhteita laskeakseen Tuotto-mittarin toimitettujen päivämäärien mukaan:
Revenue Shipped =
CALCULATE (
[Revenue],
USERELATIONSHIP('Date'[DateKey], Sales[ShipDateKey])
)
Suhteen toiminnan muokkaus
Voit muokata mallisuhteen toimintaa, kun lauseke arvioidaan, välittämällä CROSSFILTER
DAX-funktion suodatinlausekkeena funktiolle CALCULATE
. Se on edistynyt ominaisuus.
Funktiolla CROSSFILTER
voidaan muokata suodatussuuntaa (sekä yksittäiseksi että yksittäisestä) ja jopa poistaa suhde käytöstä.