Página 1 de 1

Listagem com ocorrências múltiplas - PROCV com vários result

Enviado: 27 Set 2019 às 00:03
por matheusscherer
Olá a todos!

O desafio é o seguinte:

TENHO A LISTA ABAIXO:
CNPJ EQUIPAMENTO
1 A
2 A
3 A
3 B
3 C
4 A
5 B
6 A

AO INSERIR O CNPJ DESEJADO:
CNPJ
3

DEVE SER EXIBIDO OS VALORES ABAIXO:
EQUIPAMENTOS
A, B, C

Como obter os nomes dos equipamentos, em uma única célula fixa? No exemplo, o CNPJ 3 aparece três vezes na lista, cada uma das vezes com equipamentos diferentes. Logo, eu preciso saber que, para este CNPJ, os equipamentos são A, B, C.
Tentei usar o PROCV simples, porém ele pega apenas a primeira referência, excluindo as demais.

Um dificultante: a lista de CNPJs é uma power query gigante, com 20 mil linhas. Fórmulas matriciais podem travar o PC.

Re: Listagem com ocorrências múltiplas - PROCV com vários re

Enviado: 27 Set 2019 às 07:58
por FelipeMGarcia
Amigo,

Veja se o que fiz lhe ajuda, caso queira agradecer, clique na mãozinha.

Abs

Re: Listagem com ocorrências múltiplas - PROCV com vários re

Enviado: 27 Set 2019 às 10:16
por matheusscherer
Bom dia.
Na verdade, eu preciso que o resultado fique em uma única célula no final.

Sua solução está quase perfeita, o único porém é que você lançou cada ocorrencia em uma linha.
Preciso que todas as ocorrências fiquem em uma unica célula, separadas por virgula ou qualquer outro separador.

Isso é importante porque nem sempre haverão 3 ocorrencias diferentes para o mesmo cnpj. As vezes, só terão 1 ocorrencia, 2 ocorrencias, até 10 ocorrencias, então não posso ter um numero de linhas variados. A quantidade de linhas na minha planilha deve ser fixa. Por isso preciso incluir todas as ocorrencias de cada CNPJ em uma unica celula.

Obrigado!

Re: Listagem com ocorrências múltiplas - PROCV com vários re

Enviado: 27 Set 2019 às 11:16
por Estevaoba
Supondo que os CNPJ comecem em A2, tente esta fórmula matricial (Ctrl+Shift+Enter):
Código: Selecionar todos
=UNIRTEXTO("; ";1;SEERRO(ÍNDICE($B$2:$B$9;MENOR(SE($A$2:$A$9=3;LIN($A$2:$A$9)-1);1));"");SEERRO(ÍNDICE($B$2:$B$9;MENOR(SE($A$2:$A$9=3;LIN($A$2:$A$9)-1);2));"");SEERRO(ÍNDICE($B$2:$B$9;MENOR(SE($A$2:$A$9=3;LIN($A$2:$A$9)-1);3));""))
Note que para cada ocorrência, o argumento final da fórmula abaixo precisa ser inserido manualmente, no caso o 1 final:

SEERRO(ÍNDICE($B$2:$B$9;MENOR(SE($A$2:$A$9=3;LIN($A$2:$A$9)-1);1));"")

Fiz para 3 ocorrências, então para 10 ou mais, pode ser feito, mas dá trabalho.

E sugiro alterar o 3 do exemplo de CNPJ (em azul), para uma referência a uma célula e assim facilitar a busca para outros CNPJ.

Good luck!