
Estou tentando criar uma lista suspensa dependente para uma escola secundária. O usuário irá selecionar a célula A1, clicar no Corredor 3 (por exemplo), a seguir o usuário irá clicar novamente na célula A1 e então selecionar o número da Sala, 325 (por exemplo). O resultado final deve ser que a célula A1 mostre 325. Posso criar a primeira lista suspensa, mas é na segunda parte que estou tendo grandes problemas. Estou usando o Excel 2010. Qualquer ajuda será apreciada. Obrigado
Responder1
Duvido que seja possível fazer isso na mesma célula (A1 para o primeiro item e novamente na mesma célula para o segundo item). Eu mesmo tive um problema semelhante eessefoi o que usei para resolver isso. Agora tenho vários menus suspensos dependentes uns dos outros, na primeira planilha da pasta de trabalho do Excel que alguns dos meus colegas estão usando para "preencher o formulário" :)Aquitambém é um bom exemplo de como resolver esse problema.
Tabela de exemplo que pode ser algo que você precisa
A B
HALLWAY ROOM
Hallway 3 353
Hallway 3 325
Hallway 1 157
Hallway 1 124
Hallway 2 234
Hallway 2 265
Crie duas listas suspensas.
A primeira lista suspensa contém valores distintos exclusivos da coluna A. A segunda lista suspensa contém valores distintos exclusivos da coluna B, com base no valor escolhido na primeira lista suspensa.
Crie um intervalo nomeado dinâmico em Fórmulas > Gerenciador de nomes > Novo > nomeie-o hallway
> coloque =OFFSET(Sheet1!$A$2,0,0,COUNTA(Sheet1!$A$2:$A$1000))
no campo "Refere-se a:" > Fechar
Crie uma lista distinta exclusiva da coluna A. Selecione Planilha2 > selecione A2 > digite "=INDEX(hallway,MATCH(0,COUNTIF($A$1:A1,hallway),0))"
+ CTRL + SHIFT + ENTER > Copie a célula A2 e cole-a conforme necessário.
Crie um intervalo nomeado dinâmico para obter uma lista distinta exclusiva em Fórmulas > Gerenciador de nomes > Novo > nomeie-o uniqhall
> coloque =OFFSET(Sheet2!$A$2, 0, 0, COUNT(IF(Sheet2!$A$2:$A$1000="", "", 1)), 1)
no campo "Refere-se a:" > Fechar
Criar lista suspensa> Selecionar Planilha1> Selecionar célula D2> Clique em Dados> botão Validação de dados> Validação de dados> Permitir: Lista> Fonte: =uniqhall
> Ok
Lista secundária exclusiva baseada em apenas um valor de célula escolhido na primeira lista suspensa.
Crie um intervalo nomeado dinâmico em Fórmulas > Gerenciador de nomes > Novo > nomeie-o room
> coloque =OFFSET(Sheet1!$B$2,0,0,COUNTA(Sheet1!$B$2:$B$1000))
no campo "Refere-se a:" > Fechar
Crie uma lista distinta exclusiva da coluna B. Selecione Planilha2 > selecione B2 > digite "=INDEX(room, MATCH(0, COUNTIF($B$1:B1, room)+(order<>Sheet1!$D$2), 0))"
+ CTRL + SHIFT + ENTER > Copie a célula B2 e cole-a conforme necessário.
Crie um intervalo nomeado dinâmico para obter uma lista distinta exclusiva em Fórmulas > Gerenciador de nomes > Novo > nomeie-o uniqroom
> coloque =OFFSET(Sheet2!$B$2, 0, 0, COUNT(IF(Sheet2!$B$2:$B$1000="", "", 1)), 1)
no campo "Refere-se a:" > Fechar
Criar lista suspensa > Selecionar Planilha1 > Selecionar célula D5 > Relógio nos Dados > Botão de validação de dados > Validação de dados > Permitir: Lista > Fonte: =uniqroom
> Ok
Espero que isso resolva seu problema até algum ponto :)
Responder2
Você realmente não pode usar a mesma célula para isso.
O que você pode fazer é usar a célula ao lado. Embora pareça que a resposta de Robert Schmidt funcionará, um método alternativo (e, na minha opinião, mais simples) para o mesmo recurso serialistado aqui.
Ele usa o mesmo tipo de ideia, mas requer apenas uma fórmula única e simples. Pela descrição do seu problema, você realmente não precisa de intervalos dinâmicos (por mais legais que sejam).
A essência do método é organizar as seleções do usuário em uma única tabela com a primeira seleção à esquerda e, em seguida, cada uma das seleções subsequentes é listada em uma coluna diferente à direita.
por exemplo, Corredor #34 | Sala 1 | Sala 2 | Sala 3.....
Em seguida, usando o Gerenciador de nomes e a ferramenta de criação de nomes a partir da seleção, você atribui automaticamente cada corredor na primeira coluna como um 'Nome' aos quartos na mesma linha.
Finalmente, você usa o recurso Validação de dados por lista para criar suas listas suspensas, uma para a seleção do corredor e uma segunda para a seleção da sala. Você torna o segundo dependente do primeiro usando uma fórmula simples =INDIRETO na validação de dados da segunda coluna.
Eu sugiro ir até a seção de comentários, pois um usuário apontou que você pode usar a função =SUBSTITUTE para lidar com os espaços nos valores de Hallway e Room.