Excel-formel: Hent sidste match celle indeholder -

Generisk formel

=LOOKUP(2,1/SEARCH(things,A1),things)

Resumé

For at kontrollere en celle for en af ​​flere ting og returnere det sidste match fundet på listen kan du bruge en formel baseret på LOOKUP og SEARCH-funktionerne. I tilfælde af flere fundne matches returnerer formlen det sidste match fra listen over "ting".
I det viste eksempel er formlen i C5:

=LOOKUP(2,1/SEARCH(things,B5),things)

Forklaring

Kontekst: du har en liste over ting i det navngivne interval "ting" (E5: E8), og du vil kontrollere celler i kolonne B for at se, om de indeholder disse ting. Hvis ja, vil du returnere den sidste vare fra "ting", der blev fundet.

I denne formel bruges SEARCH-funktionen til at søge celler i kolonne B på denne måde:

SEARCH(things,B5)

Når SEARCH finder et match, returnerer det matchets position i den celle, der søges efter. Når søgning ikke kan finde et match, returnerer den #VALUE-fejlen. Fordi vi giver SEARH mere end én ting at se efter, vil det returnere mere end et resultat. I det viste eksempel returnerer SEARCH en række resultater som denne:

(8;24;#VALUE!;#VALUE!)

Denne matrix bruges derefter som en divisor for tallet 1. Resultatet er en matrix sammensat af fejl og decimalværdier. Fejlene repræsenterer ting, der ikke er fundet, og decimalværdierne repræsenterer ting, der er fundet. I det viste eksempel ser matrixen sådan ud:

(0.125;0.0416666666666667;#VALUE!;#VALUE!)

Denne matrix fungerer som "lookup_vector" for LOOKUP-funktionen. Opslagsværdien leveres som nummer 2, og resultatvektoren er det navngivne interval "ting". Dette er den kloge del.

Formlen er konstrueret på en sådan måde, at opslagsvektoren aldrig vil indeholde en værdi større end 1, mens opslagsværdien er 2. Dette betyder, at opslagsværdien aldrig vil blive fundet. I dette tilfælde vil LOOKUP matche den sidst numeriske værdi, der blev fundet i arrayet, hvilket svarer til den sidste "ting", der blev fundet af SEARCH.

Til sidst returnerer LOOKUP det sidst fundne ved hjælp af det navngivne interval "ting" leveret som resultatvektor.

Med hårdkodede værdier

Brug af et interval som "ting" gør det let at ændre listen over søgeudtryk (og tilføje flere søgeudtryk), men det er ikke et krav. Du kan også hardcode værdier direkte i formlen på denne måde:

=LOOKUP(2,1/SEARCH(("red","blue","green"),B5),("red","blue","green"))

Interessante artikler...