XL pour MAC Comment trouver l'avant-dernière valeur non nulle d'une colonne ?

  • Initiateur de la discussion Initiateur de la discussion Targ19
  • Date de début Date de début

Targ19

XLDnaute Nouveau
Bonjour à tous,

Je cherche, sans succès, à trouver l'avant-dernière valeur non nulle d'une colonne ?

J'ai beau chercher sur le forum… je ne trouve pas…


Dans le fichier joint, en exemple, je souhaiterais afficher en E8

l'avant dernière valeur de la plage B4:B23, en l'occurrence 12 (en B10).

La dernière valeur étant 16 (en B15).


Merci par avance pour votre aide.
 

Pièces jointes

ripou37

XLDnaute Junior
Bonjour

avec cette formule MATRICIELLE (ca veut dire qu'il faut valider la formule avec Ctrl+Shift (flèche du haut) + Entrée
VB:
=INDEX(B4:B23;GRANDE.VALEUR((B4:B23<>"")*LIGNE(B4:B23);2)-3)
Bonjour,
J'avais besoin de trouver aussi l'avant dernière cellule non vide par formule et j'ai trouvé mon bonheur grâce à vous!
Par contre, j'aime bien comprendre comment ça fonctionne et là ... nada! pourriez-vous comment m'expliquer en quoi la recherche de la 2ème valeur la + grande hors les vides nous aide à nous positionner sur ce qu'on recherche ? d'autant + qu'on retranche une constante de -3 ?! et en changeant les chiffres, ça fonctionne quand même, j'avoue n'y rien comprendre !
Merci
Ripou37
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

En voici une autre qui ne nécessite pas de validation matricielle :

=INDEX($B$4:$B$23;AGREGAT(14;6;LIGNE($B$4:$B$23)-3/($B$4:$B$23<>"");2))

Agregat permet d'appliquer la fonction Grande.Valeur ( en autres fonctions ) à une plage de cellules en ignorant au choix (2ème paramètre) les erreurs, les totaux, sous-totaux, valeurs masquée etc.
L'idée ici est de produire des erreurs par la division du numéro de ligne par 0 lorsque le test (<>"") est faux et de ne retenir que les lignes sans erreurs par masquage de ces dernières (2 paramètre =6 ) pour en prendre l'avant dernière.


Cordialement
 
Dernière édition:

Discussions similaires