
Formula generică
=XLOOKUP(1,(rng1="red")*(rng2>100),results)
rezumat
Pentru a utiliza XLOOKUP cu mai multe logici, construiți expresii cu logică booleană și apoi căutați numărul 1. În exemplu, XLOOKUP este utilizat pentru a căuta prima vânzare către Chicago de peste 250 USD. Formula din G6 este:
=XLOOKUP(1,(D5:D14="chicago")*(E5:E14>250),B5:B14)
care returnează 0347, numărul comenzii primei înregistrări care îndeplinește criteriile furnizate.
Notă XLOOKUP nu este sensibil la majuscule și minuscule.
Explicaţie
XLOOKUP poate gestiona matrici în mod nativ, ceea ce îl face o funcție foarte utilă atunci când construiește criterii bazate pe mai multe expresii logice.
În exemplul prezentat, căutăm numărul comenzii primei comenzi către Chicago de peste 250 USD. Construim o matrice de căutare folosind următoarea expresie și logică booleană:
(D5:D14="chicago")*(E5:E14>250)
Când această expresie este evaluată, primim mai întâi două matrice de valori TRUE FALSE ca aceasta:
(FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE)* (FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE)
Când cele două matrice sunt înmulțite una cu cealaltă, operația matematică are ca rezultat o singură matrice de 1 și 0 astfel:
(0;0;0;0;0;0;0;1;0;0)
Acum avem următoarea formulă și puteți vedea de ce folosim 1 pentru valoarea de căutare:
=XLOOKUP(1,(0;0;0;0;0;0;0;1;0;0),B5:B14)
XLOOKUP se potrivește cu poziția 1 în poziția 8 și returnează cea de-a 8-a valoare corespunzătoare din B5: B14, care este 0347.
Cu un singur criteriu
După cum s-a văzut mai sus, operațiile matematice constrâng în mod automat valorile ADEVĂRATE și FALSE la 1 și 0. Prin urmare, atunci când utilizați mai multe expresii, o valoare de căutare 1 are sens. În cazurile în care aveți doar un singur criteriu, să spuneți „suma> 250”, puteți căuta ADEVĂRAT în acest fel:
=XLOOKUP(TRUE,E5:E14>250,B5:B14)
Alternativ, puteți forța valorile ADEVĂRATE FALS la 1 și 0 și să utilizați 1 astfel.
=XLOOKUP(1,--(E5:E14>250),B5:B14)