Excel RANK-funktionen og andre måder at beregne rang på

  • Del Dette
Michael Brown

Vejledningen forklarer de særlige kendetegn ved Excel Rank-funktionerne og viser, hvordan du kan lave rangordning i Excel baseret på flere kriterier, rangordne data efter gruppe, beregne percentilrang og meget mere.

Når du skal bestemme den relative placering af et tal i en liste af tal, er det nemmest at sortere tallene i stigende eller faldende rækkefølge. Hvis det af en eller anden grund ikke er muligt at sortere, er en rangformel i Excel det perfekte værktøj til at udføre opgaven.

    Excel RANK-funktion

    RANK-funktionen i Excel returnerer rækkefølgen (eller rangfølgen) af en numerisk værdi sammenlignet med andre værdier på samme liste. Med andre ord fortæller den dig, hvilken værdi der er den højeste, den næsthøjeste, osv.

    I en sorteret liste er rangordenen for et bestemt tal dets position. RANK-funktionen i Excel kan bestemme rangordenen ved at starte med den største værdi (som ved sortering i faldende rækkefølge) eller den mindste værdi (som ved sortering i opstigende rækkefølge).

    Syntaksen for Excel RANK-funktionen er som følger:

    RANK(antal,ref,[rækkefølge])

    Hvor:

    Nummer (påkrævet) - den værdi, hvis rang du gerne vil finde.

    Ref (påkrævet) - en liste over numeriske værdier, der skal rangordnes i forhold til. Den kan angives som et array af tal eller som en henvisning til listen over tal.

    Bestil (valgfrit) - et tal, der angiver, hvordan værdierne skal rangordnes:

    • Hvis 0 eller udelades, rangeres værdierne i faldende rækkefølge, dvs. fra størst til mindst.
    • Hvis værdien er 1 eller en anden værdi, der ikke er nul, rangeres værdierne i stigende rækkefølge, dvs. fra den mindste til den største.

    Excel RANK.EQ-funktionen

    RANK.EQ er en forbedret version af RANK-funktionen, der blev introduceret i Excel 2010. Den har samme syntaks som RANK og fungerer efter samme logik: Hvis flere værdier er lige højt rangeret, tildeles den højeste rang til alle disse værdier (EQ står for "lige").

    RANK.EQ(antal,ref,[rækkefølge])

    I Excel 2007 og lavere versioner skal du altid bruge funktionen RANK. I Excel 2010, Excel 2013 og Excel 2016 kan du enten bruge RANK eller RANK.EQ. Det er dog klogt at bruge RANK.EQ, da RANK kan blive afskaffet når som helst.

    Excel RANK.AVG-funktionen

    RANK.AVG er en anden funktion til at finde rang i Excel, som kun er tilgængelig i Excel 2010, Excel 2013, Excel 2016 og senere.

    Den har samme syntaks som de to andre funktioner:

    RANK.AVG(antal,ref,[rækkefølge])

    Forskellen er, at hvis mere end ét tal har samme rang, vil den gennemsnitlig rang returneres (AVG står for "average" (gennemsnit)).

    4 ting, du bør vide om RANK i Excel

    1. Alle rangformler i Excel fungerer kun for numeriske værdier: positive og negative tal, nuller, dato- og tidsværdier. Ikke-numeriske værdier i ref argumentet ignoreres.
    2. Alle RANK-funktioner returnerer den samme rang for duplikerede værdier og springer den efterfølgende rangering over, som vist i eksemplet nedenfor.
    3. I Excel 2010 og senere versioner er RANK-funktionen blevet erstattet af RANK.EQ og RANK.AVG. Af hensyn til bagudkompatibilitet fungerer RANK stadig i alle versioner af Excel, men den er muligvis ikke tilgængelig i fremtiden.
    4. Hvis nummer ikke findes i ref , ville enhver Excel Rank-funktion returnere #N/A-fejlen.

    Grundlæggende Excel-formel for rangordning (fra højest til lavest)

    Du kan få en bedre forståelse af rangordning af data i Excel ved at se på dette skærmbillede:

    Alle tre formler rangerer tallene i kolonne B i faldende rækkefølge (den Bestil argument udeladt):

    I alle versioner af Excel 2003 - 2016:

    =RANG($B2,$B$2:$B$7)

    I Excel 2010 - 2016:

    =RANK.EQ($B2,$B$2:$B$7)

    =RANK.AVG($B2,$B$2:$B$7)

    Forskellen ligger i den måde, hvorpå disse formler behandler dobbelte værdier. Som du kan se, vises den samme score to gange i cellerne B5 og B6, hvilket påvirker den efterfølgende rangordning:

    • RANK- og RANK.EQ-formlerne giver begge dubletter en placering på 2. Den næsthøjeste score (Daniela) er placeret som nummer 4. Der gives ikke en placering på 3 til nogen.
    • RANK.AVG-formlen tildeler en anden rang til hver enkelt dublet bag kulisserne (2 og 3 i dette eksempel) og returnerer gennemsnittet af disse rangeringer (2,5). Igen er den tredje rang ikke tildelt nogen.

    Sådan bruger du RANK i Excel - eksempler på formler

    Man siger, at vejen til topkvalitet er brolagt med øvelse. Så for bedre at lære at bruge RANK-funktionen i Excel, alene eller i kombination med andre funktioner, skal vi finde løsninger på et par opgaver fra det virkelige liv.

    Sådan rangordner du i Excel fra lavest til højest

    Som vist i ovenstående eksempel skal du for at rangordne tal fra højeste til laveste bruge en af Excel-formlerne Rank (Rang) med Bestil argumentet sat til 0 eller udeladt (standard).

    At have nummer rangeret i forhold til andre tal sorteret i stigende rækkefølge , indsæt 1 eller en anden værdi, der ikke er nul, i det valgfrie tredje argument.

    Hvis du f.eks. vil rangordne elevernes 100-meter-sprinttider, kan du bruge en af nedenstående formler:

    =RANK(B2,$B$2:$B$7,1)

    =RANK.EQ(B2,$B$2:$B$7,1)

    Vær opmærksom på, at vi låser intervallet i den ref argumentet ved at bruge absolutte cellereferencer, så det ikke ændres, når vi kopierer formlen ned i kolonnen.

    Resultatet er, at den laveste værdi (hurtigste tid) får førstepladsen, og den største værdi (langsomste tid) får den laveste placering 6. De lige lange tider (B2 og B7) får samme placering.

    Sådan rangordner du data i Excel unikt

    Som tidligere påpeget returnerer alle Excel Rank-funktionerne den samme rang for elementer af samme værdi. Hvis det ikke er det, du ønsker, kan du bruge en af følgende formler til at løse tie-break-situationer og give en unik rang til hvert nummer.

    Unik rangordning fra højeste til laveste

    Hvis du vil rangordne vores elevers matematiske resultater i faldende rækkefølge, skal du bruge denne formel:

    =RANK.EQ(B2,$B$2:$B$7)+COUNTIF($B$2:B2,B2)-1

    Unik rangordning fra lavest til højest

    For at rangordne resultaterne af 100-meter-løbet i stigende rækkefølge uden dubletter skal du bruge denne formel:

    =RANK.EQ(B2,$B$2:$B$7,1) + COUNTIF($B$2:B2,B2)-1

    Sådan fungerer disse formler

    Som du måske har bemærket, er den eneste forskel mellem de to formler Bestil argument i funktionen RANK.EQ: udeladt for at rangordne værdierne i faldende rækkefølge, 1 for at rangordne dem i stigende rækkefølge.

    I begge formler er det funktionen COUNTIF med en smart brug af relative og absolutte cellehenvisninger, der gør tricket. Kort sagt bruger du COUNTIF til at finde ud af, hvor mange forekomster af det tal, der skal rangordnes, der er i de ovenstående celler, herunder talets celle. I den øverste række, hvor du indtaster formlen, består intervallet af en enkelt celle ($B$2:B2). Men fordi du kun låser denførste reference ($B$2), ændres den sidste relative reference (B2) afhængigt af den række, hvor formlen kopieres. For række 7 udvides intervallet således til $B$2:B7, og værdien i B7 sammenlignes med hver af de ovennævnte celler.

    For alle første forekomster returnerer COUNTIF derfor 1, og du trækker 1 fra i slutningen af formlen for at genoprette den oprindelige rang.

    For 2. forekomster returnerer COUNTIF 2. Ved at trække 1 fra, øges ranglisten med 1 point, hvilket forhindrer dubletter. Hvis der tilfældigvis er 3 forekomster af den samme værdi, vil COUNTIF()-1 tilføje 2 til deres rangliste osv.

    Alternativ løsning til at bryde Excel RANK-bindinger

    En anden måde at rangordne tal i Excel på entydigt er ved at lægge to COUNTIF-funktioner sammen:

    • Den første funktion bestemmer, hvor mange værdier der er større end eller mindre end det tal, der skal rangordnes, afhængigt af, om du rangordner henholdsvis faldende eller stigende.
    • Den anden funktion (med det "udvidende område" $B$2:B2 som i ovenstående eksempel) får antallet af værdier, der er lig med tallet.

    Hvis du f.eks. vil rangordne tal entydigt fra højeste til laveste tal, skal du bruge denne formel:

    =COUNTIF($B$2:$B$7,">"&$B2)+COUNTIF($B$2:B2,B2)

    Som vist i skærmbilledet nedenfor er det lykkedes at løse uafgjort, og hver elev tildeles en unik rang:

    Rangordning i Excel baseret på flere kriterier

    Det foregående eksempel har vist to velfungerende løsninger til en Excel RANK-situation med uafgjort. Det kan dog virke uretfærdigt, at lige store tal rangordnes forskelligt udelukkende på baggrund af deres placering på listen. For at forbedre din rangordning kan du tilføje endnu et kriterium, der skal tages i betragtning i tilfælde af uafgjort.

    I vores eksempeldatasæt kan vi tilføje de samlede scorer i kolonne C og beregne rang som følger:

    • Først, rang med Matematik score (vigtigste kriterier)
    • Hvis der er stemmelighed, skal du afgøre den med Samlet score (sekundære kriterier)

    For at få det gjort bruger vi en almindelig RANK/RANK.EQ-formel til at finde rang og COUNTIFS-funktionen til at bryde en uafgjort stilling:

    =RANK.EQ($B2,$B$2:$B$7)+COUNTIFS($B$2:$B$7,$B2,$C$2:$C$7,">"&$C2)

    Sammenlignet med ovenstående eksempel er denne rangformel mere objektiv: Timothy er placeret på andenpladsen, fordi hans samlede score er højere end Julias:

    Sådan fungerer denne formel

    RANK-delen af formlen er indlysende, og COUNTIFS-funktionen gør følgende:

    • Den første criteria_range / kriterier par ($B$2:$B$7,$B2) tæller forekomsten af den værdi, du rangerer. Bemærk venligst, at vi retter rækkevidde med absolutte referencer, men lås ikke kriterier række ($B2), så formlen kontrollerer værdien i hver enkelt række individuelt.
    • Den anden criteria_range / kriterier pair ($C$2:$C$7,">"&$C2) finder ud af, hvor mange samlede point der er større end det samlede point for den værdi, der er rangordnet.

    Da COUNTIFS arbejder med AND-logikken, dvs. kun tæller de celler, der opfylder alle de angivne betingelser, returnerer den 0 for Timothy, da ingen anden elev med samme matematiske score har en højere samlet score. Derfor er Timothys rang, der returneres af RANK.EQ, uændret. For Julia returnerer COUNTIFS-funktionen 1, fordi en elev med samme matematiske score har en højere samlet score, så hendes rangnummer erHvis endnu en elev havde samme matematikresultat og et samlet resultat, der var lavere end Timothy og Julias, ville hans/hendes placering blive forhøjet med 2 osv.

    Alternative løsninger til at rangordne tal med flere kriterier

    I stedet for funktionen RANK eller RANK.EQ kan du bruge COUNTIF til at kontrollere hovedkriterierne og COUNTIFS eller SUMPRODUCT til at afgøre, om der er uafgjort:

    =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

    Resultatet af disse formler er nøjagtig det samme som vist ovenfor.

    Sådan beregner du percentil rang i Excel

    I statistikkerne er en percentil (eller centile ) er den værdi, som en bestemt procentdel af værdierne i et givet datasæt ligger under. Hvis f.eks. 70 % af de studerende har samme eller lavere resultater end din testscore, er din percentilrække 70.

    For at få percentilrang i Excel skal du bruge funktionen RANK eller RANK.EQ med en ikke-nulværdi Bestil argumentet for at rangordne tallene fra mindste til største og derefter dividere rangordenen med antallet af tal. Så den generiske Excel-formel for percentilerang går som følger:

    RANK.EQ( øverste_celle , rækkevidde ,1)/COUNT( rækkevidde )

    For at beregne vores elevers percentilplacering har formlen følgende formular:

    =RANK.EQ(B2,$B$2:$B$7,1)/COUNT($B$2:$B$7)

    For at få resultaterne vist korrekt skal du sørge for at indstille Procentdel format til formelcellerne:

    Sådan rangordner du tal i ikke-tilstødende celler

    I situationer, hvor du har brug for at rangordne ikke sammenhængende celler, skal du angive disse celler direkte i ref argumentet i din Excel Rank-formel i form af en referenceunion, idet du låser referencerne med $-tegnet. For eksempel:

    =RANK(B2,($B$2,$B$4,$B$6))

    For at undgå fejl i celler uden rangorden skal du indpakke RANK i IFERROR-funktionen på følgende måde:

    =IFERROR(RANK(B2,($B$2,$B$4,$B$6)), "")

    Bemærk, at et dobbeltnummer også får en rang, selv om celle B5 ikke er medtaget i formlen:

    Hvis du skal rangordne flere ikke-sammenhængende celler, kan ovenstående formel blive for lang. I så fald er det en mere elegant løsning at definere et navngivet område og henvise til dette navn i formlen:

    =IFERROR(RANK(B2,range), "")

    Sådan rangordner du i Excel efter gruppe

    Når du arbejder med poster, der er organiseret i en eller anden form for datastruktur, kan data tilhøre forskellige grupper, og du vil måske gerne rangordne tal inden for hver gruppe individuelt. Excel RANK-funktionen kan ikke løse denne udfordring, så vi skal bruge en mere kompleks SUMPRODUCT-formel:

    Rang efter gruppe i faldende rækkefølge:

    =SUMPRODUCT((A2=$A$2:$A$7)*(C2<$C$2:$C$7))+1

    Rang efter gruppe i opstigende rækkefølge:

    =SUMPRODUCT((A2=$A$2:$A$7)*(C2>$C$2:$C$7))+1

    Hvor:

    • A2:A7 er grupper, der er tildelt numre.
    • C2:C7 er numre, der skal rangordnes.

    I dette eksempel bruger vi den første formel til at rangordne tallene i hver gruppe fra størst til mindst:

    Sådan fungerer denne formel

    Formlen evaluerer grundlæggende 2 betingelser:

    • Først kontrolleres gruppen (A2=$A$2:$A$7). Denne del returnerer et array af TRUE og FALSE baseret på, om et intervalelement tilhører samme gruppe som A2.
    • For det andet kontrollerer du scoren. For at rangordne værdierne fra størst til mindst ( faldende rækkefølge ), skal du bruge betingelsen (C2<$C$2:$C$11), som returnerer TRUE for de celler, der er større end eller lig med C2, og FALSE ellers.

    Da TRUE = 1 og FALSE = 0 i Microsoft Excel, giver multiplikation af de to arrays et array af 1'er og 0'er, hvor der kun returneres 1 for de rækker, hvor begge betingelser er opfyldt.

    Derefter lægger SUMPRODUCT elementerne i arrayet med 1'er og 0'er sammen og returnerer således 0 for det største tal i hver gruppe. Og du tilføjer 1 til resultatet for at starte med 1.

    Formlen, der rangerer tal i grupper fra de mindste til de største ( opstigende Bestil ) fungerer efter samme logik. Forskellen er, at SUMPRODUCT returnerer 0 for det mindste tal i en bestemt gruppe, da intet tal i denne gruppe opfylder den anden betingelse (C2>$C$2:$C$7). Igen erstatter du nul rang med den første rang ved at tilføje 1 til formleresultatet.

    I stedet for SUMPRODUCT kan du bruge funktionen SUM til at lægge arrayelementerne sammen. Men det kræver, at du bruger en arrayformel, som du udfylder med Ctrl + Shift + Enter . For eksempel:

    =SUM((A2=$A$2:$A$7)*(C2<$C$2:$C$7))+1

    Sådan rangordner du positive og negative tal separat

    Hvis din liste med tal indeholder både positive og negative værdier, vil Excel-funktionen RANK rangordne dem alle på ingen tid. Men hvad hvis du gerne vil have positive og negative tal rangordnet separat?

    Med tal i cellerne A2 til A10 skal du bruge en af følgende formler til at få en individuel rangordning for positive og negative værdier:

    Ranger positive tal i faldende rækkefølge:

    =IF($A2>0,COUNTIF($A$2:$A$10,">"&A2)+1,"")

    Ranger positive tal i stigende orden:

    =IF($A2>0,COUNTIF($A$2:$A$10,">0")-COUNTIF($A$2:$A$10,">"&$A2),""")

    Ranger negative tal i faldende rækkefølge:

    =IF($A2<0,COUNTIF($A$2:$A$10,"<0")-COUNTIF($A$2:$A$10,"<"&$A2),""")

    Ranger negative tal i stigende orden:

    =IF($A2<0,COUNTIF($A$2:$A$10,"<"&$A2)+1,"")

    Resultaterne kommer til at se nogenlunde sådan her ud:

    Sådan fungerer disse formler

    Lad os til at begynde med opdele formlen, der rangerer positive tal i faldende rækkefølge:

    • I den logiske test af IF-funktionen kontrollerer du, om tallet er større end nul.
    • Hvis tallet er større end 0, returnerer COUNTIF-funktionen antallet af værdier, der er højere end det tal, der er rangordnet.

      I dette eksempel indeholder A2 det næsthøjeste positive tal, for hvilket COUNTIF returnerer 1, hvilket betyder, at der kun er ét tal, der er større end det. For at starte vores rangordning med 1, ikke 0, tilføjer vi 1 til formleresultatet, så det returnerer en rang på 2 for A2.

    • Hvis tallet er større end 0, returnerer formlen en tom streng ("").

    Formlen, som rangerer positive tal i opstigende rækkefølge fungerer en smule anderledes:

    Hvis tallet er større end 0, får den første COUNTIF det samlede antal positive tal i datasættet, og den anden COUNTIF finder ud af, hvor mange værdier der er højere end dette tal. Derefter trækker man sidstnævnte fra førstnævnte og får den ønskede rang. I dette eksempel er der 5 positive værdier, hvoraf 1 er større end A2. Så man trækker 1 fra 5 og får dermed en rang på 4 for A2.

    Formler til at rangordne negative tal er baseret på en lignende logik.

    Bemærk. Alle ovenstående formler ignorere nulværdier fordi 0 hverken hører til mængden af positive eller negative tal. Hvis du vil medtage nuller i din rangordning, skal du erstatte henholdsvis>0 og =0 og <=0, hvor formellogikken kræver det.

    Hvis du f.eks. vil rangordne positive tal og nuller fra størst til mindst, kan du bruge denne formel: =IF($A2>=0,COUNTIF($A$2:$A$10,">"&A2)+1,"")

    Sådan rangordner du data i Excel ved at ignorere nulværdier

    Som du allerede ved, håndterer en RANK-formel i Excel alle tal: positive, negative og nuller. Men i nogle tilfælde ønsker vi blot at rangordne celler med data uden 0-værdier. På nettet kan du finde et par mulige løsninger til denne opgave, men Excel RANK IF-formlen er vist den mest universelle:

    Ranger tallene i faldende rækkefølge uden at tage hensyn til 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))))

    Ranger tallene i stigende rækkefølge uden at tage hensyn til 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))))

    Hvor B2:B10 er intervallet af tal, der skal rangordnes.

    Det bedste ved denne formel er, at den fungerer fint både for positive og negative tal, og at nulværdierne ikke er i orden:

    Sådan fungerer denne formel

    Ved første øjekast kan formlen virke lidt vanskelig, men ved nærmere eftersyn er logikken meget enkel.

    Her er hvordan Excel-formlen RANK IF rangerer tal fra størst til mindst uden at tage hensyn til nuller:

    • Det første IF kontrollerer, om tallet er 0, og hvis det er, returnerer det en tom streng:

      IF($B2=0,"", ...)

    • Hvis tallet ikke er nul, kontrollerer den anden IF, om det er større end 0, og hvis det er det, beregner en almindelig RANK / RANK.EQ-funktion dets rang:

      IF($B2>0,RANK($B2,$B$2,$B$2:$B$10),...)

    • Hvis tallet er mindre end 0, justeres rangfølgen med antallet af nuller. I dette eksempel er der 4 positive tal og 2 nuller. Så for det største negative tal i B10 ville en Excel RANK-formel give 7. Men vi udelader nuller, og derfor skal vi justere rangfølgen med 2 point. Vi trækker antallet af nuller fra rangfølgen:

      RANK($B2,$B$2:$B$10)-COUNTIF($B$2:$B$10,0)))

    Ja, så let er det! Formlen til at rangordne tal fra det mindste til det største uden at tage hensyn til nuller fungerer på samme måde, og det kan være en god hjerneøvelse at udlede logikken :)

    Sådan beregnes rang i Excel ved absolut værdi

    Når du har at gøre med en liste med positive og negative værdier, kan det være nødvendigt at rangordne tallene efter deres absolutte værdier uden at tage hensyn til fortegnet.

    Opgaven kan løses med en af nedenstående formler, hvor kernen er ABS-funktionen, som returnerer den absolutte værdi af et tal:

    Rangordning ABS faldende:

    =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

    Rangordning ABS opstigende:

    =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

    Resultatet er, at negative tal bliver rangeret, som om de var positive tal:

    Sådan får du N største eller mindste værdier

    Hvis du ønsker at få et faktisk N antal af de største eller mindste værdier i stedet for deres rangordning, skal du bruge henholdsvis LARGE- eller SMALL-funktionen.

    Vi kan f.eks. få de 3 bedste resultater for vores elever med denne formel:

    =LARGE($B$2:$B$7, $D3)

    Hvor B2:B7 er listen over point og D3 er den ønskede rang.

    Derudover kan du hente elevernes navne ved hjælp af INDEX MATCH-formlen (forudsat at der ikke er nogen dobbeltresultater i top 3):

    =INDEX($A$2:$A$7,MATCH(E3,$B$2:$B$7,0))

    På samme måde kan du bruge funktionen SMALL til at trække de 3 nederste værdier ud:

    =SMALL($B$2:$B$7, $D3)

    Sådan laver du rangordning i Excel. For bedre at forstå og sandsynligvis også for at lave reverse-engineering af de formler, der diskuteres i denne vejledning, er du velkommen til at downloade vores arbejdsmappe Sample Rank Excel.

    Jeg takker for din læsning og håber at se dig på vores blog i næste uge!

    Michael Brown er en dedikeret teknologientusiast med en passion for at forenkle komplekse processer ved hjælp af softwareværktøjer. Med mere end ti års erfaring i teknologibranchen har han finpudset sine færdigheder i Microsoft Excel og Outlook samt Google Sheets og Docs. Michaels blog er dedikeret til at dele sin viden og ekspertise med andre og giver nemme at følge tips og vejledninger til at forbedre produktiviteten og effektiviteten. Uanset om du er en erfaren professionel eller nybegynder, tilbyder Michaels blog værdifuld indsigt og praktiske råd til at få mest muligt ud af disse vigtige softwareværktøjer.