Excel formula: XLOOKUP najnovejši po datumu -

Splošna formula

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

Povzetek

Če želite dobiti najnovejše ujemanje v naboru podatkov po datumu, lahko uporabite XLOOKUP v načinu približnega ujemanja, tako da match_mode nastavite na -1. V prikazanem primeru je formula v G5, kopirana navzdol,:

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

kjer so datumi (C5: C15), postavka (B5: B15) in cena (D5: D15) imenovani obsegi.

Pojasnilo

XLOOKUP ponuja več funkcij, zaradi katerih je izjemno primeren za bolj zapletena iskanja. V tem primeru želimo najnovejšo ceno za izdelek po datumu. Če bi podatke razvrstili po datumu v naraščajočem vrstnem redu, bi bilo to zelo enostavno. Vendar v tem primeru podatki niso razvrščeni.

XLOOKUP privzeto vrne prvo ujemanje v naboru podatkov. Če želimo dobiti zadnje ujemanje, lahko izbirni argument search_mode nastavimo na -1, da povzroči, da XLOOKUP išče "zadnji na prvi". Vendar tega pristopa tukaj ne moremo uporabiti, ker ni nobenega zagotovila, da bo zadnja cena za izdelek prikazana zadnja.

Namesto tega lahko nastavimo neobvezni argument match_mode na -1, da prisilimo približno ujemanje "natančno ali naslednje najmanjše", in prilagodimo iskalno vrednost in iskalno polje, kot je razloženo spodaj. Kopirana formula v G5 je:

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

Lookup_value je pri obdelavi argumentov eden za drugim največji (zadnji) datum v podatkih:

MAX(date) // get max date value

Lookup_array je izpeljan z logičnim izrazom logike:

(item=F5)*date

S primerjavo vsake postavke z vrednostjo v F5, ​​"Pas", dobimo niz TRUE / FALSE vrednosti:

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

kjer vrednosti TRUE predstavljajo vnose za "Pas". Ta matrika deluje kot filter. Ko se pomnoži z vrednostmi v imenovanem datumu obsega , se vrednosti TRUE / FALSE izračunajo na 1 in 0:

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

Rezultat je matrika, ki vsebuje samo ničle in datume pasov:

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

Opomba: serijske številke so veljavni datumi v Excelu.

Ta matrika je dostavljena neposredno v XLOOKUP kot argument lookup_array.

Vrnitev_red je imenovana cena obsega (D5: D15)

Izbirni argument not_found ni naveden.

Način ujemanja je nastavljen na -1 za natančno ujemanje ali naslednji najmanjši element.

XLOOKUP v iskalnem polju išče največjo vrednost datuma. Ker je polje že filtrirano, da se izključijo datumi, ki niso povezani z "Pasom", XLOOKUP preprosto najde najboljše ujemanje (natančen datum ali naslednji najmanjši datum), ki ustreza najnovejšemu datumu.

Končni rezultat je cena, povezana z zadnjim datumom. Formula bo še naprej delovala, ko bodo podatki razvrščeni v poljubnem vrstnem redu.

Zanimive Članki...