Isso requer que os resultados comecem pelo menos na segunda linha, apenas porque eu preciso de uma linha acima para a função COUNT ().
Também é uma fórmula de matriz:
=IF(LOOKUP(1,0/FREQUENCY(ROWS($1:1),COUNTIF($A$1:$A$10,">="&IF(NOT(ISNUMBER($A$1:$A$10)),$A$1:$A$10))),$A$1:$A$10)<>0,LOOKUP(1,0/FREQUENCY(ROWS($1:1),COUNTIF($A$1:$A$10,">="&IF(NOT(ISNUMBER($A$1:$A$10)),$A$1:$A$10))),$A$1:$A$10),LARGE(IF(ISNUMBER($A$1:$A$10),$A$1:$A$10),COUNT($C$1:$C1)+1))
Sendo um Array, use Ctrl-Shift-Enter ao sair do modo de edição. Se feito corretamente, o excel colocará {}
em torno da fórmula
Como funciona:
Pegamos a fórmula para classificar o texto e o fizemos encontrar somente os dados não numéricos LOOKUP(1,0/FREQUENCY(ROWS($1:1),COUNTIF($A$1:$A$10,">="&IF(NOT(ISNUMBER($A$1:$A$10)),$A$1:$A$10))),$A$1:$A$10)
Isso é feito no COUNTIF com a instrução IF ().
Isto retornará 0 após ordenar todo o número não numérico, então, quando for igual a 0, usaremos a função LARGE () somente nos dados numéricos. %código%.
Como COUNT () só contará o número, usamos isso como o nosso k no LARGE (). Contamos todos os números acima da célula atual e adicionamos 1 para obter o k adequado.