Sijoitusten laskeminen

Valmis

DAX-funktio RANKX on erityinen iteraattorifunktio, jonka avulla voit laskea sijoitukset. Sen syntaksi on seuraava:

RANKX(<table>, <expression>[, <value>[, <order>[, <ties>]]])

Kaikkien iteraattorifunktioiden tapaan sinun on välitettävä siihen taulukko ja lauseke. Vaihtoehtoisesti voit välittää sijoitusarvon, määrittää järjestyksen suunnan tai määrittää, miten sijoita käsitellään, kun arvot ovat tasassa.

Suunta

Suunta on nouseva tai laskeva. Kun määrität sijoitusta jollekin suotuisalle asialle, kuten tuottoarvoille, käytät todennäköisesti laskevaa järjestystä, jolloin suurimman tuoton sijoitus määritetään ensin. Kun määrität sijoitusta jollekin epäsuosittavalle asialle, kuten asiakkaiden valituksille, käytät ehkä nousevaa järjestystä, jolloin pienimmän valitusmäärän sijoitus määritetään ensin. Kun et välitä order-argumenttina, funktio käyttää 0:aa (nollaa) (laskevassa järjestyksessä).

Tasatilanteiden käsitteleminen

Voit käsitellä tasatilanteet ohittamalla sijoitusarvot tai käyttämällä dense-sijoitusta, joka käyttää seuraavaa sijoitusarvoa tasatilanteen jälkeen. Kun et välitä ties-argumenttia, funktio käyttää Skip-funktiota. Voit käsitellä kumpaakin ties-argumenttia myöhemmin tässä osiossa.

Sijoitusmittareiden luominen

Lisää seuraava mittari Product-taulukkoon :

Product Quantity Rank =
RANKX(
    ALL('Product'[Product]),
    [Quantity]
)

Lisää Product Quantity Rank -mittari taulukon visualisointiin, joka on raportin sivulla 2. Taulukon visualisointi ryhmittelee polkupyörätuotteet ja näyttää tuotteiden määrän laskevassa järjestyksessä.

Funktio RANKX iteroi DAX-funktion ALL palauttaman taulukon päälle. Funktion ALL avulla palautetaan kaikki mallitaulukon rivit tai vähintään yhden sarakkeen arvot, ja se ohittaa kaikki suodattimet. Siksi se palauttaa tässä tapauksessa taulukon, joka sisältää kaikki Product-taulukon Product-sarakkeen arvot. Funktion RANKX on käytettävä -funktiota, ALL koska taulukon visualisointi ryhmitellä tuotteen mukaan (joka on suodatin Tuote-taulukossa ).

Huomaa taulukon visualisoinnissa, että kaksi tuotetta on kymmenennellä sijalla ja että niitä seuraavan tuotteen sijoitus on 12. Tämä visualisointi on esimerkki ties-argumentin Skipped-vaihtoehdon käytöstä.

Seuraava tehtäväsi on syöttää seuraava logiikka, jolla muokataan Product Quantity Rank -mittarin määritystä dense-sijoitusargumentin käyttämistä varten:

Product Quantity Rank =
RANKX(
    ALL('Product'[Product]),
    [Quantity],
    ,
    ,
    DENSE
)

Huomaa, että taulukon visualisoinnissa ei enää ole ohitettua sijoitusta. Kahden kymmenennelle sijalle sijoittuneen tuotteen jälkeen seuraava sijoitus on 11:s.

Huomaa, että taulukon visualisoinnin Product Quantity Rank -mittarin kokonaissumma on yksi (1). Syy on se, että kaikkien tuotteiden kokonaismäärälle on määritetty sijoitus.

Tuotteiden kokonaismäärän sijoituksen määrittäminen ei ole tarkoituksenmukaista, joten muokkaat nyt seuraavan logiikan avulla mittarin kuvauksen niin, että se palauttaa arvon BLANK, paitsi jos yksittäinen tuote on suodatettu:

Product Quantity Rank =
IF(
    HASONEVALUE('Product'[Product]),
    RANKX(
        ALL('Product'[Product]),
        [Quantity],
        ,
        ,
        DENSE
    )
)

Huomaa, että Product Quantity Rank -parametrin arvo on nyt BLANK, joka saavutettiin DAX-funktiolla HASONEVALUE testaamalla, onko Product-taulukon Product-sarakkeessa yksittäinen arvo suodatinkontekstissa. Tämä pätee jokaiseen tuoteryhmään, mutta ei kokonaissummaan, joka edustaa kaikkia tuotteita.

Suodatinkonteksti HASONEVALUE ja funktio esitellään suodatinkontekstimoduulissa.