
Formula generică
=LOOKUP(2,1/(TEXT(dates,"mmyy")=TEXT(A1,"mmyy")),values)
rezumat
Pentru a căuta ultima intrare dintr-un tabel în funcție de lună și an, puteți utiliza funcția CĂUTARE cu funcția TEXT. În exemplul prezentat, formula din F5 este:
=LOOKUP(2,1/(TEXT($B$5:$B$13,"mmyy")=TEXT(E5,"mmyy")),$C$5:$C$13)
unde B5: B13 și E5: E7 conțin date valide, iar C5: C13 conține sume.
Explicaţie
Notă: valoarea de căutare a lui 2 este în mod deliberat mai mare decât orice valori din căutarea_vector, urmând conceptul de bignum.
Lucrând din interior spre exterior, expresia:
(TEXT($B$5:$B$13,"mmyy")=TEXT(E5,"mmyy"))
generează șiruri precum „0117” folosind valorile din coloana B și E, care sunt apoi comparate între ele. Rezultatul este o matrice ca aceasta:
(TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE)
unde TRUE reprezintă date din aceeași lună și an. Numărul 1 este apoi împărțit la această matrice. Rezultatul este o matrice de 1 sau divizare la zero erori (# DIV / 0!):
(1;1;1;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!)
care intră în CAUTARE ca matrice de căutare. LOOKUP presupune că datele sunt sortate în ordine crescătoare și întotdeauna se potrivește aproximativ. Când valoarea căutării 2 nu poate fi găsită, LOOKUP va corespunde cu valoarea anterioară, astfel căutarea va coincide cu ultima 1 din matrice.
În cele din urmă, LOOKUP returnează valoarea corespunzătoare în result_vector, care conține sumele din C5: C13.