Encontre o maior valor, Nth maior e outros antes dele? (ignorando duplicatas) [duplicado]

3

Então, eu tenho uma coluna que diz A:

I
15
0
3
15
M
8
0
8
21
Q
0
5
0
0

Eu posso encontrar o maior valor com = MAX (A1: A100) Eu posso encontrar o menor valor com = SMALL (A1: A100,1)

Como faço para encontrar o antes do maior e o anterior? Eu posso usar Large para chamar o valor N, mas como eu sei quantos valores N a função conta para que eu possa saber quais posições ela usa referem-se aos 3 últimos (o maior e o 2 antes)?

Ignorando duplicatas - no exemplo, o maior é 21, o anterior é 15 e antes disso é 8. Se eu fizer = LARGE (A1: A100,3), ele retornará 15, pois há dois deles na coluna. E estou procurando o 8 como o terceiro maior valor.

Abaixo, você encontrará as pessoas úteis da Internet que forneceram uma Tabela Dinâmica, uma solução de Fórmula de Matriz, e finalmente consegui fazer uma fórmula simples.

Você pode fornecer vba para o trabalho se você insistir que temos tudo, caso contrário já existe o suficiente.

    
por helena4 08.12.2015 / 11:51

4 respostas

2

Com toda a ajuda legal que eu tenho conseguido isso me fez pensar se eu posso fazer o que a tabela dinâmica faz e eu vim até isso: (mesmo no meu próprio LOL)

=IF(COUNTIF($A$1:A1,A1)<=1,A1,"")

Criar uma coluna paralela aos dados de interesse resolve-a. (por exemplo, cole em C1 e copie para baixo)

Ele fornece a lista inicial desiludida da qual você pode basear grandes e pequenos. Como uma solução simples, não deve interferir com qualquer material volátil que você possa ter em seus documentos. E eu, pelo menos, posso viver sem o vba. Quaisquer voltas inesperadas devem ser contáveis com IFERROR, caso haja tipos de dados mistos.

    
por 08.12.2015 / 15:20
4

Use uma Tabela Dinâmica para obter rapidamente uma versão desduplicada de sua lista (basta adicionar sua coluna a Rótulos de Linha ) e usar as funções LARGE e SMALL na lista desduplicada. :

=LARGE(D4:D9,3)

Se desejar, você pode arrumar a Tabela Dinâmica removendo o Grand Total e alternando Cabeçalhos de campo para que apenas mostre sua lista desiludida.

    
por 08.12.2015 / 12:42
3

Com dados na coluna A como:

EmB1digite:

=MAX(A:A)

EmB2,insiraafórmuladamatriz:

=MAX(IF(A$1:A$10<B1,A$1:A$10))

CopieB2parabaixoatéondeprecisar.

FórmulasdematrizdevemserdigitadascomCtrl+Deslocar+EnteremvezdeapenasoEntertecla.

    
por 08.12.2015 / 13:26
-1

@ helena4 Experimente esta fórmula de matriz

=LARGE(IF(A1:A15 < LARGE(A1:A15,1),A1:A15),3)

Em seguida, pressione Ctrl+Shift+Enter

ele irá ignorar as duplicatas.

    
por 08.12.2015 / 13:21