Excel-formel: XLOOKUP skiftlägeskänslig -

Innehållsförteckning

Generisk formel

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

Sammanfattning

För att skapa en skiftlägeskänslig exakt matchning kan du använda XLOOKUP-funktionen med EXAKT-funktionen. I exemplet som visas är formeln i F5:

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

som matchar på "RÖDT" (skiftlägeskänslig) och returnerar hela raden.

Förklaring

I sig är XLOOKUP-funktionen inte skiftlägeskänslig. Ett sökvärde för "RÖDT" matchar "rött", "RÖTT" eller "Rött". Vi kan kringgå denna begränsning genom att konstruera en lämplig uppslagsmatris för XLOOKUP med ett logiskt uttryck.

Arbetar inifrån och ut för att ge XLOOKUP möjligheten att matcha fall, använder vi EXAKT-funktionen så här:

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

Eftersom det finns 11 värden i intervallet E5: D15 returnerar EXACT en matris med 11 SANTA FALSKA resultat så här:

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

Lägg märke till att positionen SANT motsvarar raden där färgen är "RÖD".

För korthet (och för att logiken lätt ska kunna utvidgas med boolesk logik) tvingar vi de SANNA FALSKA värdena till 1s och 0s med det dubbla negativa:

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

som ger en array som denna:

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

Lägg märke till att positionen 1 motsvarar raden där färgen är "RÖD". Denna matris returneras direkt till XLOOKUP-funktionen som uppslagningsargument.

Vi kan nu helt enkelt formeln för att:

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

Med ett uppslagsvärde 1 hittar XLOOKUP 1 i 5: e position och returnerar 5: e raden i returmatrisen, B9: D9.

Utöka logiken

Logikens struktur kan enkelt utökas. Om du till exempel vill begränsa matchningen till "RÖD" i april månad kan du använda en sådan formel:

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

Här, för att vart och ett av de två uttrycken returnerar en matris med SANT FALSKA värden, och eftersom dessa matriser multipliceras tillsammans, tvingar matteoperationen SANT och FALSE-värden till 1s och 0s. Det är inte nödvändigt att använda det dubbla negativet.

Eftersom uppslagsvärdet förblir 1, som i formeln ovan.

Första och sista matchen

Båda formlerna ovan returnerar den första matchningen av "RÖD" i en datamängd. Om du behöver den senaste matchningen kan du utföra en omvänd sökning genom att ställa in söklägesargumentet för XLOOKUP till -1:

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

Om du behöver returnera resultat från flera matchningar, se FILTER-funktionen.

Intressanta artiklar...