Formule Excel: obtenez la première entrée par mois et par année -

Formule générique

(=INDEX(entry,MATCH(TRUE,TEXT(date,"mmyy")=TEXT(A1,"mmyy"),0)))

Sommaire

Pour rechercher la première entrée d'une table par mois et par année, vous pouvez utiliser une formule matricielle basée sur les fonctions INDEX, MATCH et TEXT.

la fonction LOOKUP avec la fonction TEXT. Dans l'exemple illustré, la formule en F5 est:

=INDEX(entry,MATCH(TRUE,TEXT(date,"mmyy")=TEXT(E5,"mmyy"),0))

où «entrée» est la plage nommée C5: C13, «date» est la plage nommée B5: B13 et E5 contient une date valide.

Il s'agit d'une formule matricielle et doit être saisie avec Ctrl + Maj + Entrée.

Explication

Remarque: les valeurs dans E5: E7 sont des dates réelles, formatées avec le format numérique personnalisé "mmaa".

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

MATCH(TRUE,TEXT(date,"mmyy")=TEXT(E5,"mmyy")

utilise la fonction TEXT pour générer un tableau de chaînes au format "mmaa":

("0117"; "0117"; "0117"; "0217"; "0217"; "0217"; "0317"; "0317"; "0317")

qui sont comparées à une seule chaîne basée sur la valeur en E5, "0117". Le résultat est un tableau de valeurs TRUE / FALSE:

(VRAI; VRAI; VRAI; FAUX; FAUX; FAUX; FAUX; FAUX; FAUX)

qui sont introduits dans la fonction MATCH en tant que tableau de recherche, avec une valeur de recherche de TRUE et un type de correspondance de zéro pour une correspondance exacte. En mode de correspondance exacte, la fonction MATCH renvoie la position du premier TRUE dans le tableau, qui est 1 dans la formule en F5. Cette position entre dans INDEX comme numéro de ligne, avec un tableau basé sur la plage nommée «entrée»:

=INDEX(entry,1)

Index renvoie l'élément à l'intérieur de l'entrée à la position spécifiée.

Remarque: si aucune entrée n'est trouvée pour un mois et une année donnés, cette formule renverra # N / A.

Première entrée basée sur la date du jour

Pour obtenir la première entrée pour un mois et une année donnés en fonction de la date du jour, vous pouvez adapter la formule pour utiliser la fonction AUJOURD'HUI au lieu de la valeur dans E5:

(=INDEX(entry,MATCH(TRUE,TEXT(date,"mmyy")=TEXT(TODAY(),"mmyy"),0)))

Articles intéressants...