Excel-formule: XLOOKUP hoofdlettergevoelig -

Generieke formule

=XLOOKUP(1,--EXACT(range1,"RED"),range2)

Samenvatting

Om een ​​hoofdlettergevoelige exacte overeenkomst te maken, kunt u de XLOOKUP-functie gebruiken met de EXACTE-functie. In het getoonde voorbeeld is de formule in F5:

=XLOOKUP(1,--EXACT(B5:B15,"RED"),B5:D15)

die overeenkomt met "RED" (hoofdlettergevoelig) en de hele rij retourneert.

Uitleg

Op zichzelf is de XLOOKUP-functie niet hoofdlettergevoelig. Een opzoekwaarde van "ROOD" komt overeen met "rood", "ROOD" of "Rood". We kunnen deze beperking omzeilen door een geschikte opzoekmatrix voor XLOOKUP te construeren met een logische uitdrukking.

Om XLOOKUP van binnen naar buiten te laten werken, gebruiken we de EXACTE functie als volgt:

EXACT(B5:B15,"RED") // test for "RED"

Aangezien er 11 waarden zijn in het bereik E5: D15, retourneert EXACT een array met 11 TRUE FALSE resultaten als volgt:

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

Merk op dat de positie van TRUE overeenkomt met de rij waar de kleur "ROOD" is.

Om het kort te houden (en om de logica gemakkelijk uit te breiden met booleaanse logica), forceren we de TRUE FALSE-waarden naar 1s en 0s met het dubbele negatieve:

--EXACT(B5:B15,"RED") // convert to 1s and 0s

wat een array als deze oplevert:

(0;0;0;0;1;0;0;0;0;0;0)

Merk op dat de positie van 1 overeenkomt met de rij waar de kleur "ROOD" is. Deze array wordt direct teruggestuurd naar de functie XLOOKUP als het opzoekarray-argument.

We kunnen nu eenvoudig de formule maken om:

=XLOOKUP(1,(0;0;0;0;1;0;0;0;0;0;0),B5:D15)

Met een opzoekwaarde van 1, vindt XLOOKUP de 1 op de 5e positie en retourneert de 5e rij in de retourmatrix, B9: D9.

De logica uitbreiden

De structuur van de logica kan eenvoudig worden uitgebreid. Als u bijvoorbeeld de overeenkomst wilt beperken tot "ROOD" in de maand april, kunt u een formule als deze gebruiken:

=XLOOKUP(1,EXACT(B5:B15,"RED")*(MONTH(C5:C15)=4),B5:D15)

Hier, omdat elk van de twee uitdrukkingen een array van TRUE FALSE-waarden retourneert en omdat deze arrays met elkaar worden vermenigvuldigd, dwingt de wiskundige bewerking de TRUE- en FALSE-waarden naar 1s en 0s. Het is niet nodig om het dubbele negatief te gebruiken.

Omdat de opzoekwaarde 1 blijft, zoals in de bovenstaande formule.

Eerste en laatste wedstrijd

Beide bovenstaande formules retourneren de eerste overeenkomst van "ROOD" in een gegevensset. Als u de laatste overeenkomst nodig heeft, kunt u een reverse lookup uitvoeren door het zoekmodusargument voor XLOOKUP in te stellen op -1:

=XLOOKUP(1,--EXACT(B5:B15,"RED"),B5:D15,,,-1) // last match

Raadpleeg de FILTER-functie als u resultaten van meerdere overeenkomsten moet retourneren.

Interessante artikelen...