Pesquisa da tabela do Excel com índices em várias colunas

2

Eu tenho uma tabela no Excel, a aparência é assim:

Test1   100 test2   200
Test3   110 test4   210
Test5   120 test6   220

Eu quero uma função que, dado o teste 1 como entrada, retornará 100 E o teste 2 retornará 200

LOOKUP, (V / H) LOOKUP e INDEX insistem em um único array contíguo para a coluna do índice.

    
por Matthew Scouten 15.03.2010 / 03:40

2 respostas

1

Supondo que os valores que você deseja retornar são sempre numéricos, acho que isso funcionaria:

=IFERROR(VLOOKUP(INPUTCELL,$A$1:$B$3,2,0),0)+IFERROR(VLOOKUP(INPUTCELL,$C$1:$D$3,2,0),0)

Isso só funcionará no Excel 2007, mas pode ser modificado para 2003. Pode haver uma maneira mais sexy, mas é o primeiro em que pensei. Observe que, se 'Teste 1' estiver nas duas colunas, como exemplo, ele adicionará os dois valores correspondentes.

Resposta atualizada: Como outros comentaristas sugeriram, eu reavaliaria o layout da sua planilha. Supondo que você não possa alterá-lo, a única solução escalável que vejo é via VBA. Não sou especialista em VBA, portanto, é provável que haja maneiras mais eficientes de codificar essa solução, mas é isso que recebi:

  1. Pressione Alt + F11 para abrir o editor do VBA.
  2. No editor do VBA, clique em Inserir > Módulo.
  3. Cole o seguinte código:
 Public Function GetValue(rngSearch As Range, rngInput As Range) As Variant
      Dim cell As Variant
      For Each cell In rngSearch
        If cell.Value = rngInput.Value Then
          GetValue = cell.Offset(0, 1)
          Exit For
        End If
      Next
 End Function

4 Para usar o tipo de função "= GetValue (SearchRange, InputCell)" (sem aspas) na célula desejada com InputCell sendo a célula que diz 'Teste 1', 'Teste 2', etc. e SearchRange sendo a área em que você está pesquisando.

Você precisará ter macros ativadas para que isso funcione.

    
por 15.03.2010 / 18:48
1

Se você usa a função IF (), é uma tarefa trivial obter o que você está pedindo.

    
por 15.03.2010 / 10:10