Funzione RANK di Excel e altri modi per calcolare il rango

  • Condividi Questo
Michael Brown

L'esercitazione spiega le specificità delle funzioni di classifica di Excel e mostra come stilare una classifica in Excel in base a più criteri, classificare i dati per gruppo, calcolare il rank percentile e altro ancora.

Quando è necessario determinare la posizione relativa di un numero in un elenco di numeri, il modo più semplice è ordinare i numeri in ordine crescente o decrescente. Se per qualche motivo l'ordinamento non è possibile, la formula Classifica in Excel è lo strumento perfetto per svolgere il lavoro.

    Funzione RANK di Excel

    La funzione RANK di Excel restituisce l'ordine (o rango) di un valore numerico rispetto ad altri valori dello stesso elenco. In altre parole, indica quale valore è il più alto, il secondo più alto, ecc.

    In un elenco ordinato, il rango di un certo numero corrisponde alla sua posizione. La funzione RANK di Excel può determinare il rango partendo dal valore più grande (come se fosse ordinato in ordine decrescente) o dal valore più piccolo (come se fosse ordinato in ordine crescente).

    La sintassi della funzione RANK di Excel è la seguente:

    RANK(numero, rif,[ordine])

    Dove:

    Numero (obbligatorio) - il valore di cui si vuole trovare il rango.

    Rif. (obbligatorio) - un elenco di valori numerici rispetto ai quali stilare una graduatoria. Può essere fornito come array di numeri o come riferimento all'elenco di numeri.

    Ordine (opzionale) - un numero che specifica come classificare i valori:

    • Se 0 o omesso, i valori vengono classificati in ordine decrescente, cioè dal più grande al più piccolo.
    • Se 1 o qualsiasi altro valore non nullo, i valori vengono classificati in ordine crescente, cioè dal più piccolo al più grande.

    Funzione RANK.EQ di Excel

    RANK.EQ è una versione migliorata della funzione RANK, introdotta in Excel 2010. Ha la stessa sintassi di RANK e funziona con la stessa logica: se più valori sono classificati allo stesso modo, a tutti questi valori viene assegnato il grado più alto (EQ sta per "uguale").

    RANK.EQ(numero, rif,[ordine])

    In Excel 2007 e versioni inferiori, si deve sempre utilizzare la funzione RANK. In Excel 2010, Excel 2013 e Excel 2016, si può scegliere tra RANK e RANK.EQ. Tuttavia, è consigliabile utilizzare RANK.EQ perché RANK può essere interrotto in qualsiasi momento.

    Funzione RANK.AVG di Excel

    RANK.AVG è un'altra funzione per trovare il grado in Excel, disponibile solo in Excel 2010, Excel 2013, Excel 2016 e successivi.

    Ha la stessa sintassi delle altre due funzioni:

    RANK.AVG(numero, rif,[ordine])

    La differenza è che se più di un numero ha lo stesso rango, il grado medio (AVG sta per "media").

    4 cose da sapere su RANK in Excel

    1. Qualsiasi formula di classifica in Excel funziona solo per i valori numerici: numeri positivi e negativi, zeri, valori di data e ora. I valori non numerici nella formula Rif. vengono ignorati.
    2. Tutte le funzioni RANK restituiscono lo stesso grado per i valori duplicati e saltano i gradi successivi, come mostrato nell'esempio seguente.
    3. In Excel 2010 e versioni successive, la funzione RANK è stata sostituita da RANK.EQ e RANK.AVG. Per compatibilità, RANK funziona ancora in tutte le versioni di Excel, ma potrebbe non essere più disponibile in futuro.
    4. Se numero non si trova all'interno di Rif. , qualsiasi funzione Rank di Excel restituirebbe l'errore #N/A.

    Formula di base per le classifiche di Excel (dalla più alta alla più bassa)

    Per capire meglio come classificare i dati in Excel, date un'occhiata a questa schermata:

    Tutte e tre le formule classificano i numeri della colonna B in ordine decrescente (il ordine argomento omesso):

    In tutte le versioni di 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)

    La differenza sta nel modo in cui queste formule elaborano i valori duplicati. Come si vede, lo stesso punteggio appare due volte, nelle celle B5 e B6, il che influisce sulla successiva classificazione:

    • Le formule RANK e RANK.EQ assegnano un rango di 2 a entrambi i punteggi duplicati. Il prossimo punteggio più alto (Daniela) è classificato al quarto posto. Un rango di 3 non viene assegnato a nessuno.
    • La formula RANK.AVG assegna un grado diverso a ogni duplicato dietro le quinte (2 e 3 in questo esempio) e restituisce la media di questi gradi (2,5). Anche in questo caso, il terzo grado non è assegnato a nessuno.

    Come utilizzare RANK in Excel - esempi di formule

    Per imparare meglio a usare la funzione RANK in Excel, da sola o in combinazione con altre funzioni, cerchiamo di risolvere alcuni compiti reali.

    Come classificare in Excel dal più basso al più alto

    Come mostrato nell'esempio precedente, per classificare i numeri dal più alto al più basso, si utilizza una delle formule di Excel Rank con l'opzione ordine impostato a 0 o omesso (valore predefinito).

    Per avere numero classificati rispetto ad altri numeri ordinati in ordine ascendente , inserire 1 o qualsiasi altro valore non nullo nel terzo argomento opzionale.

    Ad esempio, per classificare i tempi di sprint sui 100 metri degli studenti, è possibile utilizzare una delle formule seguenti:

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

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

    Si prega di prestare attenzione al fatto che la gamma viene bloccata nella sezione Rif. utilizzando riferimenti assoluti alle celle, in modo che non cambi quando si copia la formula lungo la colonna.

    Il risultato è che il valore più basso (tempo più veloce) viene classificato al primo posto e il valore più grande (tempo più lento) ottiene il rango più basso, pari a 6. Ai tempi uguali (B2 e B7) viene assegnato lo stesso rango.

    Come classificare i dati in Excel in modo univoco

    Come sottolineato in precedenza, tutte le funzioni di classifica di Excel restituiscono lo stesso grado per elementi di uguale valore. Se non si vuole questo, si può utilizzare una delle seguenti formule per risolvere le situazioni di spareggio e dare un valore di rango unico a ciascun numero.

    Classifica unica dal più alto al più basso

    Per classificare i punteggi di matematica dei nostri studenti in ordine decrescente, utilizzare questa formula:

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

    Classifica unica dal più basso al più alto

    Per classificare i risultati della gara dei 100 metri in ordine crescente e senza duplicati, utilizzare questa formula:

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

    Come funzionano queste formule

    Come si sarà notato, l'unica differenza tra le due formule è il termine ordine argomento della funzione RANK.EQ: omesso per classificare i valori in modo decrescente, 1 per classificare in modo crescente.

    In entrambe le formule, è la funzione COUNTIF, con l'uso intelligente dei riferimenti relativi e assoluti alle celle, a fare la differenza. In breve, si usa COUNTIF per scoprire quante occorrenze del numero da classificare ci sono nelle celle precedenti, compresa la cella del numero. Nella riga più in alto in cui si inserisce la formula, l'intervallo è costituito da una sola cella ($B$2:B2). Ma poiché si blocca solo la cellaIl primo riferimento ($B$2), l'ultimo riferimento relativo (B2) cambia in base alla riga in cui viene copiata la formula. Quindi, per la riga 7, l'intervallo si espande a $B$2:B7 e il valore in B7 viene confrontato con ciascuna delle celle precedenti.

    Di conseguenza, per tutte le prime occorrenze, COUNTIF restituisce 1; e si sottrae 1 alla fine della formula per ripristinare il grado originale.

    Per le seconde occorrenze, COUNTIF restituisce 2. Sottraendo 1 si incrementa la classifica di 1 punto, evitando così i duplicati. Se si verificano 3 occorrenze dello stesso valore, COUNTIF()-1 aggiungerà 2 alla loro classifica, e così via.

    Soluzione alternativa per rompere i legami RANK di Excel

    Un altro modo per classificare i numeri in Excel in modo univoco è sommare due funzioni COUNTIF:

    • La prima funzione determina quanti valori sono maggiori o minori del numero da classificare, a seconda che si tratti di una classifica discendente o ascendente.
    • La seconda funzione (con il "range di espansione" $B$2:B2 come nell'esempio precedente) ottiene il numero di valori pari al numero.

    Ad esempio, per classificare i numeri in modo univoco dal più alto al più basso, si utilizza questa formula:

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

    Come mostrato nella schermata sottostante, il tie-break viene risolto con successo e a ogni studente viene assegnata una posizione unica:

    Classificazione in Excel basata su più criteri

    L'esempio precedente ha dimostrato due soluzioni funzionanti per una situazione di parità in Excel RANK. Tuttavia, può sembrare ingiusto che numeri uguali siano classificati in modo diverso solo in base alla loro posizione nell'elenco. Per migliorare la classifica, si può aggiungere un altro criterio da considerare in caso di parità.

    Nel nostro set di dati di esempio, sommiamo i punteggi totali nella colonna C e calcoliamo il rango come segue:

    • Per prima cosa, classificarsi con Punteggio in matematica (criteri principali)
    • Quando c'è un pareggio, si può rompere con Punteggio totale (criteri secondari)

    Per farlo, utilizzeremo una normale formula RANK/RANK.EQ per trovare il rango e la funzione COUNTIFS per rompere un pareggio:

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

    Rispetto all'esempio precedente, questa formula di classificazione è più oggettiva: Timothy è al secondo posto perché il suo punteggio totale è superiore a quello di Julia:

    Come funziona questa formula

    La parte RANK della formula è ovvia e la funzione COUNTIFS esegue quanto segue:

    • Il primo intervallo_di_criteri / criteri ($B$2:$B$7,$B2) conta le occorrenze del valore che si sta classificando. Si noti che fissiamo il parametro gamma con riferimenti assoluti, ma non bloccare l'elemento criteri ($B2), in modo che la formula controlli il valore di ogni singola riga.
    • Il secondo intervallo_di_criteri / criteri pair ($C$2:$C$7,">"&$C2) scopre quanti punteggi totali sono maggiori del punteggio totale del valore da classificare.

    Poiché COUNTIFS lavora con la logica AND, cioè conta solo le celle che soddisfano tutte le condizioni specificate, restituisce 0 per Timothy poiché nessun altro studente con lo stesso punteggio in matematica ha un punteggio totale più alto. Di conseguenza, la posizione di Timothy restituita da RANK.EQ rimane invariata. Per Julia, la funzione COUNTIFS restituisce 1 perché uno studente con lo stesso punteggio in matematica ha un totale più alto, quindi il suo numero di posizione in classifica èSe un altro studente avesse lo stesso punteggio in matematica e un punteggio totale inferiore a quello di Timothy e Julia, la sua posizione in classifica verrebbe incrementata di 2, e così via.

    Soluzioni alternative per classificare i numeri con criteri multipli

    Invece della funzione RANK o RANK.EQ, si potrebbe usare COUNTIF per controllare i criteri principali e COUNTIFS o SUMPRODUCT per risolvere i casi di parità:

    =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

    Il risultato di queste formule è esattamente uguale a quello mostrato sopra.

    Come calcolare il percentile in Excel

    In statistica, un percentile (o centile ) è il valore al di sotto del quale si colloca una certa percentuale di valori in un dato insieme di dati. Ad esempio, se il 70% degli studenti ha un punteggio uguale o inferiore al vostro test, il vostro grado percentile è 70.

    Per ottenere il grado percentile in Excel, utilizzare la funzione RANK o RANK.EQ con un valore diverso da zero ordine per classificare i numeri dal più piccolo al più grande e poi dividere il rango per il numero di numeri. Quindi, l'argomento generico Formula del grado percentile di Excel è la seguente:

    RANK.EQ( cella_più_alta , gamma ,1)/COUNT( gamma )

    Per calcolare il percentile dei nostri studenti, la formula assume la forma seguente:

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

    Per visualizzare correttamente i risultati, assicurarsi di impostare il parametro Percentuale alle celle della formula:

    Come classificare i numeri in celle non adiacenti

    Nel caso in cui sia necessario classificare celle non contigue, fornire tali celle direttamente nel file Rif. della formula di Excel Rank sotto forma di unione di riferimenti, bloccando i riferimenti con il segno $. Ad esempio:

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

    Per evitare errori in celle non classificate, avvolgere RANK nella funzione IFERROR, in questo modo:

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

    Si noti che anche un numero duplicato viene classificato, sebbene la cella B5 non sia inclusa nella formula:

    Se è necessario classificare più celle non contigue, la formula di cui sopra potrebbe diventare troppo lunga. In questo caso, una soluzione più elegante sarebbe quella di definire un intervallo con nome e fare riferimento a tale nome nella formula:

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

    Come classificare in Excel per gruppi

    Quando si lavora con voci organizzate in un qualche tipo di struttura di dati, è possibile che i dati appartengano a vari gruppi e che si desideri classificare i numeri all'interno di ciascun gruppo individualmente. La funzione RANK di Excel non è in grado di risolvere questo problema, pertanto si utilizzerà una formula SUMPRODUCT più complessa:

    Classifica per gruppo in discendente ordine:

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

    Classifica per gruppo in ascendente ordine:

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

    Dove:

    • A2:A7 sono gruppi assegnati a numeri.
    • C2:C7 sono numeri da classificare.

    In questo esempio, utilizziamo la prima formula per classificare i numeri di ciascun gruppo dal più grande al più piccolo:

    Come funziona questa formula

    In sostanza, la formula valuta 2 condizioni:

    • Innanzitutto, si controlla il gruppo (A2=$A$2:$A$7). Questa parte restituisce una matrice di VERO e FALSO in base all'appartenenza di un elemento dell'intervallo allo stesso gruppo di A2.
    • In secondo luogo, si controlla il punteggio. Per classificare i valori dal più grande al più piccolo ( ordine decrescente ), utilizzare la condizione (C2<$C$2:$C$11), che restituisce VERO per le celle maggiori o uguali a C2, FALSO altrimenti.

    Poiché in termini di Microsoft Excel, VERO = 1 e FALSO = 0, moltiplicando i due array si ottiene un array di 1 e 0, in cui 1 viene restituito solo per le righe in cui sono soddisfatte entrambe le condizioni.

    Quindi, SUMPRODUCT somma gli elementi dell'array degli 1 e degli 0, restituendo 0 per il numero più grande in ciascun gruppo. E si aggiunge 1 al risultato per iniziare la classifica con 1.

    La formula che classifica i numeri all'interno dei gruppi dal più piccolo al più grande ( ascendente ordine ) funziona con la stessa logica. La differenza è che SUMPRODUCT restituisce 0 per il numero più piccolo di un particolare gruppo, poiché nessun numero di quel gruppo soddisfa la seconda condizione (C2>$C$2:$C$7). Anche in questo caso, si sostituisce il grado zero con il primo grado aggiungendo 1 al risultato della formula.

    Invece di SUMPRODUCT, è possibile utilizzare la funzione SOMMA per sommare gli elementi della matrice, ma ciò richiede l'utilizzo di una formula di matrice, completata con Ctrl + Maiusc + Invio. Ad esempio:

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

    Come classificare separatamente i numeri positivi e negativi

    Se il vostro elenco di numeri contiene sia valori positivi che negativi, la funzione RANK di Excel li classificherà tutti in un batter d'occhio. Ma cosa succede se volete che i numeri positivi e negativi siano classificati separatamente?

    Con i numeri nelle celle da A2 a A10, utilizzare una delle seguenti formule per ottenere una classifica individuale per i valori positivi e negativi:

    Classifica i numeri positivi in senso decrescente:

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

    Classifica i numeri positivi in ordine crescente:

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

    Classifica i numeri negativi in senso decrescente:

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

    Classifica i numeri negativi in ordine crescente:

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

    I risultati saranno simili a questo:

    Come funzionano queste formule

    Per iniziare, analizziamo la formula che classifica i numeri positivi in discendente ordine:

    • Nel test logico della funzione IF, si controlla se il numero è maggiore di zero.
    • Se il numero è maggiore di 0, la funzione COUNTIF restituisce il conteggio dei valori superiori al numero da classificare.

      In questo esempio, A2 contiene il secondo numero positivo più alto, per il quale COUNTIF restituisce 1, il che significa che c'è un solo numero superiore. Per iniziare la nostra classifica con 1 e non con 0, aggiungiamo 1 al risultato della formula, in modo da restituire un rango di 2 per A2.

    • Se il numero è maggiore di 0, la formula restituisce una stringa vuota ("").

    La formula che classifica i numeri positivi in ascendente L'ordine funziona in modo leggermente diverso:

    Se il numero è maggiore di 0, il primo COUNTIF ottiene il conteggio totale dei numeri positivi nel set di dati e il secondo COUNTIF scopre quanti valori sono maggiori di quel numero. Quindi, si sottrae il secondo dal primo e si ottiene il rango desiderato. In questo esempio, ci sono 5 valori positivi, di cui 1 è maggiore di A2. Quindi, si sottrae 1 da 5, ottenendo così un rango di 4 per A2.

    Le formule per classificare i numeri negativi si basano su una logica simile.

    Nota: tutte le formule di cui sopra ignorare i valori zero perché lo 0 non appartiene né all'insieme dei numeri positivi né a quello dei numeri negativi. Per includere gli zeri nella vostra classifica, sostituite>0 e =0 e <=0, rispettivamente, dove la logica della formula lo richiede.

    Ad esempio, per classificare i numeri positivi e gli zeri dal più grande al più piccolo, utilizzare questa formula: =IF($A2>=0,COUNTIF($A$2:$A$10,">"&A2)+1,"")

    Come classificare i dati in Excel ignorando i valori zero

    Come già sapete, la formula RANK di Excel gestisce tutti i numeri: positivi, negativi e zeri. In alcuni casi, però, vogliamo solo classificare le celle con dati che ignorano i valori 0. Sul web si possono trovare alcune soluzioni possibili per questo compito, ma la formula RANK IF di Excel, a mio avviso, è la più universale:

    Classifica i numeri decrescenti ignorando lo zero:

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

    Classifica i numeri in ordine crescente, ignorando lo zero:

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

    Dove B2:B10 è l'intervallo di numeri da classificare.

    L'aspetto migliore di questa formula è che funziona perfettamente sia per i numeri positivi che per quelli negativi, lasciando i valori zero fuori classifica:

    Come funziona questa formula

    A prima vista, la formula può sembrare un po' complicata. A uno sguardo più attento, la logica è molto semplice.

    Ecco come la formula RANK IF di Excel classifica i numeri dal più grande al più piccolo ignorando gli zeri:

    • Il primo IF controlla se il numero è 0 e, in caso affermativo, restituisce una stringa vuota:

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

    • Se il numero non è zero, il secondo IF controlla se è maggiore di 0 e, in caso affermativo, una normale funzione RANK / RANK.EQ ne calcola il rango:

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

    • Se il numero è inferiore a 0, si aggiusta la classifica in base al numero di zeri. In questo esempio, ci sono 4 numeri positivi e 2 zeri. Quindi, per il numero negativo più grande in B10, una formula RANK di Excel restituirebbe 7. Ma non ci sono zeri e quindi dobbiamo aggiustare la classifica di 2 punti. Per questo, sottraiamo il numero di zeri dalla classifica:

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

    La formula per ordinare i numeri dal più piccolo al più grande, ignorando gli zeri, funziona in modo simile e potrebbe essere un buon esercizio per dedurre la sua logica :)

    Come calcolare il rango in Excel in base al valore assoluto

    Quando si ha a che fare con un elenco di valori positivi e negativi, può essere necessario classificare i numeri in base ai loro valori assoluti, ignorando il segno.

    Il compito può essere svolto con una delle formule seguenti, il cui cuore è la funzione ABS che restituisce il valore assoluto di un numero:

    Classifica ABS decrescente:

    =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

    Classifica ABS crescente:

    =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

    Di conseguenza, i numeri negativi vengono classificati come se fossero numeri positivi:

    Come ottenere gli N valori più grandi o più piccoli

    Se si desidera ottenere un numero N effettivo dei valori più grandi o più piccoli piuttosto che la loro classifica, utilizzare rispettivamente la funzione GRANDE o PICCOLA.

    Ad esempio, possiamo ottenere i 3 migliori punteggi dei nostri studenti con questa formula:

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

    Dove B2:B7 è l'elenco dei punteggi e D3 è la classifica desiderata.

    Inoltre, è possibile recuperare i nomi degli studenti utilizzando la formula INDEX MATCH (a condizione che non ci siano punteggi doppi nei primi 3):

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

    Allo stesso modo, è possibile utilizzare la funzione SMALL per estrarre i 3 valori inferiori:

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

    Per comprendere meglio e probabilmente decodificare le formule discusse in questo tutorial, potete scaricare la nostra cartella di lavoro Sample Rank Excel.

    Vi ringrazio per la lettura e spero di vedervi sul nostro blog la prossima settimana!

    Michael Brown è un appassionato di tecnologia dedicato con una passione per la semplificazione di processi complessi utilizzando strumenti software. Con oltre un decennio di esperienza nel settore tecnologico, ha affinato le sue competenze in Microsoft Excel e Outlook, nonché in Fogli Google e Documenti. Il blog di Michael è dedicato alla condivisione delle sue conoscenze e competenze con gli altri, fornendo suggerimenti e tutorial facili da seguire per migliorare la produttività e l'efficienza. Che tu sia un professionista esperto o un principiante, il blog di Michael offre spunti preziosi e consigli pratici per ottenere il massimo da questi strumenti software essenziali.