„Excel“ formulė: gaukite paskutinę atitiktį -

Turinys

Bendroji formulė

(=MAX(IF(criteria,ROW(rng)-MIN(ROW(rng))+1)))

Santrauka

Norėdami sužinoti paskutinės paieškos vertės atitikties (t. Y. Paskutinio įvykio) poziciją, galite naudoti masyvo formulę, pagrįstą IF, ROW, INDEX, MATCH ir MAX funkcijomis. Parodytame pavyzdyje formulė H6 yra:

(=MAX(IF(names=H5,ROW(names)-MIN(ROW(names))+1)))

Kur „vardai“ yra pavadintas diapazonas C4: C11.

Pastaba: tai yra masyvo formulė, kurią reikia įvesti su „Control“ + „Shift“ + „Enter“.

Paaiškinimas

Šios formulės esmė yra ta, kad mes sudarome tam tikro diapazono eilučių skaičių sąrašą, atitinkantį vertę, o tada naudodamiesi funkcija MAX gausime didžiausią eilutės numerį, kuris atitinka paskutinę atitikimo vertę. Pavadintus diapazono „pavadinimus“ naudojame tik patogumui.

Dirbant iš vidaus, ši formulės dalis sukurs santykinį eilučių skaičių rinkinį:

ROW(names)-MIN(ROW(names))+1

Minėtos išraiškos rezultatas yra tokių skaičių masyvas:

(1;2;3;4;5;6;7;8)

Atkreipkite dėmesį, kad gauname 8 skaičius, atitinkančius 8 lentelės eilutes. Išsamesnės informacijos, kaip veikia ši formulės dalis, rasite šiame puslapyje.

Pagal šią formulę norime tik eilių numerių, kad atitiktų reikšmes, todėl vertėms filtruoti naudojame IF funkciją:

IF(names=H5,ROW(names)-MIN(ROW(names))+1)

Dėl to gaunamas masyvas, kuris atrodo taip:

(1;FALSE;FALSE;4;FALSE;FALSE;7;FALSE)

Atkreipkite dėmesį, kad šiame masyve vis dar yra aštuoni elementai. Tačiau išliko tik eilių numeriai, kurių vertė pavadintame diapazone „vardai“ yra lygi „amy“ (ty 1, 4, 7). Visi kiti masyvo elementai yra NETIESA, nes jiems nepavyko atlikti loginio IF funkcijos testo.

Galiausiai IF funkcija pateikia šį masyvą funkcijai MAX. MAX grąžina didžiausią masyvo vertę skaičių 7, kuris atitinka paskutinės eilutės numerį, kuriame vardas yra „amy“. Žinodami paskutinį atitinkantį eilutės numerį, galime naudoti INDEX, kad gautume vertę toje pozicijoje.

Antras paskutinis ir t.

Norėdami pereiti nuo antros iki paskutinės, nuo trečios iki paskutinės ir t. T., Galite perjungti iš MIN funkcijos į LARGE funkciją taip:

(=LARGE(IF(criteria,ROW(rng)-MIN(ROW(rng))+1),k))

kur k reiškia „n-tą pagal dydį“. Pvz., Norėdami gauti antrą-paskutinę rungtynes ​​aukščiau pateiktame pavyzdyje, galite naudoti:

(=LARGE(IF(names=H5,ROW(names)-MIN(ROW(names))+1),2))

Kaip ir anksčiau, tai yra masyvo formulė, kurią reikia įvesti paspaudus „Control + Shift + Enter“.

Įdomios straipsniai...