
Generisk formel
=LOOKUP(2,1/SEARCH(things,A1),things)
Sammendrag
For å sjekke en celle for en av flere ting, og returnere den siste kampen som ble funnet i listen, kan du bruke en formel basert på LOOKUP og SEARCH-funksjonene. I tilfelle det er funnet flere treff, vil formelen returnere den siste kampen fra listen over "ting".
I eksemplet vist er formelen i C5:
=LOOKUP(2,1/SEARCH(things,B5),things)
Forklaring
Kontekst: du har en liste over ting i det navngitte området "ting" (E5: E8), og du vil sjekke celler i kolonne B for å se om de inneholder disse tingene. I så fall vil du returnere den siste varen fra "ting" som ble funnet.
I denne formelen brukes SØK-funksjonen til å søke i celler i kolonne B slik:
SEARCH(things,B5)
Når SEARCH finner en kamp, returnerer den kampens posisjon i cellen det blir søkt etter. Når søk ikke finner samsvar, returnerer det feilen #VALUE. Fordi vi gir SEARH mer enn én ting å se etter, vil det gi mer enn ett resultat. I eksemplet vist returnerer SEARCH en rekke resultater som dette:
(8;24;#VALUE!;#VALUE!)
Denne matrisen brukes deretter som en divisor for tallet 1. Resultatet er en matrise som består av feil og desimalverdier. Feilene representerer ting som ikke er funnet, og desimalverdiene representerer ting som er funnet. I eksemplet som vises ser matrisen slik ut:
(0.125;0.0416666666666667;#VALUE!;#VALUE!)
Denne matrisen fungerer som "lookup_vector" for LOOKUP-funksjonen. Oppslagsverdien blir gitt som tallet 2, og resultatvektoren er det navngitte området "ting". Dette er den smarte delen.
Formelen er konstruert på en slik måte at oppslagsvektoren aldri vil inneholde en verdi større enn 1, mens oppslagsverdien er 2. Dette betyr at oppslagsverdien aldri vil bli funnet. I dette tilfellet vil LOOKUP matche den siste numeriske verdien som ble funnet i matrisen, som tilsvarer den siste "tingen" som ble funnet av SØK.
Til slutt, ved å bruke det nevnte området "ting" levert som resultatvektor, returnerer LOOKUP det siste som ble funnet.
Med hardkodede verdier
Å bruke et område som "ting" gjør det enkelt å endre listen over søkeord (og legge til flere søkeord), men det er ikke et krav. Du kan også hardkode verdier direkte i formelen slik:
=LOOKUP(2,1/SEARCH(("red","blue","green"),B5),("red","blue","green"))