Excel-formel: Opslag seneste pris -

Generisk formel

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

Resumé

For at slå den seneste pris for et produkt på en liste, sorteret, så de nyeste varer vises sidst, kan du bruge en formel baseret på LOOKUP-funktionen. I eksemplet viser formlen i G7:

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

hvor varen er det navngivne interval B5: B12, er prisen det navngivne interval D5: D12, og data sorteres stigende efter dato.

Forklaring

LOOKUP-funktionen antager, at data er sorteret og altid matcher omtrentligt. Hvis opslagsværdien er større end alle værdier i opslagsarrayet, er standardadfærd at "falde tilbage" til den forrige værdi. Denne formel udnytter denne adfærd ved at oprette en matrix, der kun indeholder 1'er og fejl, og derefter bevidst søge efter værdien 2, som aldrig vil blive fundet.

For det første evalueres dette udtryk:

item=F7

Når F7 indeholder "sandaler", er resultatet en matrix med SANDE og FALSKE værdier som denne:

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

Denne matrix leveres som skillelinjen til 1:

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

Matematikoperationen tvinger automatisk de SANDE og FALSE-værdier til 1s og 0s, så resultatet er en anden matrix som denne:

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

returneres direkte til LOOKUP-funktionen som opslagsvektorargument.

Bemærk, at matrixen kun indeholder to unikke værdier: del med nul-fejl (# DIV / 0!) Og tallet 1.

LOOKUP søger i arrayet efter værdien 2 og ignorerer fejlværdierne. Ikke at finde 2, det falder tilbage til den sidste 1 i position 7 i opslagsvektoren. LOOKUP returnerer derefter det 7. element i resultatvektoren (det navngivne interval "pris"), værdien 15.

Hvis du vil læse mere om begrebet bevidst at lede efter en værdi, der ikke nogensinde vises, skal du læse om BigNum.

Interessante artikler...