Excel formula: XLOOKUP jaunākais pēc datuma -

Vispārēja formula

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

Kopsavilkums

Lai iegūtu jaunāko datu kopas atbilstību pēc datuma, varat izmantot XLOOKUP aptuvenajā atbilstības režīmā, iestatot match_mode uz -1. Parādītajā piemērā G5 formula, kas nokopēta uz leju, ir:

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

kur datums (C5: C15), vienums (B5: B15) un cena (D5: D15) ir nosaukti diapazoni.

Paskaidrojums

XLOOKUP piedāvā vairākas funkcijas, kas padara to par izcili piemērotu sarežģītākiem uzmeklējumiem. Šajā piemērā mēs vēlamies jaunāko preces cenu pēc datuma. Ja dati tiktu sakārtoti pēc datuma augošā secībā, tas būtu ļoti vienkārši. Tomēr šajā gadījumā dati netiek kārtoti.

Pēc noklusējuma XLOOKUP atgriezīs pirmo datu kopas atbilstību. Lai iegūtu pēdējo atbilstību, mēs varam iestatīt izvēles argumentu search_mode uz -1, lai liktu XLOOKUP meklēt “pēdējais līdz pirmais”. Tomēr mēs šeit nevaram izmantot šo pieeju, jo nav garantijas, ka preces pēdējā cena parādās pēdējā.

Tā vietā mēs varam iestatīt izvēles argumentu match_mode uz -1, lai piespiestu aptuveno atbilstību "precīzs vai nākamais mazākais", un pielāgot uzmeklēšanas vērtību un uzmeklēšanas masīvu, kā paskaidrots tālāk. Formula G5, kas nokopēta uz leju, ir:

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

Strādājot pa vienam argumentiem, uzmeklēšanas_vērtība ir lielākais (pēdējais) datums datumos:

MAX(date) // get max date value

Lookup_array tiek atvasināts ar loģisko izteiksmes izteiksmi:

(item=F5)*date

Salīdzinot katru vienumu ar vērtību F5, "Belt", mēs iegūstam TRUE / FALSE vērtību masīvu:

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

kur TRUE vērtības apzīmē ierakstus "Belt". Šis masīvs darbojas kā filtrs. Kad tas tiek reizināts ar nosauktā diapazona datuma vērtībām, TRUE / FALSE vērtības tiek vērtētas uz 1 un 0:

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

Rezultāts ir masīvs, kurā ir tikai nulles un jostu datumi:

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

Piezīme: sērijas numuri ir derīgi Excel datumi.

Šis masīvs tiek piegādāts tieši XLOOKUP kā arguments lookup_array.

Return_array ir nosaukta diapazona cena (D5: D15)

Neobligāts arguments nav atrasts.

Match_mode ir iestatīts uz -1, lai iegūtu precīzu atbilstību vai nākamo mazāko vienumu.

XLOOKUP caur meklēšanas masīvu meklē maksimālo datuma vērtību. Tā kā masīvs jau ir filtrēts, lai izslēgtu datumus, kas nav saistīti ar "Belt", XLOOKUP vienkārši atrod labāko atbilstību (vai nu precīzu, vai nākamo mazāko datumu), kas atbilst jaunākajam datumam.

Galīgais rezultāts ir cena, kas saistīta ar pēdējo datumu. Formula turpinās darboties, kad dati tiks sakārtoti jebkurā secībā.

Interesanti raksti...