Kennismaking met de RANK-windowfunctie in DAX: overzicht en voorbeeld

Kennismaking met de RANK-windowfunctie in DAX: overzicht en voorbeeld

Inleiding:

Data Analysis Expressions (DAX) is een verzameling functies, operatoren en constanten die je gebruikt in Power BI van Microsoft, Analysis Services en Power Pivot in Excel. Een deel van die functies zijn windowfuncties. Die zijn speciaal gemaakt om te rekenen over sets van rijen die bij de huidige rij horen. Een van die functies is de functie RANK. Die geeft elke rij een rang binnen een partitie van een resultaatset.

De functie RANK is erg handig om te zien hoe je data verdeeld is en om de bovenste of onderste records binnen een bepaalde context te vinden. Vandaag bekijken we de functie RANK, leggen we de syntax uit en werken we een voorbeeld uit.

De functie RANK in DAX begrijpen:

In DAX schrijf je de functie RANK als RANKX. Die geeft voor elke rij in een tabel de rang van een getal in een lijst van getallen. De syntax is:

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

Hierin is:

  • : de tabel met de data die je wilt rangschikken.
  • : de expressie die de waarde bepaalt die je rangschikt.
  • : optioneel. Een scalaire expressie die de waarde bepaalt die je vergelijkt met de waarden van voor alle rijen van
  • .
  • : ook optioneel. Geeft aan hoe de data gesorteerd wordt. Dat kan oplopend (ASC) of aflopend (DESC) zijn.
  • : ook optioneel. Bepaalt hoe je met gelijke waarden omgaat.
  • Een voorbeeld maakt dit duidelijker.

    Voorbeeld: verkoopprestaties rangschikken:

    Stel, we hebben een tabel ‘Sales’ met de kolommen ‘Salesperson’ en ‘Total Sales’. We willen de verkopers rangschikken op hun totale omzet.

    Sales Table:
    Salesperson Total Sales
    John $20,000
    Lisa $15,000
    Mark $25,000
    Susan $18,000
    Peter $22,000

    Dat doen we met de functie RANKX. Onze DAX-expressie ziet er zo uit:

    RANKX (
    ALL('Sales'[Salesperson]),
    CALCULATE(SUM('Sales'[Total Sales])),
    ,
    DESC,
    Dense
    )

    Deze expressie geeft een nieuwe kolom die elke verkoper rangschikt op totale omzet, van hoog naar laag. Hebben verkopers dezelfde omzet, dan zorgt de optie ‘Dense’ ervoor dat er geen rangen worden overgeslagen.

    Conclusie:

    De functie RANKX in DAX is een krachtig hulpmiddel om je data te analyseren en te begrijpen. Als je datapunten ten opzichte van elkaar rangschikt, vind je inzichten die anders verborgen blijven. Of je nu verkoopprestaties vergelijkt, websitecijfers volgt of enquêtedata analyseert: de functie RANKX geeft je een waardevolle kijk op je data.

    Blijf je DAX-kennis uitbreiden en probeer functies als RANKX uit. Je staat versteld van wat je eruit haalt. Veel plezier met analyseren!

    Veelgestelde vragen

    Wat is de syntax van RANKX in DAX?

    RANKX (<table>, <expression>[, <value>[, <order>[, <ties>]]]). De tabel en de expressie zijn verplicht. De value, de order en het ties-argument zijn optioneel.

    Hoe rangschik ik verkopers op totale omzet in DAX?

    Gebruik RANKX over ALL('Sales'[Salesperson]) met CALCULATE(SUM('Sales'[Total Sales])) als expressie. Zet de order op DESC, dan krijgt de hoogste omzet rang 1.

    Hoe gaat RANKX om met gelijke waarden in DAX?

    Dat regelt het ties-argument. Met de optie Dense krijgen gelijke omzetcijfers dezelfde rang en worden daarna geen rangen overgeslagen.

    Wat doet het order-argument van RANKX?

    Het bepaalt hoe de data gesorteerd wordt. Dat kan oplopend (ASC) of aflopend (DESC) zijn. Het argument is optioneel.

    Waar kan ik DAX-windowfuncties zoals RANK gebruiken?

    DAX gebruik je in Power BI, Analysis Services en Power Pivot in Excel. Windowfuncties rekenen over sets van rijen die bij de huidige rij horen.

    Reacties

    Je e-mailadres wordt niet getoond. Een foto komt van Gravatar, als je die hebt.