Excel - Classifique por fórmula quando houver valores duplicados

0

Meus dados serão alterados, portanto, estou usando listas dinâmicas. A classificação também precisa ser dinâmica. Eu não quero clicar na função de classificação interna.

Estou classificando dados dinâmicos por fórmula, mas falha quando os dados de classificação são os mesmos. Por exemplo:

A B Marham 240 Sigonella 400 Toulon 400 Ghedi 150 Lajes 2000 Nordholz 400

Classificando pela coluna B e retornando os valores da coluna A, o resultado deve ser:

Lajes 2000 Sigonella 400 Toulon 400 Nordholz 400 Marham 240 Ghedi 150

Nota: não me importo com a ordem dos valores duplicados entre eles (os "400" s).

Com esta fórmula: {=INDEX($A$1:$A$6, MATCH(SMALL(COUNTIF($B$1:$B$6, "<"&$B$1:$B$6), ROW(1:1)), COUNTIF($B$1:$B$6, "<"&$B$1:$B$6), 0))}

Os resultados são:

Lajes 2000 Sigonella 400 Sigonella 400 Sigonella 400 Marham 240 Ghedi 150

O MATCH está me atrapalhando. Como posso contornar isso?

    
por mechengr02 01.04.2016 / 16:28

4 respostas

0

Eis o que eu criei ... Não é exatamente o que eu estava procurando ... mas funcionou.

Usando os mesmos dados acima, alterei o INDEX para retornar a pontuação em vez das bases:

{=INDEX($B$1:$B$6, MATCH(SMALL(COUNTIF($B$1:$B$6, "<"&$B$1:$B$6), ROW(1:1)), COUNTIF($B$1:$B$6, "<"&$B$1:$B$6), 0))}

Em seguida, para retornar as bases, usei essa fórmula que retorna vários valores correspondentes:

{=index(A$1:A$6,small(if(b$1:b$6=b1,row(b$1:b$6)),countif(b$1:b$6,b1)))}

Eu ainda gostaria de ter a fórmula original funcionando por conta própria, se alguém tiver uma sugestão.

    
por 04.04.2016 / 20:49
0

Você pode contornar duplicatas adicionando uma coluna oculta C, onde você adiciona a seus valores alguns números muito pequenos, pequenos o suficiente para não serem obtidos por outros meios e para não interferir com os valores originais, que permitem diferenciar entre duplicatas , por exemplo

  A          B          C
Marham      240      240,0001
Sigonella   400      400,0002
Toulon      400      400,0003
Ghedi       150      150,0004
Lajes      2000     2000,0005
Nordholz    400      400,0006

Então você apenas classifica pelos valores na coluna C

Como alternativa, se você não quiser colunas ocultas, poderá colocar os valores assim:

  A            B
Marham      240,0001
Sigonella   400,0002
Toulon      400,0003
Ghedi       150,0004
Lajes      2000,0005
Nordholz    400,0006

mas formata os campos para exibir valores numéricos com precisão de 0 dígito, então o excel mantém seus valores detalhados, mas os exibe como:

  A          B
Marham      240
Sigonella   400
Toulon      400
Ghedi       150
Lajes      2000
Nordholz    400
    
por 23.10.2016 / 14:54
-1

Eu sei que isso foi para sempre, mas as fórmulas nas outras respostas não funcionaram para mim. No entanto, consegui que funcionasse com algumas pequenas modificações:

{=INDEX($A$1:$A$7,SMALL(IF(B$1:B$6=B1,ROW(B$1:B$6)),COUNTIF(B1:B$6,B1)))}
    
por 08.07.2017 / 17:27
-3

Que tal =sort(a2:b7,2,true) na célula C2 ?

    
por 20.12.2017 / 21:44