Récupération de la dernière valeur dans une colonne (Microsoft Excel)
Vous pouvez vous demander s’il existe un moyen de renvoyer la dernière valeur (non la plus grande) d’une colonne. Par exemple, s’il existe des valeurs de A1 à A5, vous souhaiterez peut-être que la valeur de A5 soit renvoyée. Plus tard, si des valeurs ont été ajoutées dans A6 à A8, la valeur dans A8 doit être renvoyée.
Une solution peut être abordée de plusieurs manières. La première consiste à utiliser une formule telle que la suivante:
=INDEX(A:A,COUNT(A:A))
Cette formule renvoie la dernière valeur numérique d’une colonne, à condition que les valeurs commencent à (dans ce cas) A1. Cette approche ne fonctionne que si toutes les valeurs de la colonne sont numériques. Si les valeurs ne sont pas numériques ou s’il existe des cellules vides mélangées aux valeurs, une approche différente est nécessaire. Une façon est de copier la formule suivante dans la colonne B, juste à droite des cellules qui peuvent contenir des valeurs:
=IF(ISNUMBER(A2),IF(A2<>0,ROW(A2),""),"")
Dans ce cas, la formule renvoie le numéro de ligne de toute cellule de A qui contient une valeur numérique supérieure à zéro. La formule suivante peut ensuite être utilisée pour récupérer la dernière valeur de la colonne A:
=INDEX(A:A,MAX(B:B))
Cette formule fonctionne car elle renvoie le plus grand numéro de ligne de la colonne B, puis l’utilise comme index pour renvoyer la valeur correspondante de la colonne A.
Si vous ne souhaitez pas utiliser de colonne d’assistance (comme c’est le cas ici dans la colonne B), vous pouvez utiliser la formule suivante s’il existe un mélange de valeurs numériques et non numériques dans la colonne A:
=LOOKUP(2,1/(1-ISBLANK(A:A)),A:A)
Cette formule peut nécessiter quelques explications. La partie ISBLANK (A: A) renvoie un tableau qui répertorie une valeur FALSE dans chaque spot correspondant à une cellule de la colonne A qui contient une valeur et une valeur TRUE dans chaque spot correspondant à une cellule de la colonne A qui est vide. Ces valeurs TRUE / FALSE sont ensuite soustraites de 1 afin qu’elles deviennent des valeurs 0/1 au lieu de valeurs TRUE / FALSE.
Ce tableau est ensuite « inversé » en divisant 1 par les valeurs 0/1, ce qui donne un tableau qui contient un 1 partout où il y a une valeur dans la colonne A et un # DIV / 0! erreur là où la colonne A a une cellule vide. Enfin, la fonction LOOKUP recherche la valeur 2 dans le tableau. Il ne le trouvera pas (il n’y a que des 1 et des erreurs dans le tableau), il renvoie donc le dernier « 1 » de la liste et récupère ainsi la dernière valeur non vide de la colonne.
Comme vous pouvez le constater, renvoyer la dernière valeur d’une colonne peut parfois devenir un peu délicat. Une approche propre consiste simplement à développer votre propre fonction VBA qui renvoie la valeur souhaitée. Dans ce cas, vous pouvez programmer la fonction pour renvoyer n’importe quelle valeur, pas seulement des valeurs numériques.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (9008) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:
link: / excel-Retrieving_the_Last_Value_in_a_Column [Récupération de la dernière valeur dans une colonne]
.