Inhoudsopgave
De handleiding legt de specifieke kenmerken van de Excel-rankingfuncties uit en laat zien hoe u in Excel kunt rangschikken op basis van meerdere criteria, gegevens kunt rangschikken per groep, het percentiel kunt berekenen, en meer.
Wanneer u de relatieve positie van een getal in een lijst met getallen moet bepalen, is de eenvoudigste manier om de getallen in oplopende of aflopende volgorde te sorteren. Als sorteren om de een of andere reden niet mogelijk is, is een Rangorde-formule in Excel het perfecte hulpmiddel.
Excel RANK functie
De RANK-functie in Excel geeft de volgorde (of rangorde) van een numerieke waarde ten opzichte van andere waarden in dezelfde lijst. Met andere woorden, zij vertelt u welke waarde de hoogste is, de op één na hoogste, enz.
In een gesorteerde lijst is de rang van een bepaald getal de positie ervan. De RANK-functie in Excel kan de rang bepalen beginnend bij de grootste waarde (als in aflopende volgorde gesorteerd) of de kleinste waarde (als in oplopende volgorde gesorteerd).
De syntaxis van de Excel RANK-functie is als volgt:
RANK(getal,ref,[volgorde])Waar:
Nummer (verplicht) - de waarde waarvan u de rang wilt vinden.
Ref (vereist) - een lijst van numerieke waarden om mee te rangschikken. Deze kan worden verstrekt als een array van getallen of een verwijzing naar de lijst van getallen.
Bestel (facultatief) - een getal dat aangeeft hoe de waarden moeten worden gerangschikt:
- Indien 0 of weggelaten, worden de waarden gerangschikt in aflopende volgorde, d.w.z. van groot naar klein.
- Indien 1 of een andere niet-nulwaarde, worden de waarden in oplopende volgorde gerangschikt, d.w.z. van kleinst naar grootst.
Excel RANK.EQ functie
RANK.EQ is een verbeterde versie van de RANK-functie, geïntroduceerd in Excel 2010. Het heeft dezelfde syntaxis als RANK en werkt met dezelfde logica: indien verschillende waarden gelijk gerangschikt zijn, wordt de hoogste rang toegekend aan al deze waarden (EQ staat voor "gelijk").
RANK.EQ(number,ref,[order])In Excel 2007 en lagere versies moet u altijd de RANK-functie gebruiken. In Excel 2010, Excel 2013 en Excel 2016 kunt u kiezen voor RANK of RANK.EQ. Het is echter verstandig om RANK.EQ te gebruiken omdat RANK elk moment kan worden opgeheven.
Excel RANK.AVG functie
RANK.AVG is een andere functie om rangorde te vinden in Excel die alleen beschikbaar is in Excel 2010, Excel 2013, Excel 2016 en later.
Het heeft dezelfde syntaxis als de andere twee functies:
RANK.AVG(number,ref,[order])Het verschil is dat als meer dan één getal dezelfde rang heeft, de gemiddelde rang wordt geretourneerd (AVG staat voor "gemiddelde").
4 dingen die u moet weten over RANK in Excel
- Elke Rangorde-formule in Excel werkt alleen voor numerieke waarden: positieve en negatieve getallen, nullen, datum- en tijdwaarden. Niet-numerieke waarden in de ref argument worden genegeerd.
- Alle RANK-functies geven dezelfde rang terug voor dubbele waarden, en slaan de volgende rangschikking over, zoals in het onderstaande voorbeeld.
- In Excel 2010 en latere versies is de RANK-functie vervangen door RANK.EQ en RANK.AVG. Voor achterwaartse compatibiliteit werkt RANK nog steeds in alle versies van Excel, maar in de toekomst is deze functie mogelijk niet meer beschikbaar.
- Als nummer wordt niet gevonden binnen ref zou elke Excel Rank functie de #N/A foutmelding geven.
Basis Excel rangschikkingsformule (van hoog naar laag)
Om meer inzicht te krijgen in het rangschikken van gegevens in Excel, kunt u deze schermafbeelding bekijken:
Alle drie de formules rangschikken nummers in kolom B in aflopende volgorde (de Bestel argument weggelaten):
In alle versies van Excel 2003 - 2016:
=RANK($B2,$B$2:$B$7)
In Excel 2010 - 2016:
=RANK.EQ($B2,$B$2:$B$7)
=RANK.AVG($B2,$B$2:$B$7)
Het verschil zit in hoe deze formules dubbele waarden verwerken. Zoals u ziet, verschijnt dezelfde score tweemaal, in de cellen B5 en B6, wat de verdere rangschikking beïnvloedt:
- De RANK en RANK.EQ formules geven een rang 2 aan beide dubbele scores. De volgende hoogste score (Daniela) staat op de 4e plaats. Een rang 3 wordt aan niemand gegeven.
- De formule RANK.AVG kent achter de schermen aan elk duplicaat een andere rang toe (2 en 3 in dit voorbeeld), en geeft het gemiddelde van die rangen (2,5). Ook hier wordt de 3e rang aan niemand toegekend.
Hoe RANK gebruiken in Excel - formulevoorbeelden
De weg naar uitmuntendheid, zegt men, is geplaveid met oefening. Dus, om beter te leren hoe de RANK-functie in Excel te gebruiken, alleen of in combinatie met andere functies, laten we oplossingen uitwerken voor een paar echte taken.
Hoe rangschikken in Excel van laag naar hoog
Zoals in het bovenstaande voorbeeld, om getallen te rangschikken van hoog naar laag, gebruikt u een van de Excel-Rangschikking formules met de Bestel argument ingesteld op 0 of weggelaten (standaard).
Om nummer gerangschikt ten opzichte van andere nummers gesorteerd in oplopende volgorde zet 1 of een andere niet-nulwaarde in het optionele derde argument.
Om bijvoorbeeld de 100-meter sprinttijden van de leerlingen te rangschikken, kunt u één van de onderstaande formules gebruiken:
=RANK(B2,$B$2:$B$7,1)
=RANK.EQ(B2,$B$2:$B$7,1)
Let erop dat we het bereik vergrendelen in de ref argument door absolute celverwijzingen te gebruiken, zodat het niet verandert als we de formule naar beneden in de kolom kopiëren.
Het resultaat is dat de laagste waarde (snelste tijd) de eerste plaats krijgt en de grootste waarde (langzaamste tijd) de laagste rang 6. De gelijke tijden (B2 en B7) krijgen dezelfde rang.
Hoe gegevens in Excel uniek te rangschikken
Zoals eerder aangegeven, geven alle Excel Rank functies dezelfde rang voor items van gelijke waarde. Als u dat niet wilt, gebruik dan een van de volgende formules om tie-break situaties op te lossen en een unieke rang aan elk nummer.
Unieke rangschikking van hoogste naar laagste
Om de wiskunde scores van onze leerlingen uniek in aflopende volgorde te rangschikken, gebruik je deze formule:
=RANK.EQ(B2,$B$2:$B$7)+COUNTIF($B$2:B2,B2)-1
Unieke rangschikking van laag naar hoog
Om de resultaten van de 100-meter race in oplopende volgorde te rangschikken, zonder doublures, gebruik je deze formule:
=RANK.EQ(B2,$B$2:$B$7,1) + COUNTIF($B$2:B2,B2)-1
Hoe deze formules werken
Zoals u misschien hebt gemerkt, is het enige verschil tussen de twee formules de Bestel argument van de functie RANK.EQ: weggelaten om waarden aflopend te rangschikken, 1 om oplopend te rangschikken.
In beide formules is het de COUNTIF-functie met het slimme gebruik van relatieve en absolute celverwijzingen die de truc doet. Kort gezegd gebruik je COUNTIF om uit te zoeken hoeveel voorkomens van het getal dat wordt gerangschikt er zijn in de bovenstaande cellen, inclusief de cel van het getal. In de bovenste rij waar je de formule invoert, bestaat het bereik uit één cel ($B$2:B2). Maar omdat je alleen deeerste referentie ($B$2), verandert de laatste relatieve referentie (B2) op basis van de rij waar de formule wordt gekopieerd. Voor rij 7 breidt het bereik zich dus uit tot $B$2:B7, en de waarde in B7 wordt vergeleken met elk van de bovenstaande cellen.
Voor alle eerste gevallen geeft COUNTIF dus 1; en u trekt 1 af aan het eind van de formule om de oorspronkelijke rangorde te herstellen.
Voor 2e voorkomens geeft COUNTIF 2. Door 1 af te trekken verhoogt u de rangorde met 1 punt, waardoor duplicaten worden voorkomen. Als er toevallig 3 voorkomens van dezelfde waarde zijn, voegt COUNTIF()-1 2 toe aan hun rangorde, enzovoort.
Alternatieve oplossing om Excel RANK-banden te verbreken
Een andere manier om getallen in Excel uniek te rangschikken is door twee COUNTIF-functies op te tellen:
- De eerste functie bepaalt hoeveel waarden groter of kleiner zijn dan het te rangschikken getal, naargelang u respectievelijk aflopend of oplopend rangschikt.
- De tweede functie (met het "uitbreidingsbereik" $B$2:B2 zoals in het bovenstaande voorbeeld) krijgt het aantal waarden gelijk aan het getal.
Om bijvoorbeeld getallen uniek te rangschikken van hoog naar laag, gebruikt u deze formule:
=COUNTIF($B$2:$B$7,">"&$B2)+COUNTIF($B$2:B2,B2)
Zoals in de onderstaande schermafbeelding te zien is, is de tie-break succesvol opgelost, en wordt aan elke leerling een unieke rang toegekend:
Rangschikking in Excel op basis van meerdere criteria
Het vorige voorbeeld heeft twee werkende oplossingen voor een Excel RANK tie break situatie aangetoond. Het kan echter oneerlijk lijken dat gelijke getallen verschillend worden gerangschikt op basis van alleen hun positie in de lijst. Om uw rangschikking te verbeteren, kunt u nog een criterium toevoegen waarmee rekening moet worden gehouden in geval van een gelijke stand.
Laten we in onze voorbeelddataset de totale scores in kolom C optellen en de rangorde als volgt berekenen:
- Eerst, rangschikken met Wiskunde Score (belangrijkste criteria)
- Als er een gelijke stand is, breek die dan met Totale score (secundaire criteria)
Om dit te doen, gebruiken we een gewone RANK/RANK.EQ formule om de rangorde te bepalen, en de COUNTIFS functie om een gelijke stand te breken:
=RANK.EQ($B2,$B$2:$B$7)+COUNTIFS($B$2:$B$7,$B2,$C$2:$C$7,">"&$C2)
Vergeleken met het bovenstaande voorbeeld is deze rangordeformule objectiever: Timothy staat op de 2e plaats omdat zijn totale score hoger is dan die van Julia:
Hoe deze formule werkt
Het RANK-gedeelte van de formule is duidelijk, en de COUNTIFS-functie doet het volgende:
- De eerste criteria_bereik / criteria paar ($B$2:$B$7,$B2) telt de voorkomens van de waarde die u rangschikt. Merk op dat we de reeks met absolute verwijzingen, maar zet de criteria 's rij ($B2) zodat de formule de waarde in elke rij afzonderlijk controleert.
- De tweede criteria_bereik / criteria paar ($C$2:$C$7,">"&$C2) zoekt uit hoeveel totaalscores groter zijn dan de totaalscore van de waarde die wordt gerangschikt.
Omdat COUNTIFS werkt met de EN-logica, d.w.z. alleen cellen telt die aan alle gespecificeerde voorwaarden voldoen, geeft het 0 terug voor Timothy omdat geen enkele andere leerling met dezelfde wiskunde-score een hogere totaalscore heeft. Timothy's rangorde die door RANK.EQ wordt geretourneerd is dus ongewijzigd. Voor Julia geeft de COUNTIFS-functie 1 terug omdat één leerling met dezelfde wiskunde-score een hogere totaalscore heeft, dus haar rangnummer isAls nog een leerling dezelfde score voor wiskunde heeft en een lagere totaalscore dan Timothy en Julia, wordt zijn/haar rang met 2 verhoogd, enzovoort.
Alternatieve oplossingen voor rangnummers met meerdere criteria
In plaats van de functie RANK of RANK.EQ zou u COUNTIF kunnen gebruiken om de belangrijkste criteria te controleren, en COUNTIFS of SUMPRODUCT om een gelijke stand op te lossen:
=COUNTIF($B$2:$B$7,">"&$B2)+COUNTIFS($B$2:$B$7,$B2,$C$2:$C$7,">"&$C2)+1
=COUNTIF($B$2:$B$7,">"&B2)+SUMPRODUCT(--($C$2:$C$7=C2),--($B$2:$B$7>B2))+1
Het resultaat van deze formules is precies hetzelfde als hierboven.
Hoe het percentiel in Excel berekenen
In de statistiek is een percentiel (of centiel ) is de waarde waaronder een bepaald percentage van de waarden in een bepaalde dataset valt. Bijvoorbeeld, als 70% van de leerlingen gelijk is aan of lager is dan jouw testscore, is jouw percentiel rang 70.
Om de percentielrang in Excel te verkrijgen, gebruikt u de functie RANK of RANK.EQ met een niet-nul Bestel argument om getallen te rangschikken van klein naar groot, en dan de rang te delen door het aantal getallen. Dus, de generieke Excel percentiel rangschikking formule gaat als volgt:
RANK.EQ( bovenste_cel , reeks , 1)/COUNT( reeks )Om de percentielrang van onze studenten te berekenen, ziet de formule er als volgt uit:
=RANK.EQ(B2,$B$2:$B$7,1)/COUNT($B$2:$B$7)
Voor een correcte weergave van de resultaten moet u de Percentage formaat naar de formulecellen:
Hoe nummers in niet-aangrenzende cellen te rangschikken
In situaties waarin u niet-aaneengesloten cellen moet rangschikken, levert u die cellen rechtstreeks in het ref argument van uw Excel Rank-formule in de vorm van een reference union, waarbij de referenties worden vergrendeld met het $-teken. Bijvoorbeeld:
=RANK(B2,($B$2,$B$4,$B$6))
Om fouten in niet-gerangschikte cellen te voorkomen, wordt RANK opgenomen in de IFERROR-functie, als volgt:
=IFERROR(RANK(B2,($B$2,$B$4,$B$6)), "")
Merk op dat een dubbel nummer ook een rang krijgt, hoewel cel B5 niet in de formule is opgenomen:
Als u meerdere niet-aaneengesloten cellen moet rangschikken, kan de bovenstaande formule te lang worden. In dat geval is een elegantere oplossing het definiëren van een naambereik en het verwijzen naar die naam in de formule:
=IFERROR(RANK(B2,range), "")
Hoe rangschikken in Excel per groep
Wanneer u werkt met gegevens die zijn georganiseerd in een soort gegevensstructuur, kunnen gegevens tot verschillende groepen behoren, en wilt u misschien nummers binnen elke groep afzonderlijk rangschikken. De RANK-functie van Excel kan deze uitdaging niet oplossen, dus gaan we een complexere SUMPRODUCT-formule gebruiken:
Rangschikking per groep in aflopend orde:
=SUMPRODUCT((A2=$A$2:$A$7)*(C2<$C$2:$C$7))+1
Rangschikking per groep in oplopend orde:
=SUMPRODUCT((A2=$A$2:$A$7)*(C2>$C$2:$C$7))+1
Waar:
- A2:A7 zijn groepen die aan nummers zijn toegewezen.
- C2:C7 zijn te rangschikken nummers.
In dit voorbeeld gebruiken we de eerste formule om de getallen in elke groep te rangschikken van groot naar klein:
Hoe deze formule werkt
In wezen evalueert de formule 2 voorwaarden:
- Eerst controleert u de groep (A2=$A$2:$A$7). Dit deel geeft een matrix van TRUE en FALSE terug op basis van de vraag of een bereikelement tot dezelfde groep behoort als A2.
- Ten tweede controleert u de score. Om de waarden te rangschikken van groot naar klein ( aflopende volgorde ), gebruik de voorwaarde (C2<$C$2:$C$11), die TRUE geeft voor de cellen groter dan of gelijk aan C2, anders FALSE.
Aangezien in Microsoft Excel-termen TRUE = 1 en FALSE = 0, levert vermenigvuldiging van de twee matrices een matrix van 1's en 0's op, waarbij 1 alleen wordt geretourneerd voor de rijen waarin aan beide voorwaarden is voldaan.
Dan telt SUMPRODUCT de elementen van de 1's en 0's array op, en geeft dus 0 voor het grootste getal in elke groep. En u voegt 1 toe aan het resultaat om met 1 te beginnen.
De formule die getallen binnen groepen rangschikt van klein naar groot ( oplopend Bestel ) werkt met dezelfde logica. Het verschil is dat SUMPRODUCT 0 oplevert voor het kleinste getal in een bepaalde groep, omdat geen enkel getal in die groep voldoet aan de 2e voorwaarde (C2>$C$2:$C$7). Ook hier vervangt u de rang van nul door de 1e rang door 1 toe te voegen aan het resultaat van de formule.
In plaats van SUMPRODUCT kunt u de functie SUM gebruiken om de array-elementen op te tellen. Maar dan moet u een array-formule gebruiken, aangevuld met Ctrl + Shift + Enter . Bijvoorbeeld:
=SUM((A2=$A$2:$A$7)*(C2<$C$2:$C$7))+1
Hoe positieve en negatieve getallen afzonderlijk te rangschikken
Als uw lijst met getallen zowel positieve als negatieve waarden bevat, zal de Excel RANK-functie ze allemaal in een mum van tijd rangschikken. Maar wat als u positieve en negatieve getallen afzonderlijk wilt rangschikken?
Met getallen in de cellen A2 tot A10 gebruikt u een van de volgende formules om een individuele rangschikking te krijgen voor positieve en negatieve waarden:
Rangschik positieve getallen aflopend:
=IF($A2>0,COUNTIF($A$2:$A$10,">"&A2)+1,"")
Rangschik positieve nummers oplopend:
=IF($A2>0,COUNTIF($A$2:$A$10,">0")-COUNTIF($A$2:$A$10,">"&$A2),")
Rangschik negatieve getallen aflopend:
=IF($A2<0,COUNTIF($A$2:$A$10,"<0")-COUNTIF($A$2:$A$10,"<"&$A2),")
Rangschik negatieve getallen oplopend:
=IF($A2<0,COUNTIF($A$2:$A$10,"<"&$A2)+1,"")
Het resultaat ziet er ongeveer zo uit:
Hoe deze formules werken
Laten we om te beginnen de formule die positieve getallen rangschikt in aflopend orde:
- In de logische test van de IF-functie controleer je of het getal groter is dan nul.
- Indien het getal groter is dan 0, geeft de functie COUNTIF het aantal waarden terug dat hoger is dan het getal dat wordt gerangschikt.
In dit voorbeeld bevat A2 het op één na hoogste positieve getal, waarvoor COUNTIF 1 oplevert, wat betekent dat er slechts één getal groter is dan dit getal. Om onze rangorde te beginnen met 1, en niet met 0, voegen we 1 toe aan het resultaat van de formule, zodat deze een rangorde van 2 oplevert voor A2.
- Als het getal groter is dan 0, geeft de formule een lege tekenreeks ("").
De formule die positieve getallen rangschikt in oplopend werkt een beetje anders:
Als het getal groter is dan 0, krijgt de eerste COUNTIF het totale aantal positieve getallen in de gegevensverzameling, en de tweede COUNTIF zoekt uit hoeveel waarden hoger zijn dan dat getal. Vervolgens trekt u dat laatste af van het eerste, en krijgt u de gewenste rangorde. In dit voorbeeld zijn er 5 positieve waarden, waarvan er 1 groter is dan A2. U trekt dus 1 af van 5, en krijgt zo een rangorde van 4 voor A2.
Formules om negatieve getallen te rangschikken zijn gebaseerd op een soortgelijke logica.
Opmerking. Alle bovenstaande formules nulwaarden negeren omdat 0 noch tot de verzameling positieve noch tot de verzameling negatieve getallen behoort. Om nullen in uw rangschikking op te nemen, vervangt u>0 en =0 respectievelijk <=0, waar de logica van de formule dat vereist.
Gebruik bijvoorbeeld deze formule om positieve getallen en nullen te rangschikken van groot naar klein: =IF($A2>=0,COUNTIF($A$2:$A$10,">"&A2)+1,"")
Gegevens rangschikken in Excel zonder rekening te houden met nulwaarden
Zoals u al weet, behandelt een RANK-formule in Excel alle getallen: positieve, negatieve en nullen. Maar in sommige gevallen willen we alleen cellen rangschikken met gegevens die 0 waarden negeren. Op het web kunt u een paar mogelijke oplossingen vinden voor deze taak, maar de Excel RANK IF-formule is volgens mij de meest universele:
Nummers aflopend rangschikken zonder rekening te houden met nul:
=IF($B2=0,"",IF($B2>0,RANK($B2,$B$2:$B$10), RANK($B2,$B$2:$B$10)-COUNTIF($B$2:$B$10,0))
Rangschik nummers oplopend, zonder rekening te houden met nul:
=IF($B2=0,"",IF($B2>0,RANK($B2,$B$2:$B$10,1) - COUNTIF($B$2:$B$10,0), RANK($B2,$B$2:$B$10,1))
Waarbij B2:B10 de reeks te rangschikken getallen is.
Het beste aan deze formule is dat ze zowel voor positieve als negatieve getallen prachtig werkt, waarbij nulwaarden buiten beschouwing blijven:
Hoe deze formule werkt
Op het eerste gezicht lijkt de formule wat lastig, maar bij nadere beschouwing is de logica heel eenvoudig.
Hier ziet u hoe de Excel RANK IF-formule getallen rangschikt van groot naar klein, zonder rekening te houden met nullen:
- De eerste IF controleert of het getal 0 is, en zo ja, geeft het een lege tekenreeks terug:
IF($B2=0,"", ...)
- Als het getal niet nul is, controleert de tweede IF of het groter is dan 0, en zo ja, dan berekent een gewone RANK / RANK.EQ-functie de rang ervan:
IF($B2>0,RANK($B2,$B$2:$B$10),...)
- Als het getal kleiner is dan 0, pas je de rangorde aan met het aantal nullen. In dit voorbeeld zijn er 4 positieve getallen en 2 nullen. Dus voor het grootste negatieve getal in B10 zou een Excel RANK-formule 7 opleveren. Maar we slaan nullen over, en daarom moeten we de rangorde met 2 punten aanpassen. Hiervoor trekken we het aantal nullen van de rangorde af:
RANG($B2,$B$2:$B$10)-COUNTIF($B$2:$B$10,0))
Ja, zo eenvoudig is het! De formule om getallen te rangschikken van klein naar groot zonder rekening te houden met nullen werkt op dezelfde manier, en het kan een goede hersenoefening zijn om de logica ervan af te leiden :)
Hoe de rangorde in Excel berekenen met absolute waarde
Bij een lijst met positieve en negatieve waarden kan het nodig zijn getallen te rangschikken naar hun absolute waarde, zonder rekening te houden met het teken.
De taak kan worden vervuld met een van de onderstaande formules, waarvan de ABS-functie, die de absolute waarde van een getal geeft, de kern vormt:
Rangschikking ABS aflopend:
=SUMPRODUCT((ABS(A2)<=ABS(A$2:A$7)) * (A$2:A$7"") - SUMPRODUCT((ABS(A2)=ABS($A$2:$A$7)) * (A$2:A$7""))+1
Rangschikking ABS oplopend:
=SUMPRODUCT((ABS(A2)>=ABS(A$2:A$7)) * (A$2:A$7"") - SUMPRODUCT((ABS(A2)=ABS($A$2:$A$7)) * (A$2:A$7""))+1
Daardoor worden negatieve getallen gerangschikt alsof het positieve getallen zijn:
Hoe krijg je N grootste of kleinste waarden?
Als u een werkelijk aantal N van de grootste of kleinste waarden wilt krijgen in plaats van hun rangorde, gebruikt u respectievelijk de functie LARGE of SMALL.
We kunnen bijvoorbeeld de top 3 scores van onze leerlingen krijgen met deze formule:
=LARGE($B$2:$B$7, $D3)
Waarbij B2:B7 de lijst van scores is en D3 de gewenste rangorde.
Bovendien kunt u de namen van de leerlingen opvragen met de formule INDEX MATCH (mits er geen dubbele scores zijn in de top 3):
=INDEX($A$2:$A$7,MATCH(E3,$B$2:$B$7,0))
U kunt ook de functie KLEIN gebruiken om de onderste 3 waarden op te halen:
=SMALL($B$2:$B$7, $D3)
Om de formules die in deze handleiding worden besproken beter te begrijpen en waarschijnlijk om te keren, kunt u onze Sample Rank Excel-werkmap downloaden.
Ik dank u voor het lezen en hoop u volgende week op onze blog te zien!