Excel-formel: Oppslag siste pris -

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.

Interessante artikler...