Formule Excel: obtenir la dernière entrée par mois et par année -

Table des matières

Formule générique

=LOOKUP(2,1/(TEXT(dates,"mmyy")=TEXT(A1,"mmyy")),values)

Sommaire

Pour rechercher la dernière entrée dans une table par mois et année, vous pouvez utiliser la fonction RECHERCHE avec la fonction TEXTE. Dans l'exemple illustré, la formule en F5 est:

=LOOKUP(2,1/(TEXT($B$5:$B$13,"mmyy")=TEXT(E5,"mmyy")),$C$5:$C$13)

où B5: B13 et E5: E7 contiennent des dates valides et C5: C13 contient des montants.

Explication

Remarque: la valeur lookup_value de 2 est délibérément plus grande que toutes les valeurs du lookup_vector, suivant le concept de bignum.

Travaillant de l'intérieur vers l'extérieur, l'expression:

(TEXT($B$5:$B$13,"mmyy")=TEXT(E5,"mmyy"))

génère des chaînes comme "0117" en utilisant les valeurs des colonnes B et E, qui sont ensuite comparées les unes aux autres. Le résultat est un tableau comme celui-ci:

(TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE)

où VRAI représente les dates du même mois et de la même année. Le nombre 1 est ensuite divisé par ce tableau. Le résultat est un tableau de 1 ou de division par zéro erreur (# DIV / 0!):

(1;1;1;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!)

qui entre dans LOOKUP comme tableau de recherche. LOOKUP suppose que les données sont triées par ordre croissant et font toujours une correspondance approximative. Lorsque la valeur de recherche de 2 est introuvable, LOOKUP correspond à la valeur précédente, de sorte que la recherche correspond au dernier 1 du tableau.

Enfin, LOOKUP renvoie la valeur correspondante dans result_vector, qui contient les montants en C5: C13.

Articles intéressants...