Excel vzorec: XLOOKUP nejnovější podle data -

Obecný vzorec

=XLOOKUP(max,dates,results,,-1) // latest match by date

souhrn

Chcete-li získat nejnovější shodu v sadě dat podle data, můžete použít XLOOKUP v režimu přibližné shody nastavením match_mode na -1. V zobrazeném příkladu je vzorec v G5, zkopírovaný dolů, následující:

=XLOOKUP(MAX(date),(item=F5)*date,price,,-1)

kde datum (C5: C15), položka (B5: B15) a cena (D5: D15) jsou pojmenovány rozsahy.

Vysvětlení

XLOOKUP nabízí několik funkcí, díky nimž je výjimečně vhodný pro složitější vyhledávání. V tomto příkladu chceme nejnovější cenu položky podle data. Pokud by data byla seřazena podle data vzestupně, bylo by to velmi jednoduché. V tomto případě však nejsou data roztříděna.

Ve výchozím nastavení vrátí XLOOKUP první shodu v datové sadě. Abychom získali poslední shodu, můžeme nastavit volitelný argument search_mode na hodnotu -1, což způsobí, že XLOOKUP vyhledá „od prvního k prvnímu“. Zde však nemůžeme použít tento přístup, protože neexistuje žádná záruka, že se poslední cena položky zobrazí jako poslední.

Místo toho můžeme nastavit volitelný argument match_mode na -1, aby vynutil přibližnou shodu „přesné nebo další nejmenší“, a upravit vyhledávací hodnotu a vyhledávací pole, jak je vysvětleno níže. Zkopírovaný vzorec v G5 je:

=XLOOKUP(MAX(date),(item=F5)*date,price,,-1)

Při procházení argumenty jeden po druhém je lookup_value největší (nejnovější) datum v datech:

MAX(date) // get max date value

Lookup_array je odvozen od logického logického výrazu:

(item=F5)*date

Porovnáním každé položky s hodnotou v F5 „Pás“ získáme pole hodnot PRAVDA / NEPRAVDA:

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

kde PRAVÉ hodnoty představují položky pro „Pás“. Toto pole funguje jako filtr. Když se vynásobí hodnotami v pojmenovaném datu rozsahu , hodnoty TRUE / FALSE se vyhodnotí na 1 a 0:

=(1;0;0;0;0;0;1;0;1;0;0)*date

Výsledkem je pole, které obsahuje pouze nuly a data pro pásy:

=(43484;0;0;0;0;0;43561;0;43671;0;0)

Poznámka: sériová čísla jsou platná data aplikace Excel.

Toto pole je dodáváno přímo do XLOOKUP jako argument lookup_array.

Return_array je pojmenovaná cena rozsahu (D5: D15)

Nepovinný argument not_found není poskytnut.

Match_mode je nastaven na -1 pro přesnou shodu nebo další nejmenší položku.

XLOOKUP prohledá vyhledávací pole pro maximální hodnotu data. Protože pole již bylo filtrováno, aby vyloučilo data, která nejsou spojena s „pásem“, XLOOKUP jednoduše najde nejlepší shodu (buď přesné datum, nebo další nejmenší datum), které odpovídá nejnovějšímu datu.

Konečným výsledkem je cena spojená s posledním datem. Vzorec bude i nadále fungovat, když budou data tříděna v libovolném pořadí.

Zajímavé články...