
Generisk formel
=LOOKUP(2,1/(TEXT(dates,"mmyy")=TEXT(A1,"mmyy")),values)
Resumé
For at slå den sidste post i en tabel op efter måned og år, kan du bruge LOOKUP-funktionen med TEXT-funktionen. I det viste eksempel er formlen i F5:
=LOOKUP(2,1/(TEXT($B$5:$B$13,"mmyy")=TEXT(E5,"mmyy")),$C$5:$C$13)
hvor B5: B13 og E5: E7 indeholder gyldige datoer, og C5: C13 indeholder beløb.
Forklaring
Bemærk: opslagsværdien af 2 er bevidst større end nogen værdier i opslagsvektoren efter begrebet bignum.
Arbejder indefra og ud, udtrykket:
(TEXT($B$5:$B$13,"mmyy")=TEXT(E5,"mmyy"))
genererer strenge som "0117" ved hjælp af værdierne i kolonne B og E, som derefter sammenlignes med hinanden. Resultatet er en matrix som denne:
(TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE)
hvor SAND repræsenterer datoer i samme måned og år. Nummeret 1 divideres derefter med denne matrix. Resultatet er en matrix af enten 1 eller divider med nul fejl (# DIV / 0!):
(1;1;1;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!)
som går ind i LOOKUP som opslagsarray. LOOKUP antager, at data er sorteret i stigende rækkefølge og altid matcher omtrentligt. Når opslagsværdien på 2 ikke kan findes, vil LOOKUP matche den forrige værdi, så opslag vil matche den sidste 1 i matrixen.
Endelig returnerer LOOKUP den tilsvarende værdi i result_vector, som indeholder beløbene i C5: C13.