Rang(orde)



Hoe vaak gebeurt het niet?
Heb je een lijstje met scores, bedragen, rondetijden. Dan wil je natuurlijk ook weten hoe iedere regel zich verhoudt tot de anderen ofwel wat de rangorde van iedere score is.
Excel heeft daar een mooie functie voor, Rang (in de Engelstalige versies Rank).

Dit artikel gaat in op de werking van deze Excel-functie en zal ook laten zien hoe dit probleem getackeld kan worden als je de volgorde bijvoorbeeld per geslacht wilt weten.

Brongegevens

Als voorbeeld nemen we een score-overzicht van diverse personen, verdeeld naar afdeling en geslacht; zie het Voorbeeldbestand, tabblad Data.
We zullen hierna dit overzicht gaan sorteren naar rangorde van de score en dat ook nog op verschillende manieren.
Om het oorspronkelijke overzicht weer te kunnen herstellen hebben de namen ook een volgnummer meegekregen; deze kan in een sortering gebruikt worden.

De gegevens zijn in een Excel-tabel geplaatst met de naam tblNamen.

NB voor demonstratie-doeleinden (zie hierna) wordt de kolom Afd telkens opnieuw gevuld: =KIEZEN(ASELECTTUSSEN(1;4);”Afd1″;”Afd2″;”Afd3″;”Afd4″)

Rangorde 1: sortering

Sortering is natuurlijk de meest gehanteerde methode om een rangorde te bepalen:

  • klik met de rechter muisknop op één van de cellen in de score-kolom
  • kies de optie Sorteren
  • in het vervolgmenu kiest u de optie Oplopend of Aflopend

Uiteraard kunt u ook de knop Sortering uit de menubalk gebruiken.

NB Aangezien de gegevens in een Excel-tabel vastliggen hoeven we niet bang te zijn dat niet alle gegevens worden meegenomen bij de sortering.

Rangorde 2: Rang.Gelijk

De vorige methode heeft als nadeel, dat we niet direct zien wat de exacte plaats van een persoon is in de rangorde (behalve misschien de eerste 5).

Daarom is de tabel uitgebreid met een aparte kolom met de naam Rang.Gelijk.
De kolom is gevuld met de volgende formule:
=RANG.GELIJK([@Score];[Score];$G$2)

De functie Rang.Gelijk bepaalt aan de hand van de waarde in de Score-kolom in de betreffende regel (vandaar het @-teken in de eerste parameter) de rangorde in de totale Score-kolom (tweede parameter).
Zijn 2 of meer scores Gelijk dan krijgen de betreffende regels allemaal dezelfde rang toegewezen en wel de eerste (dus in het voorbeeld levert de score 62 voor alle betreffende regels de rang 11 op).
De derde parameter geeft aan of de rangorde van hoog naar laag bepaald moet worden of niet. Is deze parameter 0 of ONWAAR (of wordt dit derde argument weggelaten) dan zal de rangorde van hoog naar laag worden berekend; is deze parameter gelijk aan een ander getal of WAAR dan andersom.

In het voorbeeld wordt deze derde parameter gevuld met de waarde in cel G2.

Deze cel is op zijn beurt gekoppeld aan een Selectievak, zodat we de volgorde met het aan- en uitzetten van een vinkje kunnen beïnvloeden.

Hoe voeg je een Selectievak toe?

  • kies in de menutab Ontwikkelaars in het blok Besturingselementen de optie Invoegen
  • kies in het vervolgscherm binnen de Formulierbesturingselementen de derde optie (Selectievakje)
  • ‘teken’ met de linkermuisknop ingedrukt op de gewenste plaats de omtrek van het selectievak
  • de grootte, plaats en tekst-inhoud kunnen nu nog aangepast worden
  • klik rechts op het nieuwe vakje en kies de optie Besturingselement opmaken
  • nu kunnen de kleuren en lijnen ingesteld worden en ook de koppeling met een cel. In het voorbeeld hebben het selectievakje gekoppeld aan de cel G2.

In het voorbeeld hiernaast is de tabel gesorteerd op de score-kolom.
De 2 regels met score 47 hebben allebei de rang 8 gekregen; score 48 heeft de rang 10.

Iets vergelijkbaars zien we bij de score 62: drie regels krijgen de rang 16; de eerstvolgende heeft rang 19.

NB Excel kent ook een functie Rang (zie de laatste kolom van de tabel in het tabblad Data van het Voorbeeldbestand).
De werking hiervan is exact gelijk aan de functie Rang.Gelijk; Rang is vanwege compatibiliteit met oude versies nog steeds beschikbaar.

Rangorde 3: Rang.Gemiddelde

De werking hiervan is vergelijkbaar met de functie Rang.Gelijk.
Maar in het geval van gelijke scores wordt nu niet de laagste rang toegekend maar het gemiddelde van de posities van die score. Dus hiernaast krijgt de score 83 niet op 2 plaatsen de rang 4 maar het gemiddelde van rang 4 en 5, dus 4½.

Rangorde 4: Draaitabel1

Een rangorde kunnen we ook aanbrengen met behulp van een draaitabel (zie tabblad Draai in het Voorbeeldbestand).

  • maak een draaitabel op basis van de Excel-tabel tblNamen
  • plaats het veld Naam in de Rijlabels
  • Plaats het veld Score in het waardengebied
  • idem voor het veld Rang
  • en nogmaals voor het veld Score
  • wijzig de koppen in de draaitabel door in de betreffende cellen een nieuwe tekst te tikken (eventueel extra spatie aan de tekst toevoegen om deze uniek te maken)
  • klik rechts op een van de waarden in de kolom RangNeer, kies de optie Waarden weergeven als en kies dan de optie Positie van groot naar klein.
  • klik rechts op één van de namen, selecteer de optie Sorteren en dan Meer sorteeropties
  • vul het vervolgscherm in zoals hiernaast weergegeven
  • klik op OK

LET OP Zoals in het voorbeeld te zien is werkt de draaitabel-functionaliteit iets anders dan de functie Rang!
Gelijke scores krijgen ook eenzelfde rangnummer, maar de volgende score krijgt gewoon het volgende rangnummer (zie bijvoorbeeld hierboven bij score=82).

NB als de brongegevens wijzigen of de volgorde van ranking, dan moet de draaitabel vernieuwd worden (rechts klikken en Vernieuwen kiezen).

Rangorde 5: Draaitabel2

Maar….
het mooie van de draaitabel is wel, dat wanneer er nog meer velden in de Rijlabels worden geplaatst, de ranking rekening houdt met deze indeling: de rangnummers worden binnen de categorieën bepaald (hiernaast een aparte ranking voor de mannen en voor de vrouwen).

Bekijk ook het resultaat per afdeling op het tabblad Draai van het Voorbeeldbestand.

Aangezien de afdeling telkens aselect wordt toegekend, zal Vernieuwen iedere keer een ander resultaat opleveren.


Wil je op de hoogte gebracht worden, wanneer er weer een nieuw item aan Tips & trucs is toegevoegd:

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *