Excel formula: XLOOKUP ar sarežģītiem vairākiem kritērijiem -

Satura rādītājs

Kopsavilkums

Lai meklētu datus, pamatojoties uz vairākiem sarežģītiem kritērijiem, varat izmantot funkciju XLOOKUP ar vairākām izteiksmēm, pamatojoties uz loģisko loģiku. Parādītajā piemērā formula G5 ir:

=XLOOKUP(1,(LEFT(B5:B16)="x")*(C5:C16="east")*NOT(MONTH(D5:D16)=4),B5:E16)

Izmantojot XLOOKUP noklusējuma iestatījumus spēles režīmam (precīzs) un meklēšanas režīmam (pirmais līdz pēdējam), formula atbilst pirmajam ierakstam, kur:

konts sākas ar "x" UN reģions ir "austrumi", un mēnesis NAV aprīlis.

kas ir ceturtais ieraksts (8. rinda) parādītajā piemērā.

Paskaidrojums

Parasti funkcija XLOOKUP ir konfigurēta, lai meklētu vērtību uzmeklēšanas masīvā, kas pastāv darblapā. Tomēr, kad vērtības saskaņošanai izmantotie kritēriji kļūst sarežģītāki, varat izmantot Būla loģiku, lai izveidotu uzmeklēšanas masīvu, kas sastāv tikai no 1 un 0, pēc tam meklējiet vērtību 1. Šī piemērs tiek izmantots šajā piemērā:

=XLOOKUP(1,boolean_array,result_array)

Šajā piemērā obligātie kritēriji ir:

konts sākas ar "x" UN reģions ir "austrumi", un mēnesis NAV aprīlis.

Katram no trim iepriekš minētajiem kritērijiem mēs izmantojam atsevišķu loģisku izteiksmi. Pirmajā izteiksmē tiek izmantota funkcija LEFT, lai pārbaudītu, vai konts sākas ar "x":

LEFT(B5:B16)="x" // account begins with "x"

Tā kā mēs pārbaudām divpadsmit vērtības, rezultāts ir masīvs ar šādām divpadsmit vērtībām:

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

Otra izteiksme pārbauda, ​​vai reģions ir "austrumi", izmantojot vienādu ar (=) operatoru:

C5:C16="east" // region is east

Tāpat kā iepriekš, mēs iegūstam vēl vienu masīvu ar divpadsmit TRUE FALSE vērtībām:

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

Trešajā izteiksmē jāizslēdz aprīļa mēnesis. Vieglākais veids, kā to izdarīt, ir pārbaudīt aprīļa mēnesi tieši ar funkciju MONTH:

MONTH(D5:D16)=4 // month is April

Pēc tam izmantojiet funkciju NOT, lai mainītu rezultātu:

NOT(MONTH(D5:D16)=4) // month is not April

kas izveido masīvu, kas pareizi raksturo "nav aprīlis":

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

Pēc tam visi trīs masīvi tiek reizināti kopā, un matemātikas darbība TRUE un FALSE vērtības piespiež līdz 1s un 0s:

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

Būla aritmētikā reizināšana darbojas kā loģiskā funkcija UN, tāpēc gala rezultāts ir viens šāds masīvs:

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

Formulu tagad var pārrakstīt šādi:

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

Ar uzmeklēšanas vērtību 1 un noklusējuma iestatījumiem atbilstības režīmam (precīzs) un meklēšanas režīmam (no pirmā līdz pēdējam), XLOOKUP sakrīt ar pirmo 1 (ceturtā pozīcija) un atgriež atbilstošo rindu rezultātu masīvā, kas ir B8: E8.

Pēdējā spēle

Iestatot izvēles meklēšanas režīma argumentu -1, jūs varat atrast "pēdējo atbilstību" ar tādiem pašiem kritērijiem kā šis:

=XLOOKUP(1,(LEFT(B5:B16)="x")*(C5:C16="east")*NOT(MONTH(D5:D16)=4),B5:E16,,,-1)

Interesanti raksti...