locked
Utilizar ProcV para pesquisar em outra pasta RRS feed

  • Pergunta

  • Olá

    alguem sabe como posso pesquisar dados na planilha A e fazer com que retorne na planilha B, segue modelo:

    grato

    PLANILHA A
    DATA EQUIPAMENTO PACOTE ENCARREGADO
    14/7 Alicate Manut Mauro
    14/7 borracha Manut Vagner
    15/7 prego Manut Vagner
    15/7 martelo Manut Jose 
    14/8 cano Manut Jose 
    14/8 caneta Manut Carlos 
    16/8 Alicate Manut Francisco

    PLANILHA B 
    DIGITE A DATA A SER PESQUISA NA PLANILHA A 14/07/2010
    DESCRIÇÃO DOS SERVIÇOS 
    DATA EQUIPAMENTO ENCARREGADO
         
         
         
         

     

    quarta-feira, 18 de agosto de 2010 14:24

Todas as Respostas

  • Bom dia...

     

    Não sei se entendi bem o seu problema, mas acredito que você deseja colocar todas as orrências de uma tabela 1 na tabela 2. Se for isso, criei uma função que faz algo semelhante. Espero que ajude

     

    Function BuscaOcorrencia(Matriz As Range, Valor As Variant, ColunaReferencia As Integer, NumeroOcorrencia As Integer, ColunaResultado As Integer) As Variant
      Dim ContaLinhas As Integer
      Dim Retorno As Variant
      Dim I As Integer
      Dim Ocorrencia As Integer
      
      ContaLinhas = UBound(Matriz.Formula)
      Retorno = ""
      Ocorrencia = 0
      For I = 1 To ContaLinhas
        If Matriz.Cells(I, ColunaReferencia).Value = Valor Then
          Ocorrencia = Ocorrencia + 1
          If Ocorrencia = NumeroOcorrencia Then
            Retorno = Matriz.Cells(I, ColunaResultado)
          End If
        End If
      Next I
      
      BuscaOcorrencia = Retorno
    End Function
    
    

    Como usar


    =BuscaOcorrencia($A$1:$I$36;Valor;1;2;3)

    $A$1:$I$36 - Matriz da tabela que você está procurando

    Valor - O Valor que você está procurando

    1 - Qual será a coluna a ser pesquisada

    2 - Qual a ocorrência retornada (tipo a segunda ocorrência da matriz)

    3 - Qual a coluna de resultado

     

    Teste a função, qualquer dúvida poste aqui que eu te envio um exemplo.

     

    Bráulio Figueiredo

    braulio@braulioti.com.br - http://www.braulioti.com.br

    twitter: https://twitter.com/braulio_fp

    quarta-feira, 18 de agosto de 2010 14:42
  • A Macro que o Braulio postou é excelente e resolve seu problema.

     

    Porém, se por algum motivo a sua planilha não puder usar macros, tem uma técnica usando só fórmulas que faz o que vc quer.

    Me informe se quer dar uma olhada.

    sexta-feira, 20 de agosto de 2010 16:02
  • Estou curioso, João. Qual é sua solução por fórmulas? Eu teria uma solução, mas ela seria complicada porque o número de ocorrências encontradas varia.

    sábado, 21 de agosto de 2010 20:30
  • Estou curioso, João. Qual é sua solução por fórmulas? Eu teria uma solução, mas ela seria complicada porque o número de ocorrências encontradas varia.

    Na aba destino, deixe a linha 1 em branco.

    Na linha 2, na primeira coluna (A) coloque a comparação que será usada para filtrar as linhas da aba original. No caso, a data da ocorrência ser igual a data chave. Vamos supor que a data chave está em M1, assim ficaria em A2 

    =( plan1!a2 = $m$1)+ a1

    Essa fórmula contará +1 a cada ocorrência da plan1 que atende a condição (ser a mesma data que M1)

    Copie essa fórmula para A3 até An onde n será o número máximo de ocorrências possíveis.

    Nessa coluna A teremos uma sequência de  0 0 0 0 depois 1 1 1 1 , depois 2 2 2 2 2 2 ...quando o valor muda significa que encontramos naquela linha uma ocorrência que atende ao requisito.

    Agora é procurar essas linhas.

    Em b2 coloque a seguinte fórmula

    =corresp( lin()-1 ; $A$1:$A$100 ; 0 ) + 1 

    Copie essa fórmula para B3 até Bn onde n será o número máximo de ocorrências possíveis.

    Essa coluna B terá o número da linha da plan1 que atende ao critério, ou #n/d, se ela não atender o critério. Agora é só pegar os valores assim

    Em C2 a fórmula para pegar o  equipamento seria 

    =seerro( índice( plan1!$b$2:$d$1000; b2 ; 1) ; "" )

    Em D2 a fórmula para pegar o pacote seria 

    =seerro( índice( plan1!$b$2:$d$1000; b2 ; 2) ; "" )

    Em E2 a fórmula para pegar o encarregado seria 

     

    =seerro( índice( plan1!$b$2:$d$1000; b2 ; 3) ; "" )

    Ou se colocarmos em C2 a seguinte fórmula

    =seerro( índice( plan1!$b$2:$d$1000; b2 ; col()-2 ) ; "" )
    podemos copiá-la para C2:D1000 

    Aqui tem uma planilha que demonstra essa técnica inclusive usando dois critérios para filtragem. Não há limite para o número de critérios.

     

    sábado, 21 de agosto de 2010 20:53
  • Entendi. A proposta que eu tinha em mente também era rankear as ocorrências. Interessante.
    domingo, 22 de agosto de 2010 16:40