
Všeobecný vzorec
=LOOKUP(2,1/(TEXT(dates,"mmyy")=TEXT(A1,"mmyy")),values)
Zhrnutie
Ak chcete vyhľadať posledný záznam v tabuľke podľa mesiacov a rokov, môžete použiť funkciu LOOKUP s funkciou TEXT. V zobrazenom príklade je vzorec v F5:
=LOOKUP(2,1/(TEXT($B$5:$B$13,"mmyy")=TEXT(E5,"mmyy")),$C$5:$C$13)
kde B5: B13 a E5: E7 obsahujú platné dátumy a C5: C13 obsahujú sumy.
Vysvetlenie
Poznámka: lookup_value 2 je zámerne väčšia ako akékoľvek hodnoty vo lookup_vector, podľa konceptu bignum.
Pri práci zvnútra smerom von výraz:
(TEXT($B$5:$B$13,"mmyy")=TEXT(E5,"mmyy"))
generuje reťazce ako „0117“ pomocou hodnôt v stĺpcoch B a E, ktoré sa potom navzájom porovnávajú. Výsledkom je pole ako je toto:
(TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE)
kde TRUE predstavuje dátumy v rovnakom mesiaci a roku. Číslo 1 sa potom vydelí týmto poľom. Výsledkom je pole buď 1, alebo chyby vydelené nulou (# DIV / 0!):
(1;1;1;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!)
ktorý ide do LOOKUPU ako vyhľadávacie pole. LOOKUP predpokladá, že dáta sú zoradené vzostupne a vždy sa približne zhodujú. Ak nie je možné nájsť vyhľadávaciu hodnotu 2, LOOKUP sa bude zhodovať s predchádzajúcou hodnotou, takže vyhľadávanie sa bude zhodovať s poslednou 1 v poli.
Nakoniec funkcia LOOKUP vráti zodpovedajúcu hodnotu v parametri result_vector, ktorý obsahuje sumy v C5: C13.