Suodattimen valitsimen funktion käyttö

Valmis

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