locked
consulta RRS feed

  • Pergunta

  • PREZADOS AMIGOS DA COMUNIDADE PODERIAM ME AJUDAR NA SOLUÇÃO DESTE ANEXO?
    PRECISO DE UMA LISTBOX QUE TRAGA AS INFORMAÇÕES DO ENUNCIADO(SE POSSIVEL UTILIZANDO FUNÇÕES)
    SE PRECISAREM DE MAIS INFORMAÇÕES PODEM PERGUNTAR..
    GRATO
    http://www.4shared.com/file/FtTG2krN/SOLUCAO.html
    sábado, 20 de novembro de 2010 03:40

Todas as Respostas

  • Eu dei uma olhada na planilha e pelo que pude entender, a idéia é selecionar uma cidade e a lista de validação do nome do técnico deve conter apenas os técnicos que atendem naquela localidade.

    Isso é totalmente possível de fazer usando apenas validação e funções do próprio Excel, sem que precise macros.

    No Excel (e em praticamente todos os softwares) uma forma de simplificar as fórmulas de uma planilha é dispor os dados de entrada da forma mais parecida e/ou coerente com o formato em que serào exibidos/analisados. Quanto mais parecido, mais fácil. Uma dica entào é sempre pensar bem em como os dados serão dispostos para facilitar a planilha.

    No caso da planilha exemplo, a relação de localidades em que o técnico trabalha está "não normalizada" como dizemos. Isso dificulta a planilha. Para facilitar, vamos normalizar essa lista de técnicos por localidade. 

    Observe que na faixa I3:K6 temos a lista de técnicos por localidade. Só que está fora de norma. A lista deveria ser assim

    localidade Técnico

    Localidade Técnico
    Araçatuba José

    Araçatuba João

    Araçatuba Carlos

    Araçatuba José

    Bolsa de Cereais Fulano

    Arroio do Meio João

    Belém Joào

    Belém Carlos

    Bauru José

    Belo Horizonte José

    Porém, como você quer fazer validação, é melhor organizar em uma matriz assim

    Araçatuba Arroio do Meio Bauru Belém Belo  Horizonte Bolsa de Cereais

    3 1 1 2 1 1

    João João José João José Fulano

    Carlos Carlos

    José

     

    Observe que eu adicionei a essa tabela uma linha com a quantidade de técnicos que cada localidade tem

    Crie essa tabela numa aba a parte e vamos colocá-la em A1:E5

    A faixa A1:E1 contém as Localidades

    A faixa A2:E2 contém as quantidade de técnicos

    A faixa A3:E5 contém os técnicos por localidade. Se você observar, ela é uma transposição da talabela de localidades por técnicos.

    Na célula B19 da sua planilha, temos a localidade escolhida. Essa célula vai determinar em qual COLUNA da faixa A3:E5 vamos pegar os dados da validação do técnico.

    Para calcular a coluna da localidade é só usar =corresp( B19 ; plan2!$A$1:$E$1 ; 0 ) 

    Coloque essa fórmula em b25 pois vamos usá-la muito

    A quantidade de técnicos na localidade escolhida é dada pela fórmula =índice( plan2!$a$2:$e$2 ; b25) . Vamos usar muito esse valor. Vamos colocá-lo em b26

    Para ter uma lista com os técnicos da localidade a fórmula será

    =desloc( plan2!$a$3:$E$5 ; 0 ; b25-1 ; b26 ; 1) 

    Essa deve ser a fórmula para validação da célula e19

    Como funciona ? 

    A função DESLOC() retorna uma matriz. Essa matriz é uma submatriz da faixa fornecida como primeiro argumento, no caso $A$3:$E$5, a faixa que contém os nomes dos técnicos por localidade. Essa submatriz é "deslocada" um número de linhas e de colunas específico. No caso, queremos 0 (zero) de deslocamento de linhas mas queremos um deslocamento de colunas 1 a menos que o número da coluna da cidade, calculado em b25. Se a coluna da cidade é 1, o deslocamento será 0, se for 2 será 1 e assim por diante, ou seja b25-1. Além de definirmos o deslocamento em linhas e colunas, passamos para a função desloc o número de linhas e de colunas que queremos nessa submatriz. No caso, queremos quantas linhas forem o número de técnicos da localidade, que está em b26. O número de colunas será sempre 1 pois queremos uma lista com uma coluna só com os nomes dos técnicos.

    Experimente e domine essa técnica para validar a célula em múltiplas etapas. Assim

    Vc pode escolher a estado, dentro do estado a cidade, dentro da cidade o bairro.


    Ou vc pode escolher o fabricante, dentro do fabricante a linha, dentro da linha o modelo, dentro do modelo a cor ...

     

     

     


    João Eurico Consultor Manguetown - Brazil
    sábado, 20 de novembro de 2010 12:49
  • Joao,

    Muito obrigado pela sua dica, mas eu ainda tenho outra necessidade neste filtro, inicialmente eu tenho um tipo de problema(nobreak cpd, nobreak local,etc) a seguir eu tenho um tipo de suporte (atendimento, manutenção, etc) e a seguir tenho a localidade que me trará especificamente o suporte que me atendera naquele tipo de problema naquela localidade.

    sábado, 20 de novembro de 2010 15:40
  • Você aceita uma solução com VBA?
    http://www.ambienteoffice.com.br
    sábado, 20 de novembro de 2010 18:52
  • Utilize a mesma técnica. 

    Como mencionei na resposta, você pode criar níveis de seleção para determinar qual faixa vai ser usada. O truque e usar a função desloc() que cria uma matriz dinamicamente a partir da mudança dos valores de seus parâmetros. Não requer VBA.

    Pelo que entendi a seleção é assim

    Tipo de problema -> tipo de suporte -> localidade -> técnico

    É isso mesmo ? Se for, preste atenção pois existem tantas variações que dá tanta possibilidade que fica inviável e só estamos falando de 4 técnicos, 5 localidades, 4 tipos de problemas, 2 tipos de manutenção. Isso dá um total de 4 x 5 x 4 x 2 = 160 possibilidades distintas. 

    Além disso tem uma "planilha 2" dentro da planilha. Está confuso, não faz sentido. Se é listbox por listbox, é só definir a faixa e tacar lá na validação.

    Por favor, elabore mais a sua pergunta porque a rigor você só fez mostrar a planilha e criticar a resposta. 


    João Eurico Consultor Manguetown - Brazil
    domingo, 21 de novembro de 2010 11:05
  • Joao,

    nao consegui entender este trecho abaixo na sua explicação , a destribuição é essa mesma qual o significados dos numeros abaixo das localidades (3 11 2 1 1), eles ficam nesta posição abaixo de Araçatuba?

    Araçatuba Arroio do MeioBauru BelémBelo  HorizonteBolsa de Cereais

    3 11 2 1 1

    João JoãoJosé JoãoJosé Fulano

    Carlos Carlos

    José

     

     

    terça-feira, 23 de novembro de 2010 00:22
  • Joao, captei sua mensagem, e consegui montar seguindo sua sugestão, ficou muito bom e facil de entender, basedo nela ficou facil de entender o problema, mas agora cheguei em outro estagio, como faço para confrontar as 3 listas resutantes das 3 consultas para ter os nomes que se repetem nas tres lista?

    segue novo exemplo com a necessidade.

    http://www.4shared.com/document/vAUcSTZu/EXEMPLO_JOAO.html

     

    terça-feira, 23 de novembro de 2010 02:43
  • Não entendi

     

    Como faz para confrontar as 3 listas resultantes ?? Como assim ? Pode elaborar mais ? 

    Eu baixei a planilha mas vi apenas 3 listas de técnicos com duas listas adicionais separadas por tipo de problema e "torre"

    Se a idéia é separar por tipo de lista e depois por coluna e então o técnico .. pode ser feito.

     

     


    João Eurico Consultor Manguetown - Brazil
    terça-feira, 23 de novembro de 2010 16:29
  • A ideia é a seguinte: elaborar uma consulta onde eu consiga selecionar a Unidade o Problema e a torre que me trara os tecnicos que aturam no problema nesta localidade, com a dica eu consigo trazer todos os tecnicos da localidade, todos os tecnicos que atuam no problema e todos os tecnicos da torre, o que precisaria agora era refinar estas tres listas para que somente trouxesse os nomes que repetirem nas tres e com isso teria somente os nomes que preciso ex:

    Se selecionasse nas listbox: localidade: Araçatuba / Problema: Nobreak CPD / Torre: Atendimento

    o Resultado deveria ser o nome ou nomes que repentem nas tres, neste caso teria o nome do tecnico Carlos ( Carlos atende Araçatuba o problema com Nobreak CPD e esta na torre de atendimento) essa é a ideia.

     

    terça-feira, 23 de novembro de 2010 17:02
  • Como confronto estes 3 resultados destas consultas e extraio os nomes que repentem nas tres?

    quarta-feira, 24 de novembro de 2010 11:01