
Generisk formel
(=INDEX(entry,MATCH(TRUE,TEXT(date,"mmyy")=TEXT(A1,"mmyy"),0)))
Sammendrag
For å slå opp den første oppføringen i en tabell etter måned og år, kan du bruke og matriseformel basert på INDEKS-, MATCH- og TEKST-funksjonene.
LOOKUP-funksjonen med TEXT-funksjonen. I eksemplet vist er formelen i F5:
=INDEX(entry,MATCH(TRUE,TEXT(date,"mmyy")=TEXT(E5,"mmyy"),0))
der "oppføring" er det navngitte området C5: C13, "dato" er det navngitte området B5: B13, og E5 inneholder en gyldig dato.
Dette er en matriseformel, og må angis med kontroll + skift + enter.
Forklaring
Merk: verdiene i E5: E7 er faktiske datoer, formatert med det tilpassede tallformatet "mmyy".
Arbeider fra innsiden og ut, uttrykket:
MATCH(TRUE,TEXT(date,"mmyy")=TEXT(E5,"mmyy")
bruker TEKST-funksjonen til å generere en rekke strenger i formatet "mmyy":
("0117"; "0117"; "0117"; "0217"; "0217"; "0217"; "0317"; "0317"; "0317")
som sammenlignes en enkelt streng basert på verdien i E5, "0117". Resultatet er en matrise med SANNE / FALSE verdier:
(SANT; SANT; SANN; FALSK; FALSK; FALSK; FALSK; FALSK; FALSK)
som mates inn i MATCH-funksjonen som oppslagsmatrise, med en oppslagsverdi på SANT, og en samsvarstype null for eksakt samsvar. I nøyaktig samsvarsmodus returnerer MATCH-funksjonen posisjonen til den første SANNE i matrisen, som er 1 i formelen i F5. Denne posisjonen går inn i INDEKS som radnummer, med en matrise basert på det navngitte området "oppføring":
=INDEX(entry,1)
Indeks returnerer varen i oppføringen på den angitte posisjonen.
Merk: hvis en oppføring ikke ble funnet for en gitt måned og et år, returnerer denne formelen # N / A.
Første oppføring basert på dagens dato
For å få den første oppføringen for en gitt måned og et år basert på dagens dato, kan du tilpasse formelen til å bruke TODAY-funksjonen i stedet for verdien i E5:
(=INDEX(entry,MATCH(TRUE,TEXT(date,"mmyy")=TEXT(TODAY(),"mmyy"),0)))