A fórmula de Vlookup funciona com alguns meses, recebe um erro #value com os outros

2

Aqui está minha fórmula:

=IFERROR(((VLOOKUP($D$2,UOS!$A$18:$AC$31,5))/30)*$G$2,"")

O campo $D$2 é preenchido com =Text(c1,"mmmm")

Quando eu uso esta fórmula e $D$2 é janeiro, fevereiro, março, maio, junho, julho, setembro, outubro ou novembro - a fórmula funciona. Mas quando $D$2 é abril, agosto ou dezembro, não funciona.

A matriz da tabela é toda formatada da mesma forma para o mês.

O erro que recebo se eu remover o IFERROR é #value

Eu tentei tudo o que posso pensar - formatação, chave direta do mês em D2, etc.

Como posso resolver isso?

    
por Kat 23.12.2014 / 21:09

1 resposta

3

VLOOKUP (lookup_value, table_array, col_index_num) assume que a tabela é ordenada pelas ordens de classificação fundamentais (alfabética, numérica e cronológica). Como D2 é um valor de texto (e eu suponho que a coluna A contém as strings de texto January , February ,…), classificação alfabética entra em jogo. “Abril”, “agosto” e “dezembro” vêm antes de “janeiro” em ordem alfabética; é por isso que eles estão falhando. Você precisa mudar sua fórmula para

=IFERROR(((VLOOKUP($D$2, UOS!$A$18:$AC$31, 5, FALSE))/30)*$G$2,"")

para procurar uma correspondência exata e não esperar que a lista seja classificada em ordem alfabética.

"Fevereiro" vem antes de "janeiro" também em ordem alfabética; tem certeza de que está funcionando?

    
por 23.12.2014 / 21:49