Página 1 de 1

Lista Suspensa Condicional sem duplicatas por registro

Enviado: 12 Jun 2019 às 11:45
por Deiwid
Prezados(as) Colegas, bom dia.

Estou com um problema no excel para solucionar em meu trabalho que não encontro em lugar nenhum está solução.
Necessito de criar uma lista condicional com várias condicionantes, sem duplicatas, através de um registro de lançamento.
Veja sé possível resolver este problema através de formulas, e se não, veja se posso resolver com VBA.

BASE DE REGISTRO


MUNICÍPIO CONTRATO OBRA
Araguari 200.001 Calçamento em vias urbanas
Araguari 200.001 Pavimentação Asfáltica
Araguari 200.002 Unidade Básica de Saúde
Contagem 200.003 Etapa 1 - SES
Contagem 200.003 Etapa 2 - SES
Belo Horizonte 200.004 Reforma Prefeitura
Belo Horizonte 200.004 Reforma Ginásio
Belo Horizonte 200.005 Lagoinha SES
Belo Horizonte 200.006 Recapeamento SUDECAP
Belo Horizonte 200.006 Recapeamento BHTRANS
Mariana 200.007 Reforma Quadra Padre Viegas
Mariana 200.008 Construção Pátio Prefeitura

BASE DE TRABALHO DE ACORDO COM O REGISTRO (EXEMPLO)

LISTA 1 - LISTA DEFINIDA LISTA 2 - SE "ARAGUARI" LISTA 3 - SE "200.001" LISTA 3 - SE "200.002"
ARAGUARI 200.001 Calçamento em vias urbanas Unidade Básica de Saúde
200.002 Pavimentação Asfáltica

Segue também anexo o que preciso.

Aguardo com a colaboração dos colegas.

Atenciosamente,

Deiwid.

Re: Lista Suspensa Condicional sem duplicatas por registro

Enviado: 12 Jun 2019 às 14:55
por Estevaoba
Fiz com colunas auxiliares para listar valores únicos com fórmulas matriciais (Ao editar, confirme com Ctrl+Shift+Enter.):

Coluna K para municípios:
Código: Selecionar todos
K6=SEERRO(ÍNDICE($B$6:$B$100;CORRESP(1;(CONT.SE(K$5:K5;$B$6:$B$100)=0)*($B$6:$B$100<>"");0));"")
Copie para baixo.

Coluna L para contratos e Coluna M para obras:
Código: Selecionar todos
L6=SEERRO(ÍNDICE(C$6:C$17;CORRESP(1;(CONT.SE(L$5:L5;C$6:C$17)=0)*(C$6:C$17<>"")*(B$6:B$17=F$6);0));"")
Copie para baixo e para a coluna M.

Criei três intervalos dinâmicos nomeados com a fórmula abaixo no campo "Refere-se a":
Para municipio (sem acento)
=DESLOC(Plan1!$K$6;;;CONT.VALORES(Plan1!$K$6:$K$17)-CONT.SE(Plan1!$K$6:$K$17;"");1)
E para contrato e obra, a mesma fórmula, mudando para as colunas L e M respectivamente.

E na primeira validação de dados (municípios), no campo "Fonte" digito o nome do intervalo nomeado correspondente:
=municipio
Repito para as validações de dados para contrato e obra, usando o intervalo nomeado correspondente.

Confira se atende no anexo.

Good luck!