
Generisk formel
=LOOKUP(2,1/(TEXT(dates,"mmyy")=TEXT(A1,"mmyy")),values)
Sammanfattning
För att slå upp den sista posten i en tabell efter månad och år kan du använda LOOKUP-funktionen med TEXT-funktionen. I exemplet som visas är formeln i F5:
=LOOKUP(2,1/(TEXT($B$5:$B$13,"mmyy")=TEXT(E5,"mmyy")),$C$5:$C$13)
där B5: B13 och E5: E7 innehåller giltiga datum och C5: C13 innehåller mängder.
Förklaring
Obs: Lookup_value av 2 är medvetet större än alla värden i lookup_vector, enligt begreppet bignum.
Arbetar inifrån och ut, uttrycket:
(TEXT($B$5:$B$13,"mmyy")=TEXT(E5,"mmyy"))
genererar strängar som "0117" med hjälp av värdena i kolumn B och E, som sedan jämförs med varandra. Resultatet är en array som denna:
(TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE)
där SANT representerar datum i samma månad och år. Nummer 1 divideras sedan med denna matris. Resultatet är en matris med antingen 1 eller delas med nollfel (# DIV / 0!):
(1;1;1;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!)
som går in i LOOKUP som uppslagsmatris. LOOKUP antar att data sorteras i stigande ordning och alltid matchar ungefär. När uppslagsvärdet 2 inte kan hittas kommer LOOKUP att matcha det tidigare värdet, så uppslaget matchar den sista 1 i matrisen.
Slutligen returnerar LOOKUP motsvarande värde i result_vector, som innehåller beloppen i C5: C13.