
= 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 de căutare . În exemplul de prezentare, formula din G7 este:
cum se fac rapoarte în Excel
= LOOKUP (2,1/(item=F7),price)
Unde articol este gama denumită B5: B12, Preț este intervalul numit D5: D12, iar datele sunt sortate crescător după dată.
ExplicaţieFuncț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 un matrice de valori ADEVĂRATE și FALSE ca aceasta:
{FALSETRUEFALSETRUEFALSEFALSETRUEFALSE}
Această matrice este furnizată ca divizor la 1:
1/{FALSETRUEFALSETRUEFALSEFALSETRUEFALSE}
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 numit „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 .
Autor Dave Bruns