Excel-formel: XLOOKUP store og små bokstaver -

Generisk formel

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

Sammendrag

For å lage en saksfølsom eksakt samsvar, kan du bruke XLOOKUP-funksjonen med EXACT-funksjonen. I eksemplet vist er formelen i F5:

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

som samsvarer med "RØD" (store og små bokstaver) og returnerer hele raden.

Forklaring

I seg selv er ikke XLOOKUP-funksjonen ikke mellom store og små bokstaver. En oppslagsverdi på "RØD" vil samsvare med "rød", "RØD" eller "Rød". Vi kan omgå denne begrensningen ved å konstruere en passende oppslagsmatrise for XLOOKUP med et logisk uttrykk.

Når vi arbeider fra innsiden og ut for å gi XLOOKUP muligheten til å matche saken, bruker vi den NØYAKTIGE funksjonen slik:

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

Siden det er 11 verdier i området E5: D15, returnerer EXACT en matrise med 11 TRUE FALSE-resultater slik:

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

Legg merke til at posisjonen til SANT tilsvarer raden der fargen er "RØD".

For kortfattethet (og for å la logikken enkelt utvides med boolsk logikk), tvinger vi de SANNE FALSKE verdiene til 1s og 0s med det dobbelte negative:

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

som gir en matrise som dette:

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

Legg merke til at posisjonen 1 tilsvarer raden der fargen er "RØD". Denne matrisen returneres direkte til XLOOKUP-funksjonen som argument for oppslagsmatrise.

Vi kan nå bare formelen til:

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

Med en oppslagsverdi på 1, finner XLOOKUP 1 i 5. posisjon, og returnerer 5. rad i returoppstillingen, B9: D9.

Utvide logikken

Logikkens struktur kan lett utvides. Hvis du for eksempel vil begrense kampen til "RØD" i april måned, kan du bruke en formel som denne:

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

Her, fordi hvert av de to uttrykkene returnerer en matrise med SANNE FALSE-verdier, og fordi disse matriser multipliseres sammen, tvinger matematikkoperasjonen de SANNE og FALSE-verdiene til 1s og 0s. Det er ikke nødvendig å bruke det dobbelte negative.

Siden oppslagsverdien forblir 1, som i formelen ovenfor.

Første og siste kamp

Begge formlene ovenfor vil returnere den første kampen av "RØD" i et datasett. Hvis du trenger den siste kampen, kan du utføre en omvendt oppslag ved å sette søkemodusargumentet for XLOOKUP til -1:

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

Hvis du trenger å returnere resultater fra flere kamper, se FILTER-funksjonen.

Interessante artikler...