Skip to main content

Kutools voor Office — Eén Suite. Vijf Tools. Verwezenlijkt Meer.

Hoe waarden per groep te rangschikken in Excel?

Author Sun Last modified

Werken met gegroepeerde gegevens in Excel vereist vaak het vergelijken van waarden binnen elke groep, zoals de rangschikking van verkoopcijfers per regio, testresultaten per klas of transactiebedragen per categorie. Hoewel Excel krachtige tools biedt voor het rangschikken van gegevens, vereist het rangschikken binnen groepen (ook wel 'group-wise ranking' of 'voorwaardelijke rangschikking' genoemd) een specifieke aanpak. Dit is vooral handig wanneer je prestaties wilt evalueren of top- en onderste records wilt identificeren binnen verschillende categorieën zonder de resultaten tussen groepen door elkaar te halen. De volgende methoden verkennen praktische oplossingen om waarden per groep te rangschikken, waardoor het gemakkelijker wordt om je gegevens nauwkeurig te interpreteren en analyseren in dagelijkse taken.
A screenshot showing a grouped data set with ranked values in Excel

Waarden per groep rangschikken
VBA-code - Gebruik een macro om het rangschikken van waarden binnen elke groep te automatiseren


arrow blue right bubble Waarden per groep rangschikken

In situaties waarin je waarden binnen verschillende groepen moet rangschikken, zoals het beoordelen van studenten per klas of het weergeven van verkoop per verschillende regio's, heeft Excel geen directe functie voor 'rangschikken per groep'. Echter kan een goed ontworpen formule efficiënt groepsgewijze rangschikking bereiken zonder extra datamanipulatie.

Hiervoor kun je een matrixformule gebruiken die logische tests combineert met aggregatiefuncties. Deze aanpak laat je toe om elke waarde alleen binnen zijn aangewezen groep te vergelijken, wat de vereiste rangorde oplevert voor elk datapunt.

Volg deze stappen:

  • Organiseer je gegroepeerde gegevens in kolommen, zoals Groep (A2:A11) en Waarde (B2:B11).
  • Selecteer een lege cel naast je gegevens – meestal in de eerste rij naast je waarden, bijvoorbeeld cel C2.
  • Voer de volgende formule in:
=SUMPRODUCT(($A$2:$A$11=A2)*(B2<$B$2:$B$11))+1

Deze formule werkt door te tellen hoeveel waarden binnen dezelfde groep kleiner zijn dan de huidige waarde. Hier is wat elke parameter betekent:

  • ($A$2:$A$11=A2)
    → Dit controleert of elke cel in het bereik A2:A11 gelijk is aan de waarde in A2.
    → Het retourneert een reeks WAAR/ONWAAR (of 1/0) waarden die aangeven of elke rij tot dezelfde groep behoort als A2.
  • (B2<$B$2:$B$11)
    → Dit controleert hoeveel waarden in B2:B11 groter zijn dan B2.
    → Het retourneert WAAR (1) als B2 kleiner is dan een gegeven waarde, ONWAAR (0) anders.
  • * (Vermenigvuldiging)
    → Dit combineert de twee voorwaarden:
  • Groepsovereenkomst (A2)
    Waarde in B2 is kleiner dan andere
    → Dus alleen rijen die in dezelfde groep zitten en een kleinere waarde hebben, worden geteld.
  • SOMPRODUCT(...)
    → Telt het aantal rijen dat aan beide voorwaarden voldoet.
  • +1
    → Rangen beginnen bij 1 (in plaats van 0), dus tellen we 1 op bij het aantal kleinere waarden.

Zodra de formule is ingevoerd in C2, sleep dan de automatisch invulgreep naar beneden om deze formule in te vullen voor alle relevante rijen in je dataset. De formule past zich automatisch aan om de groep en waarde van elke rij te gebruiken, en retourneert de rangorde binnen die groep. A screenshot showing the Excel formula applied to rank values by group in a worksheet

Tips en voorzorgsmaatregelen:

  • Als je bereik groot is, vergeet dan niet om de celverwijzingen dienovereenkomstig bij te werken.
  • Voor rangordes in aflopende volgorde (bijv. hoogste waarde is 1), wijzig dan de formulevergelijking van B2<$B$2:$B$11 naar B2>$B$2:$B$11.
  • Om dubbele waarden te verwerken, wijst deze formule dezelfde rangorde toe aan gelijke waarden binnen dezelfde groep. Als je sequentiële unieke rangordes nodig hebt, overweeg dan om extra hulpkolommen te gebruiken.

Deze formule-gebaseerde methode is flexibel en past gemakkelijk toe op de meeste gegroepeerde tabelstructuren in Excel. Echter, voor zeer grote datasets kan de berekeningsprestatie vertragen vanwege de afhankelijkheid van matrixlogica.


VBA-code - Gebruik een macro om het rangschikken van waarden binnen elke groep te automatiseren

Voor gebruikers die het rangschikkingsproces willen automatiseren, of grotere datasets efficiënter willen verwerken, kan het schrijven van een VBA-macro een waardevolle aanpak zijn. Macros kunnen herhalende stappen automatiseren, meer aanpassingen bieden en gegevens sneller verwerken in vergelijking met complexe formules. Dit is ideaal voor scenario's zoals het genereren van geplande rapporten, herhaalde rangschikkingstaken, of wanneer je formule-overlast in je werkblad wilt vermijden.

Voordat je verder gaat, zorg er dan voor dat je je werk opslaat en macros inschakelt in je Excel-instellingen. Zo kun je dit scripten en uitvoeren:

  1. Druk op Alt + F11 toetsen om de VBA-editor te openen. Klik in het venster Microsoft Visual Basic for Applications dat verschijnt op Invoegen > Module, en plak vervolgens de volgende code in de geopende module:
Sub RankValuesByGroup()
    Dim DataRange As Range
    Dim GroupRng As Range
    Dim ValueRng As Range
    Dim OutCol As Range
    Dim dictGroups As Object
    Dim arrValues, arrRanks
    Dim i As Long, j As Long
    Dim GroupKey As String
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set DataRange = Application.InputBox("Select the data table range (including group and value columns)", xTitleId, Selection.Address, Type:=8)
    If DataRange Is Nothing Then Exit Sub
    
    Set GroupRng = Application.InputBox("Select the group column within your range", xTitleId, DataRange.Columns(1).Address, Type:=8)
    Set ValueRng = Application.InputBox("Select the value column to rank within your range", xTitleId, DataRange.Columns(2).Address, Type:=8)
    
    Set OutCol = DataRange.Offset(0, DataRange.Columns.Count).Resize(DataRange.Rows.Count, 1)
    OutCol.Cells(1).Value = "RankByGroup"
    
    Set dictGroups = CreateObject("Scripting.Dictionary")
    arrValues = ValueRng.Value
    arrRanks = ValueRng.Value
    
    ' Build group dictionaries for ranking
    For i = 2 To UBound(arrValues, 1)
        GroupKey = GroupRng.Cells(i, 1).Value
        If Not dictGroups.Exists(GroupKey) Then
            dictGroups.Add GroupKey, CreateObject("System.Collections.ArrayList")
        End If
        dictGroups(GroupKey).Add arrValues(i, 1)
    Next i
    
    ' Rank within each group
    For i = 2 To UBound(arrValues, 1)
        GroupKey = GroupRng.Cells(i, 1).Value
        Dim countLower As Long
        countLower = 0
        For j = 0 To dictGroups(GroupKey).Count - 1
            If dictGroups(GroupKey)(j) < arrValues(i, 1) Then
                countLower = countLower + 1
            End If
        Next j
        arrRanks(i, 1) = countLower + 1
    Next i
    
    ' Output results
    For i = 2 To UBound(arrRanks, 1)
        OutCol.Cells(i, 1).Value = arrRanks(i, 1)
    Next i
    
    MsgBox "Ranking by group completed.", vbInformation, xTitleId
End Sub
  1. Klik op Uitvoeren. Er verschijnt een dialoogvenster waarin je wordt gevraagd je volledige gegevensbereik, groepskolom en waardekolom te selecteren. De macro genereert vervolgens een nieuwe kolom met de rangordes voor elke waarde binnen zijn groep.

Opmerkingen en probleemoplossing:

  • Zorg ervoor dat kolomselecties overeenkomen met je gegevens: de groep- en waardekolommen moeten correct uitlijnen.
  • Als de gegevenskop is opgenomen, pas dan de initiële lusindex in de code aan voor correcte rangschikking (volgens je gegevensstructuur).
  • Om in aflopende volgorde te rangschikken, wijzig dan de vergelijking If dictGroups(GroupKey)(j) < arrValues(i,1) dienovereenkomstig.
  • Als je tegen toestemmings- of macro-beveiligingswaarschuwingen aanloopt, controleer dan de Macro-beveiligingsinstellingen van Excel onder Bestand > Opties > Trust Center.

Deze VBA-methode biedt flexibiliteit en robuuste prestaties voor meer geavanceerde of opgeschaalde toepassingen, vooral wanneer deze wordt geïntegreerd met geautomatiseerde rapportagewerkstromen.


a screenshot of kutools for excel ai

Ontdek de Magie van Excel met Kutools AI

  • Slimme Uitvoering: Voer celbewerkingen uit, analyseer gegevens en maak diagrammen – allemaal aangestuurd door eenvoudige commando's.
  • Aangepaste Formules: Genereer op maat gemaakte formules om uw workflows te versnellen.
  • VBA-codering: Schrijf en implementeer VBA-code moeiteloos.
  • Formule-uitleg: Begrijp complexe formules gemakkelijk.
  • Tekstvertaling: Overbrug taalbarrières binnen uw spreadsheets.
Verhoog uw Excel-mogelijkheden met AI-aangedreven tools. Download Nu en ervaar een ongekende efficiëntie!

Beste productiviteitstools voor Office

🤖 Kutools AI Assistent: Transformeer data-analyse door: Intelligente uitvoering |Code genereren |Aangepaste formules maken |Gegevens analyseren en grafieken genereren |Kutools functies aanroepen
Populaire functies: Dubbele waarden markeren | Verwijder lege rijen | Kolommen of cellen samenvoegen zonder gegevensverlies |   Afronden zonder formule...
Super ZOEKEN: Meervoudig-criteria opzoeken | Meervoudige waarde opzoeken | Meervoudig-blad opzoeken | Fuzzy Match....
Geavanceerde keuzelijst: Keuzelijst snel maken | Afhankelijke keuzelijst | Meervoudige selectie in keuzelijst....
Kolombeheer: Specifiek aantal kolommen toevoegen | Kolommen verplaatsen | Zichtbaarheidsstatus van verborgen kolommen wisselen | Bereik & kolommen vergelijken...
Uitgelichte functies: Rasterfocus | Ontwerpweergave | Verbeterde formulebalk | Werkboek- & Werkbladbeheer | AutoTekstbibliotheek | Datumkiezer | Gegevens samenvoegen | Cellen coderen/decoderen | E-mail verzenden via lijst | Superfilter | Speciaal filter (filter cellen met vetgedrukt/cursief/doorhalen...)...
Top15 gereedschapssets:12 teksttools (Tekst toevoegen, Specifieke tekens verwijderen, ...) | 50+ grafiek typen (Gantt-diagram, ...) | 40+ praktische formules (Leeftijd berekenen op basis van geboortedatum, ...) | 19 invoegtools (QR-code invoegen, Afbeelding invoegen vanaf pad, ...) | 12 conversietools (Omzetten naar woorden, Valutaconversie, ...) | 7 Samenvoeg- & splitsgereedschappen (Geavanceerd samenvoegen van rijen, Cellen splitsen, ...) | ... en meer
Gebruik Kutools in je voorkeurstaal – ondersteunt Engels, Spaans, Duits, Frans, Chinees en meer dan40 andere talen!

Verbeter je Excel-vaardigheden met Kutools voor Excel en ervaar ongeëvenaarde efficiëntie. Kutools voor Excel biedt meer dan300 geavanceerde functies om je productiviteit te verhogen en tijd te besparen. Klik hier om de functie te kiezen die je het meest nodig hebt...


Office Tab brengt een tabbladinterface naar Office en maakt je werk veel eenvoudiger

  • Activeer tabbladbewerking en -lezen in Word, Excel, PowerPoint, Publisher, Access, Visio en Project.
  • Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster, in plaats van in nieuwe vensters.
  • Verhoog je productiviteit met50% en bespaar dagelijks honderden muisklikken!

Alle Kutools-invoegtoepassingen. Eén installatieprogramma

Kutools for Office-suite bundelt invoegtoepassingen voor Excel, Word, Outlook & PowerPoint plus Office Tab Pro, ideaal voor teams die werken met Office-toepassingen.

Excel Word Outlook Tabs PowerPoint
  • Alles-in-één suite — invoegtoepassingen voor Excel, Word, Outlook & PowerPoint + Office Tab Pro
  • Eén installatieprogramma, één licentie — in enkele minuten geïnstalleerd (MSI-ready)
  • Werkt beter samen — gestroomlijnde productiviteit over meerdere Office-toepassingen
  • 30 dagen volledige proef — geen registratie, geen creditcard nodig
  • Beste prijs — bespaar ten opzichte van losse aanschaf van invoegtoepassingen