Exceli valem: XLOOKUP keerukate mitme kriteeriumiga -

Lang L: none (table-of-contents)

Kokkuvõte

Mitmel keerulisel kriteeriumil põhinevate andmete otsimiseks võite kasutada funktsiooni XLOOKUP mitme boolean loogikal põhineva avaldisega. Näidatud näites on valem G5-s järgmine:

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

XLOOKUPi vastesätete (täpne) ja otsingurežiimi (esimesest viimaseni) vaikeseadetega sobib valem esimese kirjega, kus

konto algab tähega "x" JA piirkond on "ida" ja kuu EI OLE aprill.

mis on näidatud näite neljas kirje (rida 8).

Selgitus

Tavaliselt on funktsioon XLOOKUP konfigureeritud otsima töölehel oleva otsingumassiivi väärtust. Kui aga väärtuse sobitamiseks kasutatavad kriteeriumid muutuvad keerukamaks, saate tõeväärtusloogika abil luua sirvimisel ainult 1-st ja 0-st koosneva otsimassiivi ja seejärel otsida väärtust 1. Selles näites kasutatakse sellist lähenemist:

=XLOOKUP(1,boolean_array,result_array)

Selles näites on nõutavad kriteeriumid järgmised:

konto algab tähega "x" JA piirkond on "ida" ja kuu EI OLE aprill.

Kõigi ülaltoodud kolme kriteeriumi puhul kasutame eraldi loogilist avaldist. Esimene avaldis kasutab funktsiooni LEFT, et testida, kas konto algab tähega "x":

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

Kuna kontrollime kaksteist väärtust, on tulemuseks massiiv kaheteistkümne väärtusega:

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

Teine avaldis testib, kas piirkond on "ida", kasutades operaatorit võrdne (=):

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

Nagu varemgi, saame veel ühe massiivi kaheteistkümne TRUE FALSE väärtusega:

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

Kolmas väljend peab välistama aprillikuu. Lihtsaim viis seda teha on testida aprillikuu funktsiooni MONTH otse:

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

Seejärel kasutage tulemuse ümberpööramiseks funktsiooni EI:

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

mis loob massiivi, mis kirjeldab õigesti sõna "mitte aprill":

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

Järgmisena korrutatakse kõik kolm massiivi kokku ja matemaatikaoperatsioon sunnib TÕENE ja VALE väärtused väärtusele 1 ja 0

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

Boole'i ​​aritmeetikas töötab korrutamine nagu loogiline funktsioon JA, nii et lõpptulemuseks on üks selline massiiv:

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

Valemi saab nüüd ümber kirjutada järgmiselt:

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

Kui otsingu väärtus on 1 ning vaste režiimi (täpne) ja otsingurežiimi (esimesest viimaseni) vaikesätted, vastab XLOOKUP esimesele 1 (neljas positsioon) ja tagastab tulemuste massiivi vastava rea, milleks on B8: E8.

Viimane matš

Kui määrate valikulise otsingurežiimi argumendi -1, saate leida "viimase vaste" samade kriteeriumidega:

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

Huvitavad Artiklid...