Функция RANK на Excel и други начини за изчисляване на ранг

  • Споделя Това
Michael Brown

Съдържание

В урока са обяснени особеностите на функциите на Excel Rank и е показано как да правите класиране в Excel въз основа на множество критерии, да класирате данни по групи, да изчислявате персентил и др.

Когато трябва да определите относителната позиция на дадено число в списък от числа, най-лесният начин е да сортирате числата във възходящ или низходящ ред. Ако по някаква причина сортирането не е възможно, формулата Rank в Excel е идеалният инструмент за тази задача.

    Функция RANK на Excel

    Функцията RANK в Excel връща реда (или ранга) на дадена числова стойност в сравнение с други стойности в същия списък. С други думи, тя ви казва коя стойност е най-висока, коя е втора по големина и т.н.

    В сортиран списък рангът на дадено число ще бъде неговата позиция. Функцията RANK в Excel може да определи ранга, като започне от най-голямата стойност (сякаш е сортирана в низходящ ред) или от най-малката стойност (сякаш е сортирана във възходящ ред).

    Синтаксисът на функцията RANK на Excel е следният:

    RANK(номер,ref,[ред])

    Къде:

    Номер (задължително) - стойността, чийто ранг искате да намерите.

    Ref (задължително) - списък с числови стойности за класиране. Може да бъде предоставен като масив от числа или като препратка към списък с числа.

    Поръчка (незадължително) - число, което указва как да се ранжират стойностите:

    • Ако е 0 или е пропуснато, стойностите се подреждат в низходящ ред, т.е. от най-голямата към най-малката.
    • Ако е 1 или друга ненулева стойност, стойностите се подреждат във възходящ ред, т.е. от най-малката към най-голямата.

    Функция RANK.EQ на Excel

    RANK.EQ е усъвършенствана версия на функцията RANK, въведена в Excel 2010. Тя има същия синтаксис като RANK и работи със същата логика: ако няколко стойности са подредени еднакво, най-високият ранг се присвоява на всички такива стойности (EQ означава "равно").

    RANK.EQ(число,ref,[ред])

    В Excel 2007 и по-ниските версии винаги трябва да използвате функцията RANK. В Excel 2010, Excel 2013 и Excel 2016 можете да използвате или RANK, или RANK.EQ. Въпреки това би било разумно да използвате RANK.EQ, тъй като RANK може да бъде спряна във всеки един момент.

    Функция RANK.AVG на Excel

    RANK.AVG е друга функция за намиране на ранг в Excel, която е налична само в Excel 2010, Excel 2013, Excel 2016 и по-нови версии.

    Тя има същия синтаксис като другите две функции:

    RANK.AVG(число,ref,[ред])

    Разликата е, че ако повече от едно число има еднакъв ранг. среден ранг (AVG означава "средна стойност").

    4 неща, които трябва да знаете за RANK в Excel

    1. Всяка формула за класиране в Excel работи само с числови стойности: положителни и отрицателни числа, нули, стойности за дата и час. ref се игнорират.
    2. Всички функции RANK връщат един и същ ранг за дублиращи се стойности и пропускат последващо класиране, както е показано в примера по-долу.
    3. В Excel 2010 и по-късните версии функцията RANK е заменена с RANK.EQ и RANK.AVG. За обратна съвместимост RANK все още работи във всички версии на Excel, но в бъдеще може да не е налична.
    4. Ако номер не се намира в рамките на ref , всяка функция на Excel Rank ще върне грешка #N/A.

    Основна формула на Excel за ранг (от най-високия към най-ниския)

    За да разберете по-добре класирането на данни в Excel, разгледайте тази екранна снимка:

    И трите формули класират числата в колона В в низходящ ред (the поръчка пропуснат аргумент):

    Във всички версии на Excel 2003 - 2016:

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

    В Excel 2010 - 2016:

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

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

    Разликата е в начина, по който тези формули обработват дублиращите се стойности. Както виждате, една и съща оценка се появява два пъти в клетки B5 и B6, което влияе на последващото класиране:

    • Формулите RANK и RANK.EQ дават ранг 2 и на двата дублиращи се резултата. Следващият най-висок резултат (Даниела) е класиран на 4-то място. Ранг 3 не е даден на никого.
    • Формулата RANK.AVG присвоява различен ранг на всеки дубликат зад кулисите (2 и 3 в този пример) и връща средната стойност на тези рангове (2,5). 3-тият ранг отново не е присвоен на никого.

    Как да използвате RANK в Excel - примери за формули

    Казват, че пътят към съвършенството е постлан с практика. Така че, за да научите по-добре как да използвате функцията RANK в Excel, самостоятелно или в комбинация с други функции, нека да разработим решения на няколко реални задачи.

    Как да класирате в Excel от най-ниската до най-високата стойност

    Както е показано в горния пример, за да подредите числата от най-високото до най-ниското, използвате една от формулите на Excel Rank със символа поръчка аргумент, зададен на 0 или пропуснат (по подразбиране).

    Да имате номер класирани спрямо други числа, подредени в възходящ ред , поставете 1 или всяка друга ненулева стойност в незадължителния трети аргумент.

    Например, за да класирате времената на учениците в спринта на 100 метра, можете да използвате една от следните формули:

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

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

    Моля, обърнете внимание, че заключваме диапазона в ref аргумент чрез използване на абсолютни препратки към клетките, така че да не се променя, когато копираме формулата надолу по колоната.

    В резултат на това най-малката стойност (най-бързото време) е класирана на 1-во място, а най-голямата стойност (най-бавното време) получава най-ниския ранг от 6. На равните времена (B2 и B7) е даден един и същ ранг.

    Как да класифицирате данни в Excel уникално

    Както беше посочено по-рано, всички функции на Excel Rank връщат един и същ ранг за елементи с еднаква стойност. Ако не искате това, използвайте една от следните формули, за да разрешите ситуации с равен брой точки и да дадете уникален ранг към всяко число.

    Уникална класация от най-високата до най-ниската

    За да подредите резултатите по математика на нашите ученици в низходящ ред, използвайте тази формула:

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

    Уникална класация от най-ниска до най-висока

    За да подредите резултатите от състезанието на 100 метра във възходящ ред без дублирания, използвайте тази формула:

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

    Как работят тези формули

    Както може би сте забелязали, единствената разлика между двете формули е в поръчка аргумент на функцията RANK.EQ: пропуска се, за да се подредят стойностите в низходящ ред, а 1 - във възходящ ред.

    И в двете формули трикът се постига с функцията COUNTIF и умелото използване на относителни и абсолютни препратки към клетките. Накратко, използвате COUNTIF, за да разберете колко срещания на класираното число има в горните клетки, включително в клетката на числото. В най-горния ред, където въвеждате формулата, обхватът се състои от една единствена клетка ($B$2:B2). Но тъй като заключвате самопървата референция ($B$2), последната относителна референция (B2) се променя в зависимост от реда, в който е копирана формулата. Така за ред 7 обхватът се разширява до $B$2:B7 и стойността в B7 се сравнява с всяка от горните клетки.

    Следователно за всички 1-ви случаи COUNTIF връща 1 и в края на формулата изваждате 1, за да възстановите първоначалния ранг.

    За вторите срещания COUNTIF връща 2. Чрез изваждане на 1 се увеличава рангът с 1 точка, като по този начин се предотвратяват дублирания. Ако има 3 срещания на една и съща стойност, COUNTIF()-1 ще добави 2 към техния ранг и т.н.

    Алтернативно решение за прекъсване на връзките на Excel RANK

    Друг начин за еднозначно класиране на числата в Excel е чрез сумиране на две функции COUNTIF:

    • Първата функция определя колко стойности са по-големи или по-малки от числото, което трябва да се класира, в зависимост от това дали класирането е съответно низходящо или възходящо.
    • Втората функция (с "разширяващ се обхват" $B$2:B2, както в горния пример) получава броя на стойностите, равен на числото.

    Например, за да подредите числата по уникален начин от най-високото към най-ниското, ще използвате тази формула:

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

    Както е показано на екранната снимка по-долу, равенството е успешно решено и на всеки ученик е присвоен уникален ранг:

    Класиране в Excel въз основа на множество критерии

    Предишният пример показа две работещи решения за ситуация на равенство в Excel RANK. Въпреки това може да изглежда несправедливо, че еднакви числа се класират по различен начин само въз основа на позицията им в списъка. За да подобрите класирането, може да искате да добавите още един критерий, който да се вземе предвид в случай на равенство.

    В нашия примерен набор от данни нека съберем общите резултати в колона В и да изчислим ранга, както следва:

    • Първо, класирайте се с Резултат по математика (основни критерии)
    • Когато има равенство, прекъснете го с Общ резултат (вторични критерии)

    За да го направим, ще използваме обикновената формула RANK/RANK.EQ, за да намерим ранга, и функцията COUNTIFS, за да разделим равенството:

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

    В сравнение с горния пример тази формула за класиране е по-обективна: Тимоти е класиран на второ място, защото общият му резултат е по-висок от този на Джулия:

    Как работи тази формула

    Частта RANK от формулата е очевидна, а функцията COUNTIFS прави следното:

    • Първият criteria_range / критерии двойка ($B$2:$B$7,$B2) брои срещите на стойността, която класифицирате. Моля, обърнете внимание, че ние фиксираме обхват с абсолютни препратки, но не заключвайте критерии ($B2), така че формулата да проверява стойността във всеки ред поотделно.
    • Вторият criteria_range / критерии двойка ($C$2:$C$7,">"&$C2) открива колко общи оценки са по-големи от общата оценка на класираната стойност.

    Тъй като COUNTIFS работи с логиката AND, т.е. брои само клетките, които отговарят на всички зададени условия, тя връща 0 за Тимоти, тъй като никой друг ученик със същия резултат по математика няма по-висок общ резултат. Следователно рангът на Тимоти, върнат от RANK.EQ, остава непроменен. За Джулия функцията COUNTIFS връща 1, тъй като един ученик със същия резултат по математика има по-висок общ резултат, така че нейният ранг еАко още един ученик има същия резултат по математика и общ резултат, по-нисък от този на Тимоти и Джулия, неговият ранг ще бъде увеличен с 2 и т.н.

    Алтернативни решения за класиране на числа с множество критерии

    Вместо функцията RANK или RANK.EQ можете да използвате COUNTIF за проверка на основните критерии и COUNTIFS или SUMPRODUCT за решаване на проблема с равен брой точки:

    =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

    Резултатите от тези формули са точно същите, както е показано по-горе.

    Как да изчислим персентилния ранг в Excel

    В статистиката персентил (или сантили ) е стойността, под която попада определен процент от стойностите в дадена съвкупност от данни. Например, ако 70% от учениците са равни или по-ниски от вашия резултат на теста, вашият персентил е 70.

    За да получите персентилно класиране в Excel, използвайте функцията RANK или RANK.EQ с ненулева стойност. поръчка за подреждане на числата от най-малкото към най-голямото и след това разделя ранга на броя на числата. Формула за персентилния ранг на Excel е следната:

    RANK.EQ( topmost_cell , обхват ,1)/СЧИТАНЕ( обхват )

    За да се изчисли персентилният ранг на нашите ученици, формулата е следната:

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

    За да се показват правилно резултатите, не забравяйте да зададете Процент формат на клетките на формулата:

    Как да подредите числата в несъседни клетки

    В случаите, когато трябва да класирате неприлежащи клетки, подайте тези клетки директно в ref аргумента на вашата формула Excel Rank под формата на референтен съюз, като заключите референциите със знака $. Например:

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

    За да се предотвратят грешки в клетки, които не са подредени, обвийте функцията RANK във функцията IFERROR по следния начин:

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

    Обърнете внимание, че на дублиращото се число също се дава ранг, въпреки че клетка B5 не е включена във формулата:

    Ако трябва да класирате няколко неприлежащи клетки, горната формула може да стане твърде дълга. В този случай по-елегантно решение е да се дефинира именуван диапазон и да се направи препратка към това име във формулата:

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

    Как да класирате в Excel по групи

    Когато работите със записи, организирани в някаква структура от данни, данните могат да принадлежат към различни групи и може да искате да класирате числата във всяка група поотделно. Функцията RANK на Excel не може да реши това предизвикателство, затова ще използваме по-сложната формула SUMPRODUCT:

    Класиране по групи в низходящ поръчка:

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

    Класиране по групи в възходящ поръчка:

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

    Къде:

    • А2:А7 са групи, определени за номера.
    • C2:C7 са числа, които трябва да бъдат класирани.

    В този пример използваме първата формула, за да подредим числата във всяка група от най-голямото до най-малкото:

    Как работи тази формула

    По същество формулата оценява 2 условия:

    • Първо, проверявате групата (A2=$A$2:$A$7). Тази част връща масив от TRUE и FALSE въз основа на това дали даден елемент от обхвата принадлежи към същата група като A2.
    • Второ, проверявате резултата. За да подредите стойностите от най-голямата до най-малката ( низходящ ред ), използвайте условието (C2<$C$2:$C$11), което връща TRUE за клетките, по-големи или равни на C2, и FALSE в противен случай.

    Тъй като от гледна точка на Microsoft Excel TRUE = 1 и FALSE = 0, умножаването на двата масива дава масив от 1 и 0, в който 1 се връща само за редовете, в които са изпълнени и двете условия.

    След това SUMPRODUCT сумира елементите на масива с 1 и 0, като връща 0 за най-голямото число във всяка група. И добавяте 1 към резултата, за да започнете класирането с 1.

    Формулата, която подрежда числата в групите от най-малкото към най-голямото ( възходящ поръчка ) работи със същата логика. Разликата е, че SUMPRODUCT връща 0 за най-малкото число в определена група, тъй като нито едно число в тази група не отговаря на 2-ро условие (C2>$C$2:$C$7). Отново заменяте нулевия ранг с 1-ви ранг, като добавяте 1 към резултата на формулата.

    Вместо SUMPRODUCT можете да използвате функцията SUM, за да съберете елементите на масива. За целта обаче е необходимо да използвате формула за масив, която се попълва чрез Ctrl + Shift + Enter . Например:

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

    Как да класираме положителните и отрицателните числа поотделно

    Ако списъкът ви с числа съдържа както положителни, така и отрицателни стойности, функцията RANK на Excel ще ги класира за нула време. Но какво ще стане, ако искате положителните и отрицателните числа да бъдат класирани поотделно?

    С числата в клетките от A2 до A10 използвайте една от следните формули, за да получите индивидуално класиране за положителни и отрицателни стойности:

    Подредете положителните числа в низходящ ред:

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

    Подредете положителните числа във възходящ ред:

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

    Подредете отрицателните числа в низходящ ред:

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

    Подредете отрицателните числа във възходящ ред:

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

    Резултатите ще изглеждат по подобен начин:

    Как работят тези формули

    Като начало нека да разнищим формулата, която подрежда положителните числа в низходящ поръчка:

    • В логическия тест на функцията IF се проверява дали числото е по-голямо от нула.
    • Ако числото е по-голямо от 0, функцията COUNTIF връща броя на стойностите, които са по-големи от класираното число.

      В този пример A2 съдържа второто по големина положително число, за което COUNTIF връща 1, което означава, че има само едно число, по-голямо от него. За да започнем класирането с 1, а не с 0, добавяме 1 към резултата от формулата, така че тя връща ранг 2 за A2.

    • Ако числото е по-голямо от 0, формулата връща празен низ ("").

    Формулата, която подрежда положителните числа в възходящ поръчката работи по малко по-различен начин:

    Ако числото е по-голямо от 0, първият COUNTIF получава общия брой на положителните числа в набора от данни, а вторият COUNTIF установява колко стойности са по-големи от това число. След това изваждате второто от първото и получавате желания ранг. В този пример има 5 положителни стойности, 1 от които е по-голяма от A2. Така че изваждате 1 от 5 и получавате ранг 4 за A2.

    Формулите за класиране на отрицателни числа се основават на подобна логика.

    Забележка. Всички горепосочени формули игнориране на нулеви стойности Защото 0 не принадлежи нито към множеството на положителните, нито към множеството на отрицателните числа. За да включите нулите в класирането си, заменете съответно>0 и =0 и <=0, където логиката на формулата го изисква.

    Например, за да подредите положителните числа и нулите от най-голямото до най-малкото, използвайте тази формула: =IF($A2>=0,COUNTIF($A$2:$A$10,">"&A2)+1,"")

    Как да класирате данни в Excel, като игнорирате нулеви стойности

    Както вече знаете, формулата RANK на Excel обработва всички числа: положителни, отрицателни и нули. Но в някои случаи искаме само да класираме клетки с данни, като игнорираме стойностите 0. В интернет можете да намерите няколко възможни решения за тази задача, но формулата RANK IF на Excel, според мен, е най-универсалната:

    Подредете числата в низходящ ред, като игнорирате нулата:

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

    Подредете числата във възходящ ред, като игнорирате нулата:

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

    Където B2:B10 е диапазонът от числа, които трябва да бъдат класирани.

    Най-хубавото на тази формула е, че тя работи чудесно както за положителни, така и за отрицателни числа, като оставя нулевите стойности извън класацията:

    Как работи тази формула

    На пръв поглед формулата може да изглежда малко сложна. При по-внимателно вглеждане логиката е много проста.

    Ето как формулата RANK IF на Excel подрежда числата от най-голямото до най-малкото, като не взема предвид нулите:

    • Първият IF проверява дали числото е 0 и ако е, връща празен низ:

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

    • Ако числото не е нула, втората функция IF проверява дали е по-голямо от 0 и ако е, обикновената функция RANK / RANK.EQ изчислява неговия ранг:

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

    • Ако числото е по-малко от 0, коригирате ранга с броя на нулите. В този пример има 4 положителни числа и 2 нули. Така че за най-голямото отрицателно число в B10 формулата RANK на Excel би върнала 7. Но ние пропускаме нулите и затова трябва да коригираме ранга с 2 точки. За целта изваждаме броя на нулите от ранга:

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

    Да, толкова е лесно! Формулата за подреждане на числата от най-малкото до най-голямото, като се игнорират нулите, работи по подобен начин и може да бъде добро упражнение за мозъка да изведе логиката ѝ :)

    Как да изчислим ранг в Excel по абсолютна стойност

    При работа със списък от положителни и отрицателни стойности може да се наложи числата да се подредят по абсолютните им стойности, като се игнорира знакът.

    Задачата може да бъде изпълнена с една от следните формули, в основата на които е функцията ABS, която връща абсолютната стойност на дадено число:

    Класация ABS в низходящ ред:

    =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

    Класирайте ABS във възходящ ред:

    =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

    В резултат на това отрицателните числа се класират така, сякаш са положителни числа:

    Как да получите N най-големи или най-малки стойности

    Ако желаете да получите действителен брой N на най-големите или най-малките стойности, а не тяхното класиране, използвайте съответно функцията LARGE или SMALL.

    Например можем да получим първите 3 резултата на нашите ученици по тази формула:

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

    Където B2:B7 е списъкът с резултати, а D3 е желаният ранг.

    Освен това можете да извлечете имената на учениците, като използвате формулата INDEX MATCH (при условие че няма дублиращи се резултати в топ 3):

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

    По подобен начин можете да използвате функцията SMALL, за да изтеглите долните 3 стойности:

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

    Ето как се прави класиране в Excel. За да разберете по-добре и вероятно да разработите обратно формулите, разгледани в този урок, можете да изтеглите нашата работна книга "Пример за класиране в Excel".

    Благодаря ви, че прочетохте, и се надявам да се видим в нашия блог следващата седмица!

    Майкъл Браун е отдаден технологичен ентусиаст със страст към опростяване на сложни процеси с помощта на софтуерни инструменти. С повече от десетилетие опит в технологичната индустрия, той е усъвършенствал уменията си в Microsoft Excel и Outlook, както и в Google Sheets и Docs. Блогът на Майкъл е посветен на споделянето на неговите знания и опит с други, предоставяйки лесни за следване съвети и уроци за подобряване на продуктивността и ефективността. Независимо дали сте опитен професионалист или начинаещ, блогът на Michael предлага ценни прозрения и практически съвети за извличане на максимума от тези основни софтуерни инструменти.