Excel formula: XLOOKUP sa složenim višestrukim kriterijima -

Sadržaj

Sažetak

Da biste pretraživali podatke na temelju višestrukih složenih kriterija, možete koristiti funkciju XLOOKUP s više izraza na temelju logičke logike. U prikazanom primjeru formula u G5 je:

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

Sa zadanim postavkama XLOOKUP-a za način podudaranja (točno) i način pretraživanja (od prvog do zadnjeg), formula se podudara s prvim zapisom, gdje:

račun počinje s "x" I regija je "istok", a mjesec NIJE travanj.

što je četvrti zapis (redak 8) u prikazanom primjeru.

Obrazloženje

Uobičajeno je funkcija XLOOKUP konfigurirana za traženje vrijednosti u nizu pretraživanja koji postoji na radnom listu. Međutim, kada kriteriji koji se koriste za podudaranje vrijednosti postanu složeniji, možete koristiti logičku logiku za kreiranje niza pretraživanja u letu koji se sastoji samo od 1 i 0, a zatim potražite vrijednost 1. Ovo je pristup koji se koristi u ovom primjeru:

=XLOOKUP(1,boolean_array,result_array)

U ovom primjeru potrebni kriteriji su:

račun počinje s "x" I regija je "istok", a mjesec NIJE travanj.

Za svaki od tri odvojena gornja kriterija koristimo zaseban logički izraz. Prvi izraz koristi funkciju LIJEVO za testiranje počinje li račun s "x":

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

Budući da provjeravamo dvanaest vrijednosti, rezultat je niz s dvanaest vrijednosti poput ove:

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

Drugi izraz testira je li Regija "istok" koristeći operator jednak (=):

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

Kao i prije, dobili smo još jedan niz s dvanaest TRUE FALSE vrijednosti:

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

Treći izraz treba izuzeti mjesec travanj. Najlakši način da to učinite je testiranje za mjesec travanj izravno s funkcijom MONTH:

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

Zatim upotrijebite funkciju NOT da biste poništili rezultat:

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

koji stvara niz koji ispravno opisuje "ne April":

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

Dalje, sva tri polja množe se zajedno, a matematička operacija prisiljava vrijednosti TRUE i FALSE na 1s i 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)

U logičkoj aritmetici množenje djeluje poput logičke funkcije I, pa je konačni rezultat jedan takav niz:

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

Formula se sada može prepisati ovako:

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

Uz 1 kao vrijednost pretraživanja i zadane postavke za način podudaranja (točno) i način pretraživanja (od prvog do zadnjeg), XLOOKUP odgovara prvom 1 (četvrti položaj) i vraća odgovarajući redak u polju rezultata, a to je B8: E8.

Posljednja utakmica

Postavljanjem neobaveznog argumenta načina pretraživanja na -1, možete pronaći "posljednje podudaranje" s istim kriterijima poput ovog:

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

Zanimljivi članci...