Excel képlet: XLOOKUP összetett több kritériummal -

Tartalomjegyzék

Ö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)

érdekes cikkek...