Assumindo que seus dados são (conforme mostrado) em A1: B3
-
Em D1 , digite
=SUMPRODUCT((A1>$A$1:$B$3)/COUNTIF($A$1:$B$3,$A$1:$B$3))
-
Preencha a fórmula até D3, e depois até E3.
Se você quiser substituir os dados classificados originais de forma destrutiva, prossiga para a etapa 3 opcional:
- Selecione + Copiar D1: E3 - > Cole como valores em A1.
Explicação da fórmula :
Existem duas partes fundamentais para entender essa fórmula.
-
(A1>$A$1:$B$3)
gera uma matriz de valores booleanos:TRUE
para valores em A1: B3 que são menores que A1,FALSE
para aqueles maiores que A1. Como essa matriz está sendo dividida na fórmula, o Excel converte esses valores booleanos em uns e zeros. -
SUMPRODUCT(1/COUNTIF($A$1:$B$3,$A$1:$B$3))
é uma construção usada para contar valores exclusivos em uma matriz. Isso funciona ponderando cada valor em1/(the number of times the number appears in the array)
. Isso garante que a soma de todos os valores associados a esse valor seja somada a1
. Pense desta maneira. Se X aparecer n vezes e cada vez for contado como1/n
, a soma dessas contagens serán*(1/n)=1
. Ou seja, cada valor único é contado apenas uma vez.
Portanto, com isso em mente, considere a fórmula de exemplo =SUMPRODUCT((B1>$A$1:$B$3)/COUNTIF($A$1:$B$3,$A$1:$B$3))
, que atribui o ID exclusivo 3
ao valor 2000
no exemplo. Passo a passo, é assim que a fórmula é avaliada:
-
=SUMPRODUCT((2000>{1001,1001,1002,2000,1002,1003})/COUNTIF($A$1:$B$3,$A$1:$B$3))
-
=SUMPRODUCT({TRUE,TRUE,TRUE,FALSE,TRUE,TRUE}/COUNTIF($A$1:$B$3,$A$1:$B$3))
-
=SUMPRODUCT({TRUE,TRUE,TRUE,FALSE,TRUE,TRUE}/COUNTIF({1001,1001,1002,2000,1002,1003},$A$1:$B$3))
-
=SUMPRODUCT({TRUE,TRUE,TRUE,FALSE,TRUE,TRUE}/{2,2,2,1,2,1})
-
=SUMPRODUCT({1/2,1/2,1/2,0/1,1/2,1/1})
-
=3