XL 2019 afficher le numéro de ligne de la dernière valeur différente de zéro

pat66

XLDnaute Impliqué
Bonsoir le forum,
j'ai besoin d'un coup de main car je n'arrive pas à récupérer le numéro de la dernière ligne différente de zéro, je vous ai fait un exemple ci dessous ou aussi dans la pièce jointe, dans cet exemple le numéro de ligne 5 doit s'afficher puisque la ligne 6 est à zéro
merci de votre aide
1 0
2 10
3 11
4 12
5 13
6 0
7 0

bonne soirée
 

Pièces jointes

  • Classeur1.xlsm
    8.3 KB · Affichages: 14
Solution
Bonjour,

Sylvanu, vous avez raison chaque mot a son importance, quoi qu'il en soit grâce a votre aide mon problème est résolu, voici les 2 solutions que je retiens pour ce problème :

sylvanu =INDEX(B1:B18;SOMMEPROD(MAX((E1:E18>0)*(LIGNE(E1:E18))))) (ou <>0)
et
Hasco =AGREGAT(14;6;B4:B18/(E4:E18<>0);1)

J'ai noté toutes les autres formules, matricielles ou pas, dans un classeur, cela me servira certainement à l'avenir

Un grand merci à tous pour tous ces conseils et en particulier à sylvanu et à Hasco qui ma fait découvrir AGREGAT et toutes ces fonctions, c'est pour cette raison que je la coche comme solution

pat66

mapomme

XLDnaute Barbatruc
Supporter XLD
Je ne pense pas qu'on puisse s'en sortir en formule non matricielle pour analyser une plage.
Je pencherai fortement aussi pour cette affirmation.

En tout cas, @pat66 a maintenant moult méthodes à sa disposition:
  • matricielle avec validation matricielle
  • matricielle sans validation matricielle
  • fonction personnalisée
  • sans matricielle avec une colonne auxiliaire
Le plus difficile est d'en choisir une! 🤪
 
Dernière édition:

pat66

XLDnaute Impliqué
Bonsoir le fil,

je teste tout ça demain et reviens vers vous, mais apparemment on est sur l'extraction du n° de ligne relatif et non absolu car c'est la colonne B qui contient 1,2,3,4,5,6,7 etc .... et non l'entête d'excel
et c'est de ce numéro dont j'ai besoin

trouver dernier chiffre <>0 en descendant la colonne E, alors le chiffre à gauche de la même ligne dans la colonne B doit s'afficher

En attendant un grand merci,
Pat66
 
Dernière édition:

pat66

XLDnaute Impliqué
Bonjour le fil,

j'ai pu tester l'ensemble de vos solutions, elles sont toutes très intéressantes et je les garde précieusement, mais pour cet exemple et parce je suis sur un classeur assez lourd, je souhaite éviter les matricielles et il faut que le résultat soit dans une cellule et non dans une macro avec un bouton

La solution d'Hasco AGREGAT me donne le numéro de ligne Absolu et non de le numéro de ligne relatif de la colonne B

C'est la solution de Sylvanu post #19 qui me parait la plus adapté pour cette situation
N° de ligne relatif (dans la table ) :
INDEX(B:B;SOMMEPROD(MAX((E1:E2000>0)*(LIGNE(E1:E2000)))))
ou
N° de ligne absolu =
INDEX(B4:B18;SOMMEPROD(MAX((E1:E2000>0)*(LIGNE(E1:E2000)))))

Sylvanu, je suis sérieux mais je n'ai pas vos compétences ;)

Un grand merci à tous pour votre aide si précieuse pour tous les passionnés d'excel

Cdt
 
Dernière édition:

Hasco

XLDnaute Barbatruc
Repose en paix

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Votre formule ne marche pas :
VB:
INDEX(B4:B18;SOMMEPROD(MAX((E1:E2000>0)*(LIGNE(E1:E2000)))))
Le sommeprod va vous donner non pas le N° de ligne mais l'emplacement, en l'occurrence dans votre PJ la dernière cellule non vide se trouve au 12 emplacement.
Si vous faites index à partir de 4 il vous donnera l'élément à la 12eme position à partir de 4 soit 12 et non 9.
Il faut faire coïncider les deux débuts de façon identique :
Code:
=INDEX(B1:B18;SOMMEPROD(MAX((E1:E18>0)*(LIGNE(E1:E18)))))
 

pat66

XLDnaute Impliqué
Bonjour,

Sylvanu, vous avez raison chaque mot a son importance, quoi qu'il en soit grâce a votre aide mon problème est résolu, voici les 2 solutions que je retiens pour ce problème :

sylvanu =INDEX(B1:B18;SOMMEPROD(MAX((E1:E18>0)*(LIGNE(E1:E18))))) (ou <>0)
et
Hasco =AGREGAT(14;6;B4:B18/(E4:E18<>0);1)

J'ai noté toutes les autres formules, matricielles ou pas, dans un classeur, cela me servira certainement à l'avenir

Un grand merci à tous pour tous ces conseils et en particulier à sylvanu et à Hasco qui ma fait découvrir AGREGAT et toutes ces fonctions, c'est pour cette raison que je la coche comme solution

pat66
 
Dernière édition:

Discussions similaires

Réponses
5
Affichages
332
Réponses
7
Affichages
486

Statistiques des forums

Discussions
313 290
Messages
2 096 852
Membres
106 766
dernier inscrit
jBa2023