7
respostas

validação condicional

quero criar uma validação que modifique as validações posteriores para um controle financeiro. exemplo na primeira coluna tem o tipo de anotação (= lista > receita ou divida ou custo) conforme a resposta da primeira lista, na coluna em seguida ele envia para a categoria correspondente (se receita, lista > atendimento, salario, bico, etc; se divida, lista> empréstimo, carne, etc; se custo=lista > aluguel, material de trabalho, curso, etc) se possível, gostaria também de criar uma coluna com uma formula que já determinasse se o valor é positivo ou negativo conforme o tipo de anotação (se receita=+, se divida ou custo= - como posso criar essa validação?

7 respostas

Olá, Sérgio. Não entendi 100% seu questionamento. Pelo menos não o exemplo que mencionou.

Da parte que entendi, como sugestão, sugiro criar em uma coluna separada da(s) tabela(s) principal(ais) da sua planilha, a lista de dados que você quer criar como itens possíveis da validação de dados.

Ao criar uma lista de valores, você pode selecionar estas células na validação de dados ao colocar como critério de validação, a opção lista e como fonte, os dados selecionados.

Você pode até ocultar a coluna em que tenha estas células, posteriormente.

Em resumo, deixe toda a complexidade (cálculos) nas células e, na validação de dados, apenas selecione estas células.

Você está querendo criar uma lista de dados validados com base em um valor de uma célula anterior (que também é uma lista de dados validados)?

A ideia seria selecionar um subdomínio de uma lista de dados dependendo do que o usuário selecione em outra lista de dados?

Oi Jorge. Acho que a ideia é essa. Tentarei dar um exemplo mais lúdico e claro: A primeira coluna poderia ser a de sanduíches dum cardápio e a lista de dados teria três opções ( por exemplo, hambúrguer, cachorro quente e buraco quente) A segunda coluna teria os acompanhamentos, variando conforme o que se selecionou na coluna anterior ( por exemplo, pra hambúrguer, viria uma lista com queijo, bacon ou vegetariano; para cachorro quente, com molho, batata palha e duplo e assim por diante)

Oi Sergio tudo bem?

Só com validação condicional você não consegue fazer isso. Você teria que usar fórmulas ou então VBA para poder fazer.

Se quiser posso dar um exemplo usando fórmulas ou VBA , mas se quiser exemplo usando VBA só vou conseguir te dar o exemplo de noite porque estou num local onde o computador é linux e não tem excel.

Olá, pessoal.

Olha, na verdade é possível sim sem usar VBA! Eu só tou com preguiça de explicar e com falta de tempo porque é simples de fazer mas exige uma fórmula num intervalo nomeado de células. Enfim, vou ter de escrever um pouco os passos e eu preciso de um PC pra fazer o passo a passo à medida que eu vou fazendo a planilha.

Se eu conseguir usar hoje à tarde, eu explico. Beleza?

Vou explicar assumindo que você conhece nomeação de células, tudo bem? (Que também é simples, mas seria algo a mais pra explicar).

Abraços a todos.

Bom, é o seguinte.

Imagine duas tabelas principais:

  • Uma com a origem dos dados da primeira e segunda validação de dados (de G7:J12), onde de E2:H2 é o intervalo das categorias (imagine os sanduíches do seu exemplo) e de E3:H7 são os dados das subcategorias (os ingredientes opcionais, específicos para cada sanduíche).

  • Outra com a tabela que vai aproveitar as duas validações de dados (tanto dos sanduíches, quanto dos opcionais). Esta tabela está, no exemplo, no intervalo de A3:B7.

DICA: Inicialmente, você pode se abstrair e se "preocupar" somente com as células A3 e B3. Se tudo der certo, basta selecionar ambas as células e arrastar pra baixo (no exemplo, até a linha 7) para aproveitar as validações.

Observe que estou usando letras como sendo os sanduíches e números como os opcionais dos sanduíches, para tentar ser mais fácil de digitar. Na coluna A teríamos os sanduíches e, dependo de qual sanduíche seria selecionado, a subcategoria será mais restritiva, mostrando somente aqueles que fosse relacionados ao sanduíche pré-selecionado. No exemplo, se eu selecionar o sanduíche (categoria) "b", somente as opções "6" e "7" estariam disponíveis.

ABCDEFGH
1Dados PrincipaisTodos os dados
2CategoriaSubcategoriaCategoriasabcd
3a2Subcategorias1681
4c2792
5b136
6a48
7a759
.

1. Nomear células

1.1 Crie um nome para Categorias (sanduíches)

Selecione o intervalo $E$2:$H$2 e crie um nome para ele. Nomeei como Categorias (você poderia chamar de Sanduíches).

1.2. Crie um nome para Subcategorias (opções de ingredientes).

Selecione o intervalo $E$2:$H$7 e crie um nome para ele. Nomeei como Subcategorias (você poderia chamar como Opcoes ou Ingredientes).

IMPORTANTE: Apesar do nome, observe que eu selecionei, inclusive, as categorias!

1.3. Crie um nome para o selecionar as subcategorias de uma única categoria (os opcionais de um único sanduíche)

É aqui onde rola toda a mágica. O pulo do gato. Como você ainda não sabe qual subcategoria será selecionada, o intervalo deverá uma fórmula.

Então vá no gerenciador de nomes, crie um novo novo. Chamei de ListaSubcategoria, você poderia chamar de ListaOpcoesDeUmSanduiche, por exemplo).

Em Refere-se a digite a fórmula:

=DESLOC(Plan1!$D$2;1;CORRESP(A3;Categorias;0);5;1)

IMPORTANTE:

a. Observe que a função DESLOC() inicia em $D$2, onde não há nenhum item de categoria.

b. A função CORRESP() vai procurar e retornar a posição de um elemento (no caso, o conteúdo de A3). Se a Categoria selecionada (ainda não implementada até agora) for "d", o CORRESP() vai retornar 4. Então o DESLOC() gerará um intervalo de 5 elementos (parâmetro com o 5), deslocando-se 4 colunas a partir de $D$2 (resultado do CORRESP()) e 1 coluna para baixo (último parâmetro de DESLOC()). Se quando você for fazer a planilha pra valer e precisar de mais do que 5 opções de ingredientes, terá que aumentar o tamanho do último parâmetro para a quantidade máxima.

2. Crie as validações

Esta é a parte mais fácil : aplicar as validações de dados.

2.1. Validação para Categorias (Sanduíches).

Na célula A3, vá em validação de dados e, no local para a fórmula digite =Categorias, que é o nome do intervalo que você criou no passo 1.1.

2.2. Validação para Subcategorias (Ingredientes).

Na célula B3, vá em validação de dados e, no local para a fórmula digite =ListaCategoria, que é o nome do intervalo que você criou no passo 1.3.

Observe que o resultado acima, sempre irá mostrar uma combobox de 5 elementos, isto por conta do valor 5 na fórmula do passo 1.3.

É possível tornar a seleção da quantidade também dinâmica, mas irá aumentar a complexidade da fórmula. Não quis colocar de supetão pra você entender passo a passo.

É só você dar um CONT.VALORES() na fórmula anterior e substituir o 5 da fórmula original por esta fórmula com o CONT.VALORES().

Ficaria assim a nova fórmula de ListaCategoria:

=DESLOC($D$2;1;CORRESP(A3;Categorias;0);CONT.VALORES(DESLOC($D$2;1;CORRESP(A3;Categorias;0);5;1));1)

Pra ficar ainda melhor e prevendo que as opções de itens podem aumentar, onde tem o 5* na fórmula anterior, coloque um valor bem mais alto, como *100**.


IMPORTANTE:

a. Do jeito que está deve funcionar perfeitamente. Mas se qualquer uma das tabelas for movida de lugar (total ou parcialmente), a fórmula poderá "quebrar" e ela terá que ser revista para se adequar ao novo posicionamento dos itens da fórmula.

b. Se você quiser criar mais colunas na tabela 2 para que se informe mais de uma subcategoria por categoria (ou seja, você quer montar um sanduíche com mais de um opcional selecionado), terá que colocar uma referência absoluta na coluna ao se referir a A3, colocando um $ na coluna: $A3.

=DESLOC($D$2;1;CORRESP($A3;Categorias;0);CONT.VALORES(DESLOC($D$2;1;CORRESP($A3;Categorias;0);5;1));1)

É isso. Saudações.