Fórmula do Excel: Pesquisar o preço mais recente -

Fórmula genérica

=LOOKUP(2,1/(item="hat"),price)

Resumo

Para pesquisar o preço mais recente de um produto em uma lista, classificado de forma que os itens mais recentes apareçam por último, você pode usar uma fórmula baseada na função LOOKUP. No exemplo mostrado, a fórmula em G7 é:

=LOOKUP(2,1/(item=F7),price)

onde item é o intervalo nomeado B5: B12, preço é o intervalo nomeado D5: D12 e os dados são classificados em ordem crescente por data.

Explicação

A função LOOKUP assume que os dados estão classificados e sempre faz uma correspondência aproximada. Se o valor de pesquisa for maior do que todos os valores na matriz de pesquisa, o comportamento padrão é "retroceder" para o valor anterior. Essa fórmula explora esse comportamento criando uma matriz que contém apenas 1s e erros e, em seguida, procurando deliberadamente o valor 2, que nunca será encontrado.

Primeiro, esta expressão é avaliada:

item=F7

Quando F7 contém "sandálias", o resultado é uma matriz de valores TRUE e FALSE como este:

(FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE)

Esta matriz é fornecida como o divisor de 1:

1/(FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE)

A operação matemática força automaticamente os valores TRUE e FALSE para 1s e 0s, então o resultado é outra matriz como esta:

(#DIV/0!;1;#DIV/0!;1;#DIV/0!;#DIV/0!;1;#DIV/0!)

retornado diretamente para a função LOOKUP como o argumento do vetor de pesquisa.

Observe que a matriz contém apenas dois valores exclusivos: o erro de divisão por zero (# DIV / 0!) E o número 1.

LOOKUP procura na matriz o valor 2, ignorando os valores de erro. Não encontrando 2, ele volta para o último 1, na posição 7 no vetor de pesquisa. LOOKUP então retorna o sétimo item no vetor de resultado (o intervalo nomeado "preço"), o valor 15.

Para ler mais sobre o conceito de procurar intencionalmente um valor que nunca aparecerá, leia sobre BigNum.

Artigos interessantes...