Excel - Agrupe linhas por coluna e classifique por outra coluna

0

Eu tenho uma planilha que contém uma coluna com as pessoas em seu CEP e outra com um ID que é atribuído a elas.

Gostaria de classificar essa folha pela coluna "ID", mas também ter todas as pessoas com o mesmo CEP agrupado.

Uma lista de prioridades de qual linha deve aparecer em seguida seria a seguinte.

  • A próxima ID mais baixa com o mesmo CEP que a entrada anterior.
  • O próximo ID mais baixo

Como uma implementação algorítmica, isso seria bastante simples, mas não consigo descobrir como fazer isso com as opções do Excel.

O que eu tentei e falhei é a primeira classificação por CEP e, em seguida, pelo ID, mas isso agrupa apenas os CEPs e classifica os IDs de cada CEP corretamente. Não faz o primeiro ID estar no topo, mas sim o primeiro código postal.

Eu também tentei criar grupos para cada CEP, mas se eu classificar por ID, os grupos não ficarão juntos.

Alguns dados de amostra seriam:

ID        ZIP

TR-002    7586 KO
TR-004    7896 KL
TR-007    7586 KO
TR-012    7493 KP
TR-088    6868 KK
TR-101    7493 KP

Qual eu quero classificado como:

ID        ZIP

TR-002    7586 KO
TR-007    7586 KO
TR-004    7896 KL
TR-012    7493 KP
TR-101    7493 KP
TR-088    6868 KK
    
por Roxor9999 13.07.2018 / 11:34

1 resposta

0

Eu mesmo encontrei a solução.

Primeiro, classifique pela ID e, em seguida, adicionei uma nova coluna com a seguinte fórmula:

=INDEX($B$1:$B$278,MIN(IF($I$2:$I$278=$I4,ROW($I$2:$I$278))))

Substitua os limites conforme necessário.

Como isso funciona é que ele pega uma lista de todas as linhas com o mesmo CEP (a instrução IF) e, em seguida, pega pelo menos uma delas (aquela com a ID mais baixa). Isso mapeia todos os IDs para o ID mais baixo com o mesmo CEP.

Eu classifico por essa nova coluna e, em seguida, a coluna ID e os dados estão na ordem que eu queria.

O motivo pelo qual eu pego o valor de ROW e uso o INDEX para convertê-lo de volta é porque meu ID pode conter caracteres não numéricos e a função MIN não funciona com esses.

    
por 23.07.2018 / 15:16