
Összegzés
Az adatok több összetett feltétel alapján történő megkereséséhez használhatja az XLOOKUP függvényt több kifejezéssel, logikai logika alapján. A bemutatott példában a G5 képlete a következő:
=XLOOKUP(1,(LEFT(B5:B16)="x")*(C5:C16="east")*NOT(MONTH(D5:D16)=4),B5:E16)
Az XLOOKUP alapértelmezett beállításai alapján az egyezési mód (pontos) és a keresési mód (az elsőtől az utolsóig) a képlet megfelel az első rekordnak, ahol:
számla kezdődik "x" -nel ÉS a régió "kelet", és a hónap NEM április.
amely a bemutatott példa negyedik rekordja (8. sor).
Magyarázat
Normál esetben az XLOOKUP függvény úgy van konfigurálva, hogy keressen egy értéket a munkalapon található keresési tömbben. Ha azonban az érték megfeleltetéséhez használt kritériumok bonyolultabbá válnak, akkor a logikai logika segítségével létrehozhat menet közben egy, csak 1-esből és 0-ból álló keresési tömböt, majd keresse meg az 1. értéket. Ez a megközelítés használható ebben a példában:
=XLOOKUP(1,boolean_array,result_array)
Ebben a példában a szükséges kritériumok a következők:
számla kezdődik "x" -nel ÉS a régió "kelet", és a hónap NEM április.
A fenti három külön kritérium mindegyikéhez külön logikai kifejezést használunk. Az első kifejezés a LEFT függvényt használja annak tesztelésére, hogy a Fiók "x" betűvel kezdődik-e:
LEFT(B5:B16)="x" // account begins with "x"
Mivel tizenkét értéket ellenőrizünk, az eredmény egy tizenkét ilyen értékű tömb:
(TRUE;FALSE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;TRUE;TRUE;FALSE;TRUE)
A második kifejezés az egyenlő (=) operátorral teszteli, hogy a régió "kelet"-e:
C5:C16="east" // region is east
A korábbiakhoz hasonlóan egy másik tömböt kapunk tizenkét IGAZ HAMIS értékkel:
(FALSE;FALSE;TRUE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;TRUE)
A harmadik kifejezésnek ki kell zárnia az április hónapot. Ennek legegyszerűbb módja az április hónap tesztelése közvetlenül a MONTH függvénnyel:
MONTH(D5:D16)=4 // month is April
Ezután használja a NOT funkciót az eredmény megfordításához:
NOT(MONTH(D5:D16)=4) // month is not April
amely létrehoz egy tömböt, amely helyesen írja le a "nem április" -ot:
(FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE)
Ezután mindhárom tömböt megszorozzuk, és a matematikai művelet az IGAZ és HAMIS értékeket 1 és 0 értékre kényszeríti:
(1;0;1;1;1;0;0;0;1;1;0;1)* (0;0;1;1;1;0;1;0;0;1;0;1)* (0;0;0;1;1;1;1;1;1;1;1;1)
A logikai számtanban a szorzás az ÉS logikai függvényhez hasonlóan működik, így a végeredmény egyetlen ilyen tömb lesz:
(0;0;0;1;1;0;0;0;0;1;0;1)
A képlet most így írható át:
=XLOOKUP(1,(0;0;0;1;1;0;0;0;0;1;0;1),B5:E16)
Az 1 keresési értékként, valamint az egyezési mód (pontos) és a keresési mód (elsőtől az utolsóig) alapértelmezett beállításai miatt az XLOOKUP megegyezik az első 1-vel (negyedik pozíció), és az eredménytömbben a megfelelő sort adja vissza, amely a B8: E8.
Utolsó mérkőzés
Ha az opcionális keresési mód argumentumot -1 értékre állítja, akkor az "utolsó egyezést" ugyanazokkal a feltételekkel keresse meg, mint ez:
=XLOOKUP(1,(LEFT(B5:B16)="x")*(C5:C16="east")*NOT(MONTH(D5:D16)=4),B5:E16,,,-1)