
Генеричка формула
=XLOOKUP(max,dates,results,,-1) // latest match by date
Резиме
Да бисте добили најновије подударање у скупу података по датуму, можете да користите КСЛООКУП у приближном режиму подударања подешавањем матцх_моде на -1. У приказаном примеру, формула у Г5, копирана доле, је:
=XLOOKUP(MAX(date),(item=F5)*date,price,,-1)
где су датуми (Ц5: Ц15), ставка (Б5: Б15) и цена (Д5: Д15) именовани опсези.
Објашњење
КСЛООКУП нуди неколико функција које га чине изузетно добрим за сложенија претраживања. У овом примеру желимо најновију цену за ставку по датуму. Када би се подаци сортирали према датуму у растућем редоследу, то би било врло једноставно. Међутим, у овом случају подаци нису сортирани.
Подразумевано ће КСЛООКУП вратити прво подударање у скупу података. Да бисмо добили последње подударање, можемо подесити опционални аргумент сеарцх_моде на -1 да би КСЛООКУП тражио "ласт то фирст". Међутим, овде не можемо да користимо овај приступ, јер не постоји гаранција да ће се најновија цена предмета појавити последња.
Уместо тога, можемо подесити опционални аргумент матцх_моде на -1 да форсирамо приближно подударање „тачног или следећег најмањег“ и прилагодимо вредност претраживања и поље претраживања како је објашњено у наставку. Копирана формула у Г5 је:
=XLOOKUP(MAX(date),(item=F5)*date,price,,-1)
Радећи један по један преко аргумената, лоокуп_валуе је највећи (најновији) датум у подацима:
MAX(date) // get max date value
Лоокуп_арраи је изведен са логичком логичком изразом:
(item=F5)*date
Упоређивањем сваке ставке са вредношћу у Ф5, „Појас“, добијамо низ вредности ТРУЕ / ФАЛСЕ:
(TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;TRUE;FALSE;FALSE)
где вредности ТРУЕ представљају уносе за „Појас“. Овај низ делује као филтер. Када се помножи са вредностима у именованом датуму опсега , вредности ТРУЕ / ФАЛСЕ процењују се на 1 и 0:
=(1;0;0;0;0;0;1;0;1;0;0)*date
Резултат је низ који садржи само нуле и датуме за појасеве:
=(43484;0;0;0;0;0;43561;0;43671;0;0)
Напомена: серијски бројеви су важећи Екцел датуми.
Овај низ се испоручује директно КСЛООКУП-у као аргумент лоокуп_арраи.
Низ ретурн_арраи је именована цена опсега (Д5: Д15)
Опционални аргумент нот_фоунд није наведен.
Матцх_моде је постављен на -1, за тачно подударање или следећу најмању ставку.
КСЛООКУП кроз низ претраживања тражи максималну вредност датума. Будући да је низ већ филтриран да изузме датуме који нису повезани са „Појасом“, КСЛООКУП једноставно проналази најбоље подударање (тачан датум или следећи најмањи датум) који одговара најновијем датуму.
Коначни резултат је цена повезана са најновијим датумом. Формула ће и даље радити када се подаци сортирају у било којем редоследу.