INHOUDSOPGAWE
Die tutoriaal verduidelik die spesifikasies van die Excel-rangorde-funksies en wys hoe om rangorde in Excel te doen gebaseer op veelvuldige kriteria, rangskik data volgens groep, bereken persentielrang, en meer.
Wanneer jy die relatiewe posisie van 'n getal in 'n lys getalle moet bepaal, is die maklikste manier om die getalle in stygende of dalende volgorde te sorteer. As om een of ander rede sortering nie moontlik is nie, is 'n Rang-formule in Excel die perfekte hulpmiddel om die werk te doen.
Excel RANK-funksie
Die RANK-funksie in Excel gee terug die volgorde (of rangorde) van 'n numeriese waarde in vergelyking met ander waardes in dieselfde lys. Met ander woorde, dit vertel jou watter waarde die hoogste is, die tweede hoogste, ens.
In 'n gesorteerde lys sal die rang van 'n sekere getal sy posisie wees. Die RANK-funksie in Excel kan die rangorde bepaal wat begin met die grootste waarde (asof dit in dalende volgorde gesorteer is) of die kleinste waarde (asof dit in stygende volgorde gesorteer is).
Die sintaksis van die Excel RANK-funksie is as volg:
RANK(nommer,ref,[order])Waar:
Getal (vereis) - die waarde wie se rang jy wil vind.
Verw (vereis) - 'n lys van numeriese waardes waarteen gerangskik moet word. Dit kan verskaf word as 'n skikking van getalle of 'n verwysing na die lys van getalle.
Orde (opsioneel) - 'n nommer wat spesifiseer hoe om waardes te rangskik:
- As 0 of weggelaat word, word die waardes ingedeelWAAR en ONWAAR gebaseer op of 'n reekselement aan dieselfde groep as A2 behoort.
- Tweedens, gaan jy die telling na. Om waardes van grootste na kleinste te rangskik ( dalende volgorde ), gebruik die voorwaarde (C2<$C$2:$C$11), wat WAAR vir die selle groter as of gelyk aan C2 gee, anders ONWAAR.
Aangesien in Microsoft Excel-terme, WAAR = 1 en ONWAAR = 0, vermenigvuldiging van die twee skikkings 'n skikking van 1'e en 0'e gee, waar 1 slegs teruggestuur word vir die rye waarin aan beide voorwaardes voldoen word.
Dan tel SUMPRODUCT die elemente van die 1's en 0's skikking bymekaar, en gee dus 0 vir die grootste getal in elke groep. En jy voeg 1 by die resultaat om met 1 te begin rangskik.
Die formule wat getalle binne groepe rangskik van kleinste tot grootste ( stygende orde ) werk met dieselfde logika. Die verskil is dat SUMPRODUCT 0 gee vir die kleinste getal in 'n spesifieke groep, aangesien geen getal in daardie groep aan die 2de voorwaarde (C2>$C$2:$C$7) voldoen nie. Weereens vervang jy nul-rang met die 1ste rang deur 1 by die formuleresultaat by te voeg.
In plaas van SUMPRODUCT, kan jy die SUM-funksie gebruik om die skikkingselemente op te tel. Maar dit sal vereis dat 'n skikkingsformule gebruik word, voltooi met Ctrl + Shift + Enter. Byvoorbeeld:
=SUM((A2=$A$2:$A$7)*(C2<$C$2:$C$7))+1
Hoe om positiewe en negatiewe getalle afsonderlik te rangskik
As jou lys van getalle beide positiewe en negatiewe waardes bevat, sal die Excel RANK-funksiesal hulle almal in 'n japtrap rangskik. Maar wat as jy positiewe en negatiewe getalle afsonderlik wil hê?
Met getalle in selle A2 tot A10, gebruik een van die volgende formules om individuele rangorde vir positiewe en negatiewe waardes te kry:
Rang positiewe getalle dalende:
=IF($A2>0,COUNTIF($A$2:$A$10,">"&A2)+1,"")
Rang positiewe getalle stygend:
=IF($A2>0,COUNTIF($A$2:$A$10,">0")-COUNTIF($A$2:$A$10,">"&$A2),"")
Rang negatiewe getalle dalende:
=IF($A2<0,COUNTIF($A$2:$A$10,"<0")-COUNTIF($A$2:$A$10,"<"&$A2),"")
Rang negatiewe getalle stygend:
=IF($A2<0,COUNTIF($A$2:$A$10,"<"&$A2)+1,"")
Die resultate sal iets soortgelyks soos hierdie lyk:
Hoe hierdie formules werk
Om mee te begin, kom ons breek die formule af wat positiewe getalle in dalende volgorde rangskik:
- In die logiese toets van die IF-funksie, kyk jy of die getal groter as nul is.
- As die getal groter as 0 is, gee die COUNTIF-funksie die telling van waardes hoër as die getal wat gerangskik word terug.
In hierdie voorbeeld bevat A2 die 2de hoogste positiewe getal, waarvoor COUNTIF 1 gee, wat beteken dat daar net een getal groter is as dit. Om ons rangorde met 1 te begin, nie 0 nie, voeg ons 1 by die formuleresultaat, dus gee dit 'n rangorde van 2 vir A2.
- As die getal groter as 0 is, gee die formule terug 'n leë string ("").
Die formule wat positiewe getalle in stygende volgorde rangskik, werk 'n bietjie anders:
As die getal groter as 0 is , die eerste COUNTIF kry die totale telling vanpositiewe getalle in die datastel, en die tweede COUNTIF vind uit hoeveel waardes hoër is as daardie getal. Dan trek jy laasgenoemde van eersgenoemde af en kry die verlangde rang. In hierdie voorbeeld is daar 5 positiewe waardes, waarvan 1 groter is as A2. So, jy trek 1 van 5 af en kry dus 'n rangorde van 4 vir A2.
Formules om negatiewe getalle te rangskik is gebaseer op 'n soortgelyke logika.
Let wel. Al die bogenoemde formules ignoreer nulwaardes omdat 0 nie tot die versameling positiewe of tot die versameling negatiewe getalle behoort nie. Om nulle by jou rangorde in te sluit, vervang >0 en =0 en <=0, onderskeidelik, waar die formulelogika vereis.
Om byvoorbeeld positiewe getalle en nulle van grootste na kleinste te rangskik, gebruik hierdie formule: =IF($A2>=0,COUNTIF($A$2:$A$10,">"&A2)+1,"")
Hoe om data in Excel te rangskik en nulwaardes te ignoreer
Soos jy reeds weet, is 'n RANK-formule dat Excel alle getalle hanteer: positief, negatief en nulle. Maar in sommige gevalle wil ons net selle rangskik met data wat 0 waardes ignoreer. Op die web kan jy 'n paar moontlike oplossings vir hierdie taak vind, maar die Excel RANK IF-formule, methinks, is die mees universele een:
Ranknommers daal en ignoreer 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)))
Rangnommers stygende nul ignoreer:
=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)))
Waar B2:B10 die reeks getalle is wat gerangskik moet word.
Die beste ding van hierdie formule is dat dit pragtig werk vir beide positiewe en negatiewe getalle, verlaatnul waardes buite rangorde:
Hoe hierdie formule werk
Op die oog af lyk die formule dalk 'n bietjie moeilik. As jy dit van nader bekyk, is die logika baie eenvoudig.
Hier is hoe die Excel RANK IF-formule getalle rangskik van die grootste tot die kleinste, terwyl nulle ignoreer word:
- Die eerste IF kontroleer of die getal is 0, en as dit is, gee 'n leë string terug:
IF($B2=0,"", …)
- As die getal nie nul is nie, kyk die tweede IF of dit groter is as 0, en as dit is, bereken 'n gereelde RANK / RANK.EQ-funksie sy rang:
IF($B2>0,RANK($B2,$B$2:$B$10),...)
- As die getal minder as 0 is, pas jy rangorde volgens die nultelling aan. In hierdie voorbeeld is daar 4 positiewe getalle en 2 nulle. Dus, vir die grootste negatiewe getal in B10, sal 'n Excel RANK-formule 7 gee. Maar ons slaan nulle oor, en daarom moet ons die rangorde met 2 punte aanpas. Hiervoor trek ons die aantal nulle van die rangorde af:
RANK($B2,$B$2:$B$10)-COUNTIF($B$2:$B$10,0))
Jip, dit is so maklik! Die formule om getalle van die kleinste na die grootste te rangskik, wat nulle ignoreer, werk op 'n soortgelyke manier, en dit kan 'n goeie breinoefening wees om die logika daarvan af te lei :)
Hoe om rang in Excel volgens absolute waarde te bereken
Wanneer 'n lys van positiewe en negatiewe waardes hanteer word, kan daar 'n behoefte wees om getalle volgens hul absolute waardes te rangskik en die teken te ignoreer.
Die taak kan uitgevoer wordmet een van die onderstaande formules, in die hart daarvan is die ABS-funksie wat die absolute waarde van 'n getal gee:
Rank ABS dalende:
=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
Rank ABS stygende:
=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
As gevolg hiervan word negatiewe getalle gerangskik asof dit positiewe getalle is:
Hoe om N grootste te kry of kleinste waardes
As jy 'n werklike N-getal van die grootste of kleinste waardes eerder as hul rangorde wil kry, gebruik onderskeidelik die GROOT of KLEIN funksie.
Ons kan byvoorbeeld kry die top 3 tellings van ons studente met hierdie formule:
=LARGE($B$2:$B$7, $D3)
Waar B2:B7 die lys van tellings is en D3 die verlangde rangorde.
Boonop kan jy haal die studente se name op deur die INDEX MATCH-formule te gebruik (mits daar geen duplikaattellings in die top 3 is nie):
=INDEX($A$2:$A$7,MATCH(E3,$B$2:$B$7,0))
Net so kan jy gebruik die SMALL-funksie om die onderste 3 waardes te trek:
=SMALL($B$2:$B$7, $D3)
Dit is hoe jy rangorde in Excel doen. Om die formules wat in hierdie tutoriaal bespreek word beter te verstaan en waarskynlik omgekeerd te ontwerp, is jy welkom om ons Voorbeeld Rang Excel-werkboek af te laai.
Ek bedank jou vir die lees en hoop om jou volgende week op ons blog te sien!
dalende volgorde, d.w.s. van die grootste na die kleinste.Excel RANK .EQ-funksie
RANK.EQ is 'n verbeterde weergawe van die RANK-funksie, bekendgestel in Excel 2010. Dit het dieselfde sintaksis as RANK en werk met dieselfde logika: as verskeie waardes gelyk gerangskik word, is die hoogste rangorde word aan al sulke waardes toegeken. (EQ staan vir "gelyk").
RANK.EQ(nommer,ref,[orde])In Excel 2007 en laer weergawes moet jy altyd die RANK-funksie gebruik. In Excel 2010, Excel 2013 en Excel 2016 kan jy met óf RANK óf RANK.EQ gaan. Dit sal egter wys wees om RANK.EQ te gebruik, want RANK kan enige oomblik gestaak word.
Excel RANK.AVG-funksie
RANK.AVG is nog 'n funksie om rang in Excel te vind wat is slegs beskikbaar in Excel 2010, Excel 2013, Excel 2016 en later.
Dit het dieselfde sintaksis as die ander twee funksies:
RANK.AVG(nommer,ref,[orde])Die verskil is dat as meer as een nommer dieselfde rang het, die gemiddelde rang teruggestuur word (AVG staan vir "gemiddeld").
4 dinge wat jy moet weet oor RANK in Excel
- Enige rangformule in Excel werk net vir numeriese waardes: positiewe en negatiewe getalle, nulle, datum en tyd waardes. Nie-numeriese waardes in die ref -argument word geïgnoreer.
- Alle RANK-funksies gee dieselfde rang virduplikaatwaardes, en slaan die daaropvolgende rangorde oor, soos in die voorbeeld hieronder getoon.
- In Excel 2010 en later weergawes is die RANK-funksie vervang met RANK.EQ en RANK.AVG. Vir terugwaartse versoenbaarheid werk RANK steeds in alle weergawes van Excel, maar dit sal dalk nie in die toekoms beskikbaar wees nie.
- As nommer nie binne ref gevind word nie, kan enige Excel Rank-funksie sal die #N/A-fout terugstuur.
Basiese Excel-ranglysformule (van hoogste na laagste)
Om meer begrip te kry oor die rangorde van data in Excel, het asseblief 'n kyk na hierdie kiekie:
Al drie formules rangskik nommers in kolom B in dalende volgorde (die orde argument weggelaat):
In alle weergawes 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)
Die verskil is in hoe hierdie formules duplikaatwaardes verwerk. Soos jy sien, verskyn dieselfde telling twee keer, in selle B5 en B6, wat daaropvolgende rangorde affekteer:
- Die RANK- en RANK.EQ-formules gee 'n rangorde van 2 aan beide duplikaattellings. Die naashoogste telling (Daniela) is 4de op die ranglys. 'n Rang van 3 word aan niemand gegee nie.
- Die RANK.AVG-formule ken 'n ander rangorde aan elke duplikaat agter die skerms toe (2 en 3 in hierdie voorbeeld), en gee die gemiddelde van daardie rangorde (2.5) terug. . Weereens, die 3de rang word aan niemand toegeken nie.
Hoe om RANK in Excel te gebruik - formulevoorbeelde
Die pad nauitnemendheid, sê hulle, is geplavei met oefening. Dus, om beter te leer hoe om RANK-funksie in Excel te gebruik, alleen of in kombinasie met ander funksies, kom ons werk oplossings uit vir 'n paar werklike take.
Hoe om in Excel te rangskik van laagste na hoogste
Soos getoon in die voorbeeld hierbo, om getalle van hoogste na laagste te rangskik, gebruik jy een van die Excel-rangformules met die orde -argument op 0 gestel of weggelaat (verstek).
Om getal te laat rangskik teen ander getalle in stygende volgorde , plaas 1 of enige ander nie-nul waarde in die opsionele derde argument.
Byvoorbeeld, om die 100-meter-naellooptye van die studente te rangskik, kan jy enige van die onderstaande formules gebruik:
=RANK(B2,$B$2:$B$7,1)
=RANK.EQ(B2,$B$2:$B$7,1)
Let asseblief daarop dat ons die reeks insluit die ref -argument deur absolute selverwysings te gebruik, sodat dit nie sal verander wanneer ons die formule in die kolom af kopieer nie.
As gevolg hiervan, die laagste waarde (vinnigste tyd) is 1ste en die grootste waarde (stadigste tyd) kry die laagste rang van 6. Die gelyke tye (B2) en B7) word dieselfde rangorde gegee.
Hoe om data in Excel uniek te rangskik
Soos vroeër uitgewys, gee al die Excel-rangfunksies dieselfde rang vir items van gelyke waarde. As dit nie is wat jy wil hê nie, gebruik een van die volgende formules om gelykop-situasies op te los en gee 'n unieke rang aan elke nommer.
Unieke rangorde vanafhoogste na laagste
Om die wiskundetellings van ons studente uniek in dalende volgorde te rangskik, gebruik hierdie formule:
=RANK.EQ(B2,$B$2:$B$7)+COUNTIF($B$2:B2,B2)-1
Unieke rangorde van laagste na hoogste
Om die 100-meter-wedloopresultate in stygende volgorde te rangskik sonder duplikate, gebruik hierdie formule:
=RANK.EQ(B2,$B$2:$B$7,1) + COUNTIF($B$2:B2,B2)-1
Hoe hierdie formules werk
Soos jy dalk opgemerk het, is die enigste verskil tussen die twee formules die orde -argument van die RANK.EQ-funksie: weggelaat om te rangskik waardes dalende, 1 om stygende rangorde te kry.
In beide formules is dit die COUNTIF-funksie met die slim gebruik van relatiewe en absolute selverwysings wat die ding doen. Kortliks, jy gebruik COUNTIF om uit te vind hoeveel gevalle van die nommer wat gerangskik word daar in die bogenoemde selle is, insluitend die nommer se sel. In die boonste ry waar jy die formule invoer, bestaan die reeks uit 'n enkele sel ($B$2:B2). Maar omdat jy net die eerste verwysing ($B$2) sluit, verander die laaste relatiewe verwysing (B2) gebaseer op die ry waar die formule gekopieer is. Dus, vir ry 7, brei die reeks uit na $B$2:B7, en die waarde in B7 word vergelyk met elk van die bogenoemde selle.
Gevolglik, vir alle 1ste gevalle gee COUNTIF 1; en jy trek 1 aan die einde van die formule af om die oorspronklike rangorde te herstel.
Vir 2de gevalle gee COUNTIF 2 terug. Deur 1 af te trek, verhoog jy die rangorde met 1 punt en voorkom dus duplikate. Asdaar is toevallig 3 gevalle van dieselfde waarde, COUNTIF()-1 sal 2 by hul rangorde voeg, ensovoorts.
Alternatiewe oplossing om Excel RANK-bande te verbreek
Nog 'n manier om te rangskik nommers in Excel is uniek deur twee COUNTIF-funksies op te tel:
- Die eerste funksie bepaal hoeveel waardes groter of minder is as die getal wat gerangskik moet word, afhangende van of jy dalende of stygende rangorde is, onderskeidelik.
- Die tweede funksie (met die "uitbreidende reeks" $B$2:B2 soos in die bostaande voorbeeld) kry die aantal waardes gelyk aan die getal.
Byvoorbeeld , om nommers uniek van hoogste na laagste te rangskik, sal jy hierdie formule gebruik:
=COUNTIF($B$2:$B$7,">"&$B2)+COUNTIF($B$2:B2,B2)
Soos in die skermkiekie hieronder getoon, is die gelykopuitslag suksesvol opgelos, en 'n unieke rangorde is aan elke student toegewys:
Panstelling in Excel gebaseer op veelvuldige kriteria
Die vorige voorbeeld het twee werkende oplossings vir 'n Excel RANK gelykop-situasie gedemonstreer. Dit mag egter onregverdig voorkom dat gelyke getalle verskillend gerangskik word net op grond van hul posisie in die lys. Om jou rangorde te verbeter, wil jy dalk nog een kriteria byvoeg wat oorweeg moet word in die geval van gelykop.
In ons voorbeelddatastel, kom ons voeg totale tellings in kolom C by en bereken rangorde soos volg:
- Eers, rangskik met Wiskundige telling (hoofkriteria)
- Wanneer daar 'n gelykop is, breek dit met Totale telling (sekondêr)kriteria)
Om dit te laat doen, sal ons 'n gereelde RANK/RANK.EQ-formule gebruik om rangorde te vind, en die COUNTIFS-funksie om 'n gelykop te breek:
=RANK.EQ($B2,$B$2:$B$7)+COUNTIFS($B$2:$B$7,$B2,$C$2:$C$7,">"&$C2)
Vergeleke met die voorbeeld hierbo is hierdie rangformule meer objektief: Timothy is 2de omdat sy totale telling hoër is as dié van Julia:
Hoe hierdie formule werk
Die RANK-deel van die formule is voor die hand liggend, en die COUNTIFS-funksie doen die volgende:
- Die eerste kriteriareeks / kriteria paar ($B$2:$B$7,$B2) tel die voorkoms van die waarde wat jy rangskik. Let asseblief op, ons maak die reeks reg met absolute verwysings, maar moenie die kriteria se ry ($B2) sluit sodat die formule die waarde in elke ry individueel nagaan nie.
- Die tweede kriteriareeks / kriteria -paar ($C$2:$C$7,">"&$C2) vind uit hoeveel totale tellings groter is as die totale telling van die waarde wat gerangskik word.
Omdat COUNTIFS met die EN-logika werk, d.w.s. slegs selle tel wat aan al die gespesifiseerde voorwaardes voldoen, gee dit 0 vir Timothy, aangesien geen ander student met dieselfde Wiskunde nie telling het 'n hoër totale telling. Dus, Timothy se rang wat deur RANK.EQ teruggegee word, is onveranderd. Vir Julia gee die COUNTIFS-funksie 1 terug omdat een student met dieselfde Wiskunde-telling 'n hoër totaal het, dus word haar rangnommer met 1 verhoog. As nog een student dieselfde Wiskunde-telling gehad het en 'n totale telling laeras dié van Timothy en Julia, sal sy/haar rang met 2 verhoog word, ensovoorts.
Alternatiewe oplossings vir rangnommers met veelvuldige kriteria
In plaas van die RANK- of RANK.EQ-funksie , jy kan COUNTIF gebruik om die hoofkriteria na te gaan, en COUNTIFS of SUMPRODUCT om 'n gelykopuitslag op te los:
=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
Die resultaat van hierdie formules is presies dieselfde soos hierbo getoon.
Hoe om persentielrang in Excel te bereken
In statistiek is 'n persentiel (of sentiel ) die waarde waaronder 'n sekere persentasie waardes in 'n gegewe datastel val. Byvoorbeeld, as 70% van studente gelyk aan of onder jou toetstelling is, is jou persentielrang 70.
Om persentielrang in Excel te kry, gebruik die RANK- of RANK.EQ-funksie met 'n nie-nul orde argument om getalle van die kleinste na die grootste te rangskik, en deel dan die rangorde deur die getal getalle. Dus, die generiese Excel Persentiel Rang-formule gaan soos volg:
RANK.EQ( boonste_sel, reeks,1)/COUNT( reeks)Om die persentielrang van ons studente te bereken, neem die formule die volgende vorm aan:
=RANK.EQ(B2,$B$2:$B$7,1)/COUNT($B$2:$B$7)
Om die resultate korrek te vertoon, maak seker dat jy die <1 stel>Persentasie -formaat na die formuleselle:
Hoe om getalle in nie-aangrensende selle te rangskik
In situasies wanneer jy nie- aaneenlopende selle, verskaf daardie selle direk in die ref -argumentvan jou Excel-rangformule in die vorm van 'n verwysingsunie, wat die verwysings met die $-teken sluit. Byvoorbeeld:
=RANK(B2,($B$2,$B$4,$B$6))
Om foute in nie-geordende selle te voorkom, draai RANK in die IFERROR-funksie, soos volg:
=IFERROR(RANK(B2,($B$2,$B$4,$B$6)), "")
Let asseblief kennis dat 'n duplikaatnommer ook 'n rang gegee word, alhoewel sel B5 nie by die formule ingesluit is nie:
As jy verskeie nie-aangrensende selle moet rangskik, kan die formule hierbo te lank word. In hierdie geval sal 'n meer elegante oplossing wees om 'n benoemde reeks te definieer, en na daardie naam in die formule te verwys:
=IFERROR(RANK(B2,range), "")
Hoe om in Excel te rangskik deur groep
Wanneer jy werk met inskrywings wat in 'n soort datastruktuur georganiseer is, kan data aan verskeie groepe behoort, en jy wil dalk nommers binne elke groep individueel rangskik. Die Excel RANK-funksie kan nie hierdie uitdaging oplos nie, daarom gaan ons 'n meer komplekse SUMPRODUCT-formule gebruik:
Rang volgens groep in dalende volgorde:
=SUMPRODUCT((A2=$A$2:$A$7)*(C2<$C$2:$C$7))+1
Rang volgens groep in stygende volgorde:
=SUMPRODUCT((A2=$A$2:$A$7)*(C2>$C$2:$C$7))+1
Waar:
- A2:A7 is groepe wat aan nommers toegewys is.
- C2:C7 is getalle wat gerangskik moet word.
In hierdie voorbeeld gebruik ons die eerste formule om getalle in elke groep van grootste na kleinste te rangskik:
Hoe hierdie formule werk
In wese evalueer die formule 2 voorwaardes:
- Eers gaan jy die groep na (A2= $A$2:$A$7). Hierdie deel gee 'n verskeidenheid van