Екцел формула: КСЛООКУП са сложеним вишеструким критеријумима -

Преглед садржаја

Резиме

Да бисте претраживали податке на основу више сложених критеријума, можете да користите функцију КСЛООКУП са више израза заснованих на логичкој логици. У приказаном примеру, формула у Г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)

Занимљиви Чланци...