
Резиме
Да бисте претраживали податке на основу више сложених критеријума, можете да користите функцију КСЛООКУП са више израза заснованих на логичкој логици. У приказаном примеру, формула у Г5 је:
=XLOOKUP(1,(LEFT(B5:B16)="x")*(C5:C16="east")*NOT(MONTH(D5:D16)=4),B5:E16)
Са КСЛООКУП подразумеваним подешавањима за начин подударања (тачно) и режим претраживања (од првог до последњег), формула се подудара са првим записом, где:
рачун почиње са "к" И регион је "исток", а месец НИЈЕ април.
што је четврти запис (ред 8) у приказаном примеру.
Објашњење
Обично је функција КСЛООКУП конфигурисана да тражи вредност у низу претраживања који постоји на радном листу. Међутим, када критеријуми коришћени за подударање вредности постану сложенији, можете користити логичку логику за креирање низа претраживања у лету који се састоји само од 1с и 0с, а затим потражите вредност 1. Ово је приступ који се користи у овом примеру:
=XLOOKUP(1,boolean_array,result_array)
У овом примеру потребни критеријуми су:
рачун почиње са "к" И регион је "исток", а месец НИЈЕ април.
За сваки од три одвојена критеријума горе користимо засебан логички израз. Први израз користи функцију ЛЕФТ да би тестирао да ли налог почиње са „к“:
LEFT(B5:B16)="x" // account begins with "x"
Пошто проверавамо дванаест вредности, резултат је низ са дванаест вредности попут ове:
(TRUE;FALSE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;TRUE;TRUE;FALSE;TRUE)
Други израз тестира да ли је Регион „исток“ користећи оператор једнак (=):
C5:C16="east" // region is east
Као и раније, добили смо још један низ са дванаест вредности ТРУЕ ФАЛСЕ:
(FALSE;FALSE;TRUE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;TRUE)
Трећи израз треба да изузме месец април. Најлакши начин да то урадите је да директно тестирате месец април помоћу функције МОНТХ:
MONTH(D5:D16)=4 // month is April
Затим користите функцију НОТ да бисте преокренули резултат:
NOT(MONTH(D5:D16)=4) // month is not April
који креира низ који исправно описује „не Април“:
(FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE)
Даље, сва три низа се множе заједно, а математичка операција присиљава вредности ТРУЕ и ФАЛСЕ на 1с и 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)
У логичкој аритметици множење ради попут логичке функције И, па је коначни резултат један овакав низ:
(0;0;0;1;1;0;0;0;0;1;0;1)
Формула се сада може преписати овако:
=XLOOKUP(1,(0;0;0;1;1;0;0;0;0;1;0;1),B5:E16)
Са 1 као вредности претраживања и подразумеваним подешавањима за начин подударања (тачно) и режим претраживања (од првог до последњег), КСЛООКУП одговара првом 1 (четврта позиција) и враћа одговарајући ред у пољу резултата, а то је Б8: Е8.
Последњи меч
Постављањем опционалног аргумента начина претраживања на -1, можете да пронађете „последње подударање“ са истим критеријумима попут овог:
=XLOOKUP(1,(LEFT(B5:B16)="x")*(C5:C16="east")*NOT(MONTH(D5:D16)=4),B5:E16,,,-1)