Signaler

Afficher l'avant dernière case non nulle d'une colonne [Résolu]

Posez votre question André Roussel - Dernière réponse le 7 août 2017 à 08:10 par alain-92
Bonjour,

J'ai demandé de l'aide ce matin pour avoir une formule permettant d'afficher la dernière case non nulle d'une colonne, j'ai reçu de très bonnes consignes (même si j'avoue les avoir un peu appliquées sans les comprendre). Et j'aimerais bien pouvoir afficher dans ma cellule d'à côté l'avant dernière case non nulle de ma colonne, histoire de pouvoir comparer mon résultat de la semaine avec celui de la semaine dernière.
J'ai donc essayé de bricoler un peu la formule que j'ai reçu ce matin, mais je ne parviens pas à avoir mon résultat ... :/
J’espère ne pas trop embêter les modérateurs avec mes questions un peu farfelues, mais étant un grand débutant d'excel je ne vois pas d'autres moyens d'avancer ...
Pour être bien clair avec ce que je voudrais avoir je vous donne un exemple :
Si j'ai la colonne :

8798
6545
2123
6545
9878
0
0
0
0

La cellule dans laquelle j'applique ma formule me renverrait : 6545 parce que c'est l'avant-dernier résultat non nul de ma colonne.
Merci d'avance pour votre compréhension et votre grande patience ;)

Cordialement,

André Roussel


Utile
+0
plus moins
Salut,

Essai :
{=INDEX(A1:A9;EQUIV(1;1/(A1:A9>0))-1;0)}
Donnez votre avis
Utile
+0
plus moins
Bonjour

en complément de la formule de Unombre_(Salut) (Pour info:ta formule est matricielle et doit être entrée avec la touche enter en maintenant les touches ctrl et shift enfoncées pour se retrouver automatiquement entre accolades _qui ne sont pas à entrer au clavier_ et par ailleurs il semble que le -1 soit de trop)

si vous avez réellement des 0 à la suite de votre liste de nombre, vous pouvez essayez aussi:

=INDEX(A:A;EQUIV(0;A:A;0)-1)
ou encore si votre champ commence en A2:

=INDEX(A2:A100;NB.SI(A2:A100;">0"))

si bien sur dans les deux cas, vous n'avez pas de cellule vide intercalée dans la liste de nombre

si certaines cellules vides, en matricielle cette fois on peut aussi utiliser:
=INDEX(A:A;SOMMEPROD((MAX(SI(A1:A100>0;LIGNE(A1:A100)))*1)))

mais là, autant utiliser la formule de Unombre

crdlmnt


Donnez votre avis
Utile
+0
plus moins
Non, je crois l'avoir essayé ce matin et je viens de la réessayer : ça ne marche pas :/ (ça m'affiche un 0)
Mais merci de la réponse :)
Vaucluse 20348Messages postés lundi 23 juillet 2007Date d'inscription ContributeurStatut 22 septembre 2017 Dernière intervention - 13 juil. 2017 à 16:13
Ah bon?, voyez ici et dites nous si ce n'est pas ça que vous cherchez
vous avez bien fait l'entrée en matricielle?
http://www.cjoint.com/c/GGnomXOVfGh
Répondre
Donnez votre avis
Utile
+0
plus moins
Je viens d'essayer toutes les formules que vous venez de me proposer(m^me celle sans le -1) en utilisant bien les touches (ctrl/maj/enter) mais aucune ne me donne l'avant-dernier résultat non nul de ma colonne. Au pire cela me donne un 0 dans ma cellule, au mieux cela me donne le dernier résultat de ma colonne...
Je sais pas si cela joue mais ma colonne est constituée de 7 cellules fusionnées au niveau de chaque ligne de mon tableau. (Je crois qu'il considère que seule la première est réellement remplie) Ducoup ma colonne est immense et s'étend de J14 jusqu'à J377.
Si vous avez besoin de renseignement supplémentaire pour m'aider, je vous les donne volontiers ;)

Bien cordialement,

André Roussel
Donnez votre avis
Utile
+0
plus moins
Quelle lâcheté de remercier par des -1 ceux qui bénévolement veulent rendre service.
Pour ma part, en remerciement je supprime mon post parce que ce n'est pas moi qui ai besoin d'aide

A+
Mike-31

Je suis responsable de ce que je dis, pas de ce que tu comprends...
Donnez votre avis
Utile
+0
plus moins
Désolé Mike 31,

Je reconnais que je suis un grand débutant (y compris en forum); Je pensais que cela servirait aux gens à voir quelle solution marche mais je ne pensais en aucun cas que cela pouvait vous pénaliser...
Je l'ai retiré !
Et vu comment vous m'aidez je suis même prêt à vous mettre un +1 !
Mais j'aimerais bien trouver la solution à mon problème :)
Sans offense

Bien cordialement,

André Roussel
Vaucluse 20348Messages postés lundi 23 juillet 2007Date d'inscription ContributeurStatut 22 septembre 2017 Dernière intervention - 13 juil. 2017 à 17:04
Alors avec des cellules fusionnées, c'est la bête noire
essayez d'adapter celle ci, en matricielle

=INDEX(A:A;SOMMEPROD((GRANDE.VALEUR(SI(A2:A21>0;LIGNE(A2:A21));2)*1)))

ça a l'air de fonctionner, mais c'est sans garantie

et notez que les cellules fusionnées sont des arrache-cheveux!!

crdlmnt... et sans rancune :-)) et la prochaine fois, dites nous tout d'entrée!
Répondre
André Roussel- 17 juil. 2017 à 08:37
Bonjour Vaucluse,

Désolé de cette réponse tardive, mais je n'ai pas touché à mon ordinateur du week end !
La formule que tu me propose est correcte ! Cela fonctionne enfin et j'en suis ravi !!!
Je sais que je peux faire confiance à ce forum pour m'apporter des réponses et c'est promis la prochaine fois je serai plus précis dans ma demande !
Merci encore et bonne journée
Répondre
Donnez votre avis
Utile
+0
plus moins
Vous avez raison Vaucluse, les cellules fusionnées sont les bêtes noires d'excel!
Mais la valeur est entrée dans la première "case" de chaque cellule fusionnée ! Donc je ne comprends pas pourquoi cela ne marche pas...
Quoiqu'il en soit je suis désolé d'être aussi insistant et je vous remercie encore de votre patience face à un grand-père aussi "relou" ;)

Bien cordialement,

André Roussel
Vaucluse 20348Messages postés lundi 23 juillet 2007Date d'inscription ContributeurStatut 22 septembre 2017 Dernière intervention - 13 juil. 2017 à 17:19
entre grand père bourru on devrait s'entendre
voyez ici si ça convient
http://www.cjoint.com/c/GGnptmERAvh
crdlmnt
Répondre
eriiic 21052Messages postés mardi 11 septembre 2007Date d'inscription ContributeurStatut 23 septembre 2017 Dernière intervention - 13 juil. 2017 à 19:08
Salut vaucluse,

reve-je ou tu ne t'es pas foulé sur ce coup ?
Comme formule je ne vois que =B25 :-)

En matricielle je propose :
=INDEX(A1:A29;GRANDE.VALEUR(SI(A1:A29;1)*LIGNE(A1:A29);2))

eric
Répondre
Vaucluse 20348Messages postés lundi 23 juillet 2007Date d'inscription ContributeurStatut 22 septembre 2017 Dernière intervention - 13 juil. 2017 à 19:24
Non mon ami Eric, tu ne rêves pas, j'ai du cliquer sur une mauvaise case en enregistrant le fichier, mais je m'étais quand même foulé
ma formule était et aurait du être à peu près comme la tienne, soit:

=INDEX(A:A;GRANDE.VALEUR(SI(A1:A100>0;LIGNE(A1:A100));2))

autrement dit ce que tu as écrit, mais c'est vrai qu'avec =B25 je ne risquais pas l'erreur!

Merci de la correction très bon WE et au plaisir
(-Je laisse mon message pour que le demandeur comprenne bien ce que veux dire le tien:-))

bien cordialement..
Répondre
Donnez votre avis
Utile
+0
plus moins
Bonjour,
J'avoue ne pas avoir tout lu et surtout tout compris.
A tout hasard, je propose un petit tableau simple à construire qui me semble répondre à la question posée.
http://www.cjoint.com/c/GGojblsnaTf
Bon 14 Juillet !
Cordialement,
Alain
Donnez votre avis
Utile
+0
plus moins
Bonjour à tous,

Si le but est d' "afficher dans ma cellule d'à côté l'avant dernière case non nulle de ma colonne", cette simple formule devrait être suffisante :
=DECALER($A$1;EQUIV(0;A2:A200;0)-2;0)
eriiic 21052Messages postés mardi 11 septembre 2007Date d'inscription ContributeurStatut 23 septembre 2017 Dernière intervention - 14 juil. 2017 à 12:41
Salut gb,

tu es sûr ? je n'obtiens que #N/A
Avec 1, 2 ,3 en A2, A6, A10 il faut retourner 2
eric
Répondre
gbinforme 14126Messages postés lundi 18 octobre 2004Date d'inscription ContributeurStatut 23 septembre 2017 Dernière intervention - 14 juil. 2017 à 21:38
Salut Éric,

J'ai préféré le soleil à l'écran informatique ;-)

Voilà ce que cela donne avec l'exemple d' André Roussel

http://www.cjoint.com/c/GGotEbj0k4l

Il faut bien sûr que les données soient conformes à ce qui est mis dans la question.

histoire de pouvoir comparer mon résultat de la semaine avec celui de la semaine dernière.
J'ai rajouté la comparaison en question.

Bon week-end.
Répondre
Donnez votre avis
Utile
+0
plus moins
Re-bonjour,
Un petit loupé, je joins de nouveau le tableau en question.
Cdt
Alain

http://www.cjoint.com/c/GGoktiq5Adf
Donnez votre avis
Utile
-2
plus moins
Notre ami Roussel s'enfuit quand on l'appelle...
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !