Formula Excel: Căutați cel mai recent preț -

Formula generică

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

rezumat

Pentru a căuta cel mai recent preț pentru un produs dintr-o listă, sortate astfel încât ultimele articole să apară ultimele, puteți utiliza o formulă bazată pe funcția CĂUTARE. În exemplul de prezentare, formula din G7 este:

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

unde articolul este intervalul numit B5: B12, prețul este intervalul numit D5: D12, iar datele sunt sortate crescător după dată.

Explicaţie

Funcția LOOKUP presupune că datele sunt sortate și face întotdeauna o potrivire aproximativă. Dacă valoarea de căutare este mai mare decât toate valorile din matricea de căutare, comportamentul implicit este de a „reveni” la valoarea anterioară. Această formulă exploatează acest comportament prin crearea unui tablou care conține doar 1 și erori, apoi căutând în mod deliberat valoarea 2, care nu va fi găsită niciodată.

În primul rând, această expresie este evaluată:

item=F7

Când F7 conține „sandale”, rezultatul este o serie de valori ADEVĂRATE și FALSE ca aceasta:

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

Această matrice este furnizată ca divizor la 1:

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

Operația matematică constrânge automat valorile TRUE și FALSE la 1s și 0s, deci rezultatul este o altă matrice de genul acesta:

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

a revenit direct la funcția LOOKUP ca argument vector de căutare.

Observați că matricea conține doar două valori unice: eroarea de divizare la zero (# DIV / 0!) Și numărul 1.

LOOKUP caută în matrice valoarea 2, ignorând valorile erorii. Fără a găsi 2, acesta revine la ultimul 1, la poziția 7 din vectorul de căutare. LOOKUP returnează apoi cel de-al 7-lea element din vectorul de rezultat (intervalul denumit „preț”), valoarea 15.

Pentru a citi mai multe despre conceptul de a căuta în mod intenționat o valoare care nu va apărea vreodată, citiți despre BigNum.

Articole interesante...