Vlookup em várias colunas

1

Dentro de uma pasta de trabalho, tenho duas planilhas.
A folha A ("Mestre") se parece com o seguinte - mostra uma ramificação principal com sub-ramificações.

AFolhaB("Consulta") se parece com o seguinte:

OproblemaéquemuitosdosbranchesnoColCde"Query" são sub-branches que são apenas em Col D, E, F ou G de "Master". O que eu quero fazer no Col A de "Query" é mostrar o ramo principal do meu sub-ramo em Col C.

Eu tentei algo assim para testar duas colunas, mas isso me devolve o nome da ramificação principal e, se for um sub-ramo, apenas o número:

=IFERROR(VLOOKUP(B:B,Master!A:G,3,FALSE), VLOOKUP(B:B,Master!D:D,1,FALSE))

Qualquer ajuda apreciada!

    
por Lisa 16.04.2014 / 15:56

2 respostas

2

Aqui está uma solução de fórmula de matriz. Selecione A2 na folha "Consulta" e cole o seguinte na barra de fórmulas.

=INDEX(Master!$C$1:$C$9,MAX(IF(ISERROR(FIND("|"&B2&"|","|"&Master!$A$1:$A$9&"|"&Master!$D$1:$D$9&"|"&Master!$E$1:$E$9&"|"&Master!$F$1:$F$9&"|"&Master!$G$1:$G$9&"|")),-1,1)*ROW(Master!$A$1:$A$9)))

Pressione Ctrl + Deslocar + Digite para entrar como uma fórmula de matriz. Em seguida, preencha a coluna.

Explicação:
Essa fórmula cria uma matriz dos códigos de ramificação e sub-ramificação concatenados para cada loja na planilha Mestre. Os códigos são separados por um caractere que não ocorre em nenhum dos códigos ( | ). Por exemplo, a primeira entrada na matriz seria

|42981|0|0|21743|0|

A fórmula, em seguida, pesquisa o código da coluna B da folha de consulta, agrupada nos caracteres delimitadores (por exemplo, |26183| ). Para qualquer partida, o número da linha da partida é armazenado em uma matriz. Para as não correspondências, -1 é armazenado.

O valor MAX dessa matriz de números de linha e -1 é tomado e passado para a função INDEX , que procura esse índice específico na coluna C da planilha Mestre. Se -1 for passado para a função INDEX , ou seja, se nenhum código correspondente for encontrado, será retornado um erro.

    
por 16.04.2014 / 16:51
0

Veja aqui uma solução que é facilmente expansível para sub-colunas adicionais:

=OFFSET(INDEX(MainList,IF(SUMPRODUCT(--(SubTable=a2))<>1,NA(),SUMPRODUCT(ROW(SubTable)*(SubTable=a2))-ROW(SubTable)+1)),0,2)

MainList: Intervalo nomeado de IDs de ramificação principal (A2: Axxx)

SubTable: Intervalo nomeado de sub-entradas (d2: gxxx)

    
por 16.04.2014 / 17:20