Vlookup para verificar todos os valores antes de retornar o valor?

0

Eu tenho este projeto, eu tenho que verificar os valores de uma folha diferente e copiar o valor do celular ao lado dele.

Folha 1

Billy
Paul
Mike
Jesse

Folha 2

Billy |
Paul | X
Jesse | 
Billy | X
Mike | X

Estou trabalhando na Folha 1 enquanto recebo valores da Folha 2.

Eu só preciso retornar o valor em Col 2, eu tenho que trabalhar com = IFERROR (VLOOKUP (B148, LateReports! B: C, 2,0), "-")

Mas com Billy não tendo um X na primeira vez, ele pára o look up e retorna em branco. Como faço para verificar toda a lista, comparar os valores das células e se é igual a "X", uma vez retorná-lo?

    
por Mocella 08.04.2016 / 02:45

3 respostas

0

Você poderia classificar sua tabela de pesquisa por Col A e, em seguida, descendo Col B. Nesse caso, VLOOKUP encontrará o "Billy" com o X primeiro.

    
por 08.04.2016 / 03:11
0

Você pode usar Index (Match) para "continuar procurando". Ele retornará um valor como o VLOOKUP.

{=INDEX(Sheet2!$A$1:$C$5,MATCH(1,(Sheet2!$A$1:$A$5=Sheet1!A1)*(Sheet2!$B$1:$B$5="X"),0),3)}

Declare a área da matriz para ÍNDICE, Folha2! $ A $ 1: $ C $ 5, incluindo uma coluna de data.

Chame MATCH dentro do INDEX, usando "1" como seu valor de pesquisa, e "1" é "TRUE"

(Folha2! $ A $ 1: $ A $ 5 = Folha1! A1) será igual a 1, e assim será (Folha2! $ B $ 1: $ B $ 5="X"), que retornará 1 quando os multiplicarmos retornando um valor "VERDADEIRO".

Fechamos nossa MATCH com um "0", o que indica que queremos uma correspondência exata entre "1" e nosso segundo argumento que multiplicamos.

Feche o índice com a coluna da matriz que você deseja referenciar, nesse caso, "3" para a coluna C, que deve conter uma data como você declarou em um comentário.

MAIS IMPORTANTE, em vez de apenas pressionar ENTER, use CTRL + SHIFT + ENTER, o que colocará essas chaves em torno de sua fórmula {formula}

Veja como devem ficar as planilhas do Excel.

Sheet1- Two columns
Billy|INDEX(MATCH)
Paul|drag your INDEX(MATCH)
Mike|drag your INDEX(MATCH)
Jesse|drag your INDEX(MATCH)

Sheet2- Three Columns including Date in "C"
Billy||42450
Paul|X|42450
Jesse| |42451
Billy|X|42452
Mike|X|42452
    
por 08.04.2016 / 22:14
0

Como sobre (supondo que suas colunas de Sheet2 estejam nas colunas A e B e que sua coluna Sheet1 esteja na coluna A), digite isso na Coluna B de Sheet1:

=IF(COUNTIFS(Sheet2!A:A,A1,Sheet2!B:B,"X")>0,"I found it!","I didn't find it")

Isso funciona se você sabe que quer procurar especificamente por "X" e depois conta quantas vezes ele encontra os dois testes de (a) é Bill (porque o nome dele está em A1; quando você copia a fórmula para baixo) vai fazer A2, A3, etc, que será Paul e Mike e assim por diante), e (b) há um X.

Se, no entanto, você não sabe que é chamado 'X' e quer descobrir o que é chamado, você tem um problema porque o Excel sabe qual linha fornecer a você ? A linha em branco? Uma linha com "X", ou uma linha com "Y", etc?

Se não for o "x" que você está procurando, mas qualquer linha não em branco, faça o mesmo que acima, mas

=IF(COUNTIFS(Sheet2!A:A,A1,Sheet2!B:B,"<>""")>0,"I found it!","I didn't find it")

que procura qualquer coisa que não seja igual a nada ("" não sendo nada, "" não sendo igual a nada "," "não sendo igual a nada entre aspas para que funcione .

Eu acho que eles funcionam de qualquer maneira, mas eles só dizem se algo está lá, não o que é: -)

Uma abordagem alternativa é criar uma tabela dinâmica (Inserir - > Tabela Dinâmica) e filtrar espaços em branco usando o filtro e colocar as colunas Nome e X nos Rótulos de Linha, talvez. Em seguida, você pode fazer um VLOOKUP nas colunas da tabela dinâmica, embora isso ainda não ajude se você tiver várias entradas não vazias para cada pessoa, pois ainda não saberá o que procurar.

Embora você possa achar que a tabela dinâmica realmente fornece a resposta que você deseja de qualquer maneira, sem precisar de mais fórmulas, dependendo do que você precisa.

    
por 08.04.2016 / 06:55