Excel RANK-funktionen och andra sätt att beräkna rangordning

  • Dela Detta
Michael Brown

I handledningen förklaras de specifika egenskaperna hos Excel Rank-funktionerna och det visas hur man gör en rangordning i Excel baserat på flera kriterier, rangordnar data efter grupp, beräknar percentilrang och mycket mer.

När du behöver bestämma den relativa positionen för ett nummer i en lista med nummer är det enklaste sättet att sortera numren i stigande eller fallande ordning. Om det av någon anledning inte går att sortera är en rangformel i Excel det perfekta verktyget för att göra jobbet.

    Excel RANK-funktionen

    RANK-funktionen i Excel returnerar ordningen (eller rangordningen) för ett numeriskt värde jämfört med andra värden i samma lista. Med andra ord talar den om vilket värde som är det högsta, det näst högsta osv.

    I en sorterad lista är rangordningen för ett visst tal dess position. Funktionen RANK i Excel kan bestämma rangordningen genom att börja med det största värdet (som om det är sorterat i fallande ordning) eller det minsta värdet (som om det är sorterat i stigande ordning).

    Syntaxen för Excel-funktionen RANK är följande:

    RANK(antal,ref,[ordning])

    Var:

    Antal (obligatoriskt) - det värde vars rang du vill hitta.

    Ref (krävs) - en lista med numeriska värden att rangordna mot. Den kan anges som en matris med siffror eller som en referens till listan med siffror.

    Beställ (valfritt) - ett tal som anger hur värdena ska rangordnas:

    • Om värdet är 0 eller utelämnas rangordnas värdena i fallande ordning, dvs. från störst till minst.
    • Om värdet är 1 eller något annat värde som inte är noll, rangordnas värdena i stigande ordning, dvs. från det minsta till det största.

    Excel RANK.EQ-funktionen

    RANK.EQ är en förbättrad version av RANK-funktionen som introducerades i Excel 2010. Den har samma syntax som RANK och fungerar enligt samma logik: om flera värden rankas lika, tilldelas den högsta rankningen till alla dessa värden (EQ står för "equal").

    RANK.EQ(antal,ref,[ordning])

    I Excel 2007 och lägre versioner ska du alltid använda funktionen RANK. I Excel 2010, Excel 2013 och Excel 2016 kan du använda antingen RANK eller RANK.EQ. Det är dock klokt att använda RANK.EQ eftersom RANK kan upphöra när som helst.

    Excel RANK.AVG-funktionen

    RANK.AVG är en annan funktion för att hitta rangordning i Excel som endast är tillgänglig i Excel 2010, Excel 2013, Excel 2016 och senare.

    Den har samma syntax som de andra två funktionerna:

    RANK.AVG(antal,ref,[ordning])

    Skillnaden är att om fler än ett nummer har samma rang, så är det genomsnittlig rang returneras (AVG står för "genomsnitt").

    4 saker du bör veta om RANK i Excel

    1. Alla Rank-formler i Excel fungerar endast för numeriska värden: positiva och negativa tal, nollor, datum- och tidsvärden. Icke-numeriska värden i ref argumentet ignoreras.
    2. Alla RANK-funktioner returnerar samma rang för dubbla värden och hoppar över efterföljande rangordning, vilket visas i exemplet nedan.
    3. I Excel 2010 och senare versioner har RANK-funktionen ersatts med RANK.EQ och RANK.AVG. För att uppnå bakåtkompatibilitet fungerar RANK fortfarande i alla Excel-versioner, men det kan hända att den inte är tillgänglig i framtiden.
    4. Om nummer inte finns inom ref skulle alla Excel Rank-funktioner ge felet #N/A.

    Grundläggande formel för Excel Rank (från högsta till lägsta)

    Om du vill få en bättre förståelse för hur du rangordnar data i Excel kan du ta en titt på den här skärmdumpen:

    Alla tre formlerna rangordnar siffrorna i kolumn B i fallande ordning (den beställning argument utelämnat):

    I alla versioner av Excel 2003 - 2016:

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

    I Excel 2010 - 2016:

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

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

    Skillnaden ligger i hur formlerna behandlar dubbla värden. Som du ser visas samma poäng två gånger, i cellerna B5 och B6, vilket påverkar den efterföljande rangordningen:

    • Formlerna RANK och RANK.EQ ger båda dubblettpoängen en rangordning på 2. Den näst högsta poängen (Daniela) hamnar på plats 4. Ingen får en rangordning på 3.
    • Formeln RANK.AVG tilldelar varje duplikat bakom kulisserna en annan rang (2 och 3 i det här exemplet), och återger genomsnittet av dessa ranger (2,5). Även här tilldelas inte den tredje rangen någon.

    Hur man använder RANK i Excel - exempel på formler

    Det sägs att vägen till excellens är belagd med övning. Så för att bättre lära dig hur du använder RANK-funktionen i Excel, ensam eller i kombination med andra funktioner, ska vi lösa några verkliga uppgifter.

    Hur man rangordnar i Excel från lägst till högst

    Som visas i exemplet ovan använder du en av Excel-formlerna Rank (rangordning) med följande formel för att rangordna siffror från högst till lägst: "Rank" (rangordning). beställning argumentet är satt till 0 eller utelämnas (standard).

    Att ha nummer rangordnas mot andra nummer sorterade i stigande ordning , ange 1 eller något annat värde som inte är noll i det valfria tredje argumentet.

    Om du till exempel vill rangordna elevernas sprinttider på 100 meter kan du använda någon av följande formler:

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

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

    Var uppmärksam på att vi låser intervallet i ref argumentet genom att använda absoluta cellreferenser, så att det inte ändras när vi kopierar formeln nedåt i kolumnen.

    Resultatet är att det lägsta värdet (snabbaste tiden) får första plats och det största värdet (långsammaste tiden) får den lägsta platsen 6. De lika långa tiderna (B2 och B7) får samma plats.

    Hur man rangordnar data i Excel unikt

    Som tidigare påpekats ger alla Excel-funktioner för rangordning samma rangordning för objekt av samma värde. Om du inte vill ha det, använd en av följande formler för att lösa oavgjorda situationer och ge en unik rang till varje nummer.

    Unik rangordning från högsta till lägsta

    För att rangordna våra elevers mattepoäng i fallande ordning använder du den här formeln:

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

    Unik ranking från lägsta till högsta

    För att rangordna resultaten från 100-metersloppet i stigande ordning utan dubbletter, använd denna formel:

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

    Hur dessa formler fungerar

    Som du kanske har lagt märke till är den enda skillnaden mellan de två formlerna beställning argument för funktionen RANK.EQ: utelämnas för att rangordna värdena i fallande ordning, 1 för att rangordna dem i stigande ordning.

    I båda formlerna är det COUNTIF-funktionen med smart användning av relativa och absoluta cellreferenser som gör susen. I korthet använder du COUNTIF för att ta reda på hur många förekomster av talet som ska rangordnas det finns i cellerna ovanför, inklusive talets cell. I den översta raden där du skriver in formeln består intervallet av en enda cell ($B$2:B2). Men eftersom du bara låserförsta referensen ($B$2), ändras den sista relativa referensen (B2) beroende på vilken rad där formeln kopieras. För rad 7 utökas alltså intervallet till $B$2:B7, och värdet i B7 jämförs med var och en av cellerna ovan.

    Följaktligen ger COUNTIF 1 för alla 1:a förekomster, och du subtraherar 1 i slutet av formeln för att återställa den ursprungliga rangordningen.

    För andra förekomster ger COUNTIF 2. Genom att subtrahera 1 ökar du rangordningen med 1 poäng, vilket förhindrar dubbletter. Om det råkar finnas tre förekomster av samma värde skulle COUNTIF()-1 lägga till 2 till deras rangordning, och så vidare.

    Alternativ lösning för att bryta Excel RANK-bindningar

    Ett annat sätt att rangordna siffror i Excel är att addera två COUNTIF-funktioner:

    • Den första funktionen bestämmer hur många värden som är större än eller mindre än det antal som ska rangordnas, beroende på om du rangordnar i fallande eller stigande ordning.
    • Den andra funktionen (med det "expanderande området" $B$2:B2 som i exemplet ovan) tar fram antalet värden som är lika med antalet.

    Om du till exempel vill rangordna siffror unikt från högst till lägst använder du följande formel:

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

    Som framgår av skärmbilden nedan har det gått att lösa upp oavgjort och varje elev har fått en unik rangordning:

    Rangordning i Excel baserat på flera kriterier

    Det föregående exemplet har visat två fungerande lösningar för en Excel RANK-situation med oavgjort resultat. Det kan dock verka orättvist att lika stora tal rangordnas olika enbart på grund av deras position i listan. För att förbättra rangordningen kanske du vill lägga till ytterligare ett kriterium som ska beaktas vid oavgjort resultat.

    I vårt exempel kan vi lägga till de totala poängen i kolumn C och beräkna rangordningen på följande sätt:

    • Först, rangordna med Matematikresultat (huvudkriterier)
    • Om det blir oavgjort, bryter du det med Total poäng (sekundära kriterier)

    För att göra det kommer vi att använda en vanlig RANK/RANK.EQ-formel för att hitta rankningen och funktionen COUNTIFS för att bryta oavgjort:

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

    Jämfört med exemplet ovan är den här rangordningsformeln mer objektiv: Timothy hamnar på andra plats eftersom hans totala poäng är högre än Julias:

    Hur denna formel fungerar

    RANK-delen av formeln är uppenbar och COUNTIFS-funktionen gör följande:

    • Den första kriterier_intervall / kriterier paret ($B$2:$B$7,$B2) räknar förekomsterna av det värde som du rangordnar. Observera att vi fixerar sortiment med absoluta referenser, men låsa inte kriterier ($B2) så att formeln kontrollerar värdet i varje rad individuellt.
    • Den andra kriterier_intervall / kriterier pair ($C$2:$C$7,">"&$C2) tar reda på hur många totala poäng som är större än den totala poängen för det värde som rankas.

    Eftersom COUNTIFS arbetar med AND-logiken, dvs. räknar endast celler som uppfyller alla de angivna villkoren, returnerar den 0 för Timothy eftersom ingen annan elev med samma resultat i matematik har ett högre totalresultat. Därför är Timothys rang som returneras av RANK.EQ oförändrad. För Julia returnerar COUNTIFS-funktionen 1 eftersom en elev med samma resultat i matematik har ett högre totalresultat, så hennes rangnummer ärOm ytterligare en elev hade samma resultat i matematik och ett totalresultat som var lägre än Timothy och Julias resultat, skulle hans/hennes rangordning ökas med 2, och så vidare.

    Alternativa lösningar för att rangordna nummer med flera kriterier

    I stället för funktionen RANK eller RANK.EQ kan du använda COUNTIF för att kontrollera huvudkriterierna och COUNTIFS eller SUMPRODUCT för att lösa en oavgjort resultat:

    =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 av dessa formler är exakt detsamma som ovan.

    Hur man beräknar percentilranking i Excel

    Inom statistiken är en percentil (eller centile ) är det värde som en viss procentandel av värdena i en viss datamängd ligger under. Om till exempel 70 % av eleverna har samma eller lägre poäng som du har på provet, är din percentilrank 70.

    För att få fram percentilrank i Excel använder du funktionen RANK eller RANK.EQ med ett värde som inte är noll. beställning argumentet för att rangordna siffrorna från minsta till största, och sedan dividera rangordningen med antalet siffror. Excel-formel för percentilrankning går som följer:

    RANK.EQ( översta_cell , sortiment ,1)/COUNT( sortiment )

    För att beräkna våra studenters percentilranking används följande formel:

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

    För att resultaten ska visas korrekt måste du ställa in Procentuell andel format till formelcellerna:

    Hur man rangordnar siffror i icke angränsande celler

    Om du behöver rangordna celler som inte är sammanhängande kan du ange dessa celler direkt i ref argumentet i din Excel Rank-formel i form av en referensförening och låser referenserna med $-tecknet. Till exempel:

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

    För att förhindra fel i celler som inte är rangordnade kan du omsluta RANK i IFERROR-funktionen, på följande sätt:

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

    Observera att ett duplicerat nummer också får en rangordning, även om cell B5 inte ingår i formeln:

    Om du behöver rangordna flera icke sammanhängande celler kan formeln ovan bli för lång. I det här fallet är en elegantare lösning att definiera ett namngivet intervall och hänvisa till det namnet i formeln:

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

    Hur man rangordnar i Excel efter grupp

    När du arbetar med poster som är organiserade i någon form av datastruktur kan data tillhöra olika grupper, och du kanske vill rangordna siffror inom varje grupp individuellt. Excel-funktionen RANK kan inte lösa den här utmaningen, så vi kommer att använda en mer komplex SUMPRODUCT-formel:

    Rangordning efter grupp i nedåtgående ordning:

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

    Rangordning efter grupp i stigande ordning:

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

    Var:

    • A2:A7 är grupper som tilldelats nummer.
    • C2:C7 är nummer som ska rangordnas.

    I det här exemplet använder vi den första formeln för att rangordna talen i varje grupp från störst till minst:

    Hur denna formel fungerar

    Formeln utvärderar i huvudsak två villkor:

    • Först kontrollerar du gruppen (A2=$A$2:$A$7). Den här delen returnerar en array med TRUE och FALSE baserat på om ett intervallelement tillhör samma grupp som A2.
    • För det andra kontrollerar du poängen. För att rangordna värdena från störst till minst ( fallande ordning ), använd villkoret (C2<$C$2:$C$11), som returnerar TRUE för de celler som är större än eller lika med C2, och FALSE i annat fall.

    Eftersom TRUE = 1 och FALSE = 0 i Microsoft Excel ger multipliceringen av de två matriserna en matris med 1:or och 0:or, där 1 endast returneras för de rader där båda villkoren är uppfyllda.

    Sedan adderar SUMPRODUCT elementen i arrayen med 1:or och 0:or, vilket ger 0 för det största talet i varje grupp, och du lägger till 1 till resultatet för att börja rangordningen med 1.

    Formeln som rangordnar tal inom grupper från minsta till största ( stigande beställning ) fungerar på samma sätt. Skillnaden är att SUMPRODUCT ger 0 för det minsta talet i en viss grupp, eftersom inget tal i den gruppen uppfyller det andra villkoret (C2>$C$2:$C$7). Återigen ersätter du noll rang med första rang genom att lägga till 1 till formelns resultat.

    Istället för SUMPRODUCT kan du använda funktionen SUM för att summera arrayelementen. Men detta kräver att du använder en arrayformel som du fyller i med Ctrl + Shift + Enter . Till exempel:

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

    Hur man rangordnar positiva och negativa tal separat

    Om din lista med siffror innehåller både positiva och negativa värden, kommer Excel-funktionen RANK att rangordna dem alla på nolltid. Men vad händer om du vill ha positiva och negativa siffror rangordnade separat?

    Använd en av följande formler för att få fram en individuell rangordning för positiva och negativa värden med siffrorna i cellerna A2 till A10:

    Rangordna positiva tal i fallande ordning:

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

    Rangordna positiva tal i stigande ordning:

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

    Rangordna negativa tal i fallande ordning:

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

    Rangordna negativa tal i stigande ordning:

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

    Resultatet kommer att se ut ungefär så här:

    Hur dessa formler fungerar

    Till att börja med ska vi bryta ner formeln som rangordnar positiva tal i nedåtgående ordning:

    • I det logiska testet i IF-funktionen kontrollerar du om talet är större än noll.
    • Om antalet är större än 0 returnerar funktionen COUNTIF antalet värden som är högre än det antal som rangordnas.

      I det här exemplet innehåller A2 det näst högsta positiva talet, för vilket COUNTIF ger 1, vilket innebär att det bara finns ett tal som är större än det. För att börja vår rangordning med 1, inte 0, lägger vi till 1 till formelns resultat, så att den ger en rangordning på 2 för A2.

    • Om talet är större än 0 returnerar formeln en tom sträng ("").

    Formeln som rangordnar positiva tal i stigande ordning fungerar på ett lite annorlunda sätt:

    Om talet är större än 0 får den första COUNTIF fram det totala antalet positiva tal i datamängden, och den andra COUNTIF tar reda på hur många värden som är högre än det talet. Sedan subtraherar du det senare från det förra och får den önskade rangordningen. I detta exempel finns det 5 positiva värden, varav 1 är större än A2. Du subtraherar alltså 1 från 5 och får därmed en rangordning på 4 för A2.

    Formler för att rangordna negativa tal bygger på en liknande logik.

    Observera: Alla ovanstående formler ignorera nollvärden eftersom 0 varken tillhör mängden positiva eller negativa tal. Om du vill inkludera nollor i din rangordning ersätter du>0 och =0 respektive <=0 där formelns logik kräver det.

    Om du till exempel vill rangordna positiva tal och nollor från störst till minst använder du följande formel: =IF($A2>=0,COUNTIF($A$2:$A$10,">"&A2)+1,"")

    Hur man rangordnar data i Excel utan att ta hänsyn till nollvärden

    Som du redan vet hanterar en RANK-formel i Excel alla tal: positiva, negativa och nollor. Men i vissa fall vill vi bara rangordna celler med data som ignorerar 0-värden. På webben kan du hitta några möjliga lösningar för den här uppgiften, men Excel RANK IF-formeln är den mest universella:

    Rangordna tal i fallande ordning utan att ta hänsyn till noll:

    =IF($B2=0,"",IF($B2>0,RANK($B2,$B$2:$B$10), RANK($B2,$B$2:$B$10)-COUNTIF($B$2:$B$10,0)))

    Rangordna nummer i stigande ordning och bortse från noll:

    =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)))

    Där B2:B10 är intervallet av nummer som ska rangordnas.

    Det bästa med den här formeln är att den fungerar utmärkt både för positiva och negativa tal och att den inte tar hänsyn till nollvärden:

    Hur denna formel fungerar

    Vid en första anblick kan formeln verka lite knepig, men när man tittar närmare på den är logiken mycket enkel.

    Så här gör Excel-formeln RANK IF för att rangordna tal från störst till minst, utan att ta hänsyn till nollor:

    • Den första IF:en kontrollerar om talet är 0, och om det är 0 returnerar den en tom sträng:

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

    • Om talet inte är noll kontrollerar den andra IF-funktionen om det är större än 0, och om det är det beräknas dess rang med en vanlig RANK/RANK.EQ-funktion:

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

    • Om talet är mindre än 0 justeras rangordningen med antalet nollor. I det här exemplet finns det fyra positiva tal och två nollor. För det största negativa talet i B10 skulle en Excel RANK-formel alltså ge 7. Men vi hoppar över nollor, och därför måste vi justera rangordningen med två poäng. För detta subtraherar vi antalet nollor från rangordningen:

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

    Japp, det är så enkelt! Formeln för att rangordna tal från minsta till största utan att ta hänsyn till nollor fungerar på ett liknande sätt, och det kan vara en bra hjärngymnastik att härleda dess logik :)

    Hur man beräknar rang i Excel med absolut värde

    När du har att göra med en lista med positiva och negativa värden kan det finnas ett behov av att rangordna talen efter deras absoluta värde utan att ta hänsyn till tecknet.

    Uppgiften kan utföras med en av nedanstående formler, där kärnan är ABS-funktionen som returnerar det absoluta värdet av ett tal:

    Rangordna ABS i fallande ordning:

    =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

    Rangordna ABS i stigande ordning:

    =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 är att negativa tal rangordnas som om de vore positiva tal:

    Hur man får fram N största eller minsta värden

    Om du vill få fram ett faktiskt N-tal av de största eller minsta värdena snarare än deras rangordning använder du funktionen LARGE respektive SMALL.

    Vi kan till exempel få fram de tre bästa poängen för våra elever med denna formel:

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

    Där B2:B7 är listan över poäng och D3 är den önskade rangordningen.

    Dessutom kan du hämta elevernas namn med hjälp av formeln INDEX MATCH (förutsatt att det inte finns några dubbla resultat i de tre bästa resultaten):

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

    På samma sätt kan du använda funktionen SMALL för att ta fram de tre lägsta värdena:

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

    Det är så du gör ranking i Excel. För att bättre förstå och troligen göra om formlerna som diskuteras i den här handledningen är du välkommen att ladda ner vår arbetsbok Sample Rank Excel.

    Jag tackar dig för att du läste och hoppas att vi ses på vår blogg nästa vecka!

    Michael Brown är en hängiven teknikentusiast med en passion för att förenkla komplexa processer med hjälp av mjukvaruverktyg. Med mer än ett decenniums erfarenhet inom teknikbranschen har han finslipat sina kunskaper i Microsoft Excel och Outlook, samt Google Sheets och Docs. Michaels blogg är tillägnad att dela med sig av sin kunskap och expertis med andra, och tillhandahåller lätta att följa tips och handledningar för att förbättra produktiviteten och effektiviteten. Oavsett om du är en erfaren proffs eller nybörjare, erbjuder Michaels blogg värdefulla insikter och praktiska råd för att få ut det mesta av dessa viktiga programvaruverktyg.