Monsieur Excel
Pour tout savoir faire sur Excel !

04 octobre 2012

La dernière cellule non vide

Il est parfois nécessaire, dans un bloc, de récupérer la valeur de la dernière cellule non vide du bloc. Nous prenons ici le bloc à fond bleu ciel A1:J1 et nous voulons récupérer – dans les cellules à fond jaune – la valeur de la dernière cellule non vide de ce bloc.
 
Comme c’est fréquemment le cas en modélisation, il y a de multiples solutions possibles. Nous vous en montrons trois ici, chacune ayant un caractère particulier. Les formules de la colonne A sont reproduites en colonne B.

Une formule matricielle


La première solution est une formule matricielle, donc validée par [Ctrl]-[Maj]-[Entrée]. Elle récupère par la fonction Index() la valeur du vecteur dont l’indice est le numéro de la dernière colonne dans laquelle on a trouvé une cellule non vide.

Cette formule nous montre – une fois de plus – que l’on peut pratiquement résoudre tous les problèmes d’Excel à l’aide de formules matricielles.

Une formule originale

La seconde formule est doublement originale.

Tout d’abord car elle crée un vecteur grâce à la formule 1/(A1:J1<>"") : quand on évalue cette formule, on obtient {1.#DIV/0!.1.1.#DIV/0!.1.1.#DIV/0!.1.#DIV/0!}, donc un vecteur contenant un 1 pour chaque position non vide et la valeur d’erreur #DIV/0! pour chaque position vide.

La seconde originalité vient de ce que le troisième argument est le vecteur lui-même alors qu’intuitivement on l’aurait imaginé en deuxième argument plutôt qu’en troisième.

La formule la plus simple

La troisième solution est la plus simple que j’aie pu imaginer mais elle exige que les cellules concernées ne reçoivent que des valeurs positives, ce qui est quand même fréquemment le cas dans des tableaux de données Excel.

Si l’on remplace le premier argument « -1 » par « -10^33 », cette formule marchera aussi tant que le tableau contiendra des nombres quelconques supérieurs à -10^33.

Remarque – Cet article a déjà été publié le 21 septembre 2008, mais – cette fois-ci – nous allon le compléter…


1 Commentaire(s):

Enregistrer un commentaire

<< Accueil