
Generisk formel
=XLOOKUP(1,(rng1="red")*(rng2>100),results)
Sammanfattning
För att använda XLOOKUP med flera logiska, skapa uttryck med boolesk logik och leta sedan efter siffran 1. I exemplet används XLOOKUP för att slå upp den första försäljningen till Chicago över $ 250. Formeln i G6 är:
=XLOOKUP(1,(D5:D14="chicago")*(E5:E14>250),B5:B14)
som returnerar 0347, ordernumret på den första posten som uppfyller angivna kriterier.
Obs! XLOOKUP är inte skiftlägeskänslig.
Förklaring
XLOOKUP kan hantera arrays naturligt, vilket gör det till en mycket användbar funktion när man bygger kriterier baserade på flera logiska uttryck.
I det visade exemplet letar vi efter ordernumret för den första ordern till Chicago över $ 250. Vi konstruerar en uppslagsmatris med följande uttryck och boolesk logik:
(D5:D14="chicago")*(E5:E14>250)
När detta uttryck utvärderas får vi först två matriser med SANTA FALSKA värden så här:
(FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE)* (FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE)
När de två matriserna multipliceras med varandra, resulterar matteoperationen i en enda grupp av 1 och 0 så här:
(0;0;0;0;0;0;0;1;0;0)
Vi har nu följande formel och du kan se varför vi använder 1 för uppslagsvärdet:
=XLOOKUP(1,(0;0;0;0;0;0;0;1;0;0),B5:B14)
XLOOKUP matchar 1 i 8: e position och returnerar motsvarande åttonde värde från B5: B14, vilket är 0347.
Med ett enda kriterium
Som framgår ovan tvingar matteoperationer automatiskt Sanna och FALSKA värden till 1 och 0. Därför, när du använder flera uttryck, är ett uppslagsvärde 1 meningsfullt. I fall där du bara har ett enda kriterium, säg "belopp> 250", kan du leta efter SANT istället så här:
=XLOOKUP(TRUE,E5:E14>250,B5:B14)
Alternativt kan du tvinga de sanna FALSKA värdena till 1 och 0 och använda 1 så här.
=XLOOKUP(1,--(E5:E14>250),B5:B14)