
Generisk formel
=LOOKUP(2,1/(item="hat"),price)
Sammendrag
For å slå opp den siste prisen for et produkt i en liste, sortert slik at de siste artiklene vises sist, kan du bruke en formel basert på LOOKUP-funksjonen. I eksemplet viser er formelen i G7:
=LOOKUP(2,1/(item=F7),price)
der varen er det navngitte området B5: B12, er prisen det navngitte området D5: D12, og dataene sorteres stigende etter dato.
Forklaring
LOOKUP-funksjonen antar at data er sortert, og alltid samsvarer omtrent. Hvis oppslagsverdien er større enn alle verdiene i oppslagsmatrisen, er standard atferd å "falle tilbake" til den forrige verdien. Denne formelen utnytter denne oppførselen ved å lage en matrise som bare inneholder 1-er og feil, og deretter bevisst lete etter verdien 2, som aldri vil bli funnet.
Først evalueres dette uttrykket:
item=F7
Når F7 inneholder "sandaler", blir resultatet en rekke sanne og falske verdier som dette:
(FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE)
Denne matrisen er gitt som deleren til 1:
1/(FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE)
Matematikkoperasjonen tvinger automatisk de sanne og falske verdiene til 1s og 0s, så resultatet er en annen matrise som dette:
(#DIV/0!;1;#DIV/0!;1;#DIV/0!;#DIV/0!;1;#DIV/0!)
returnerte direkte til LOOKUP-funksjonen som oppslagsvektorargument.
Legg merke til at matrisen bare inneholder to unike verdier: del med null feil (# DIV / 0!) Og tallet 1.
LOOKUP søker i matrisen etter verdien 2, og ignorerer feilverdiene. Finner ikke 2, faller den tilbake til den siste 1, i posisjon 7 i oppslagsvektoren. LOOKUP returnerer deretter det 7. elementet i resultatvektoren (det valgte området "pris"), verdien 15.
Hvis du vil lese mer om konseptet med vilje å lete etter en verdi som aldri vil vises, kan du lese om BigNum.