Renvoyer à la première valeur non nulle

Fermé
Pter22 Messages postés 15 Date d'inscription dimanche 10 janvier 2010 Statut Membre Dernière intervention 23 mai 2013 - 12 mars 2013 à 14:23
Pter22 Messages postés 15 Date d'inscription dimanche 10 janvier 2010 Statut Membre Dernière intervention 23 mai 2013 - 13 mars 2013 à 09:50
Bonjour,

J'ai deux colonnes A et B avec des valeurs obtenus expérimentalement, je cherche à renvoyer la valeur A correspondant à la première valeur B non nulle.

J'ai cherché mais je n'ai pas trouvé.

Merci de votre aide :)

3 réponses

eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
12 mars 2013 à 14:34
Bonjour,

=INDEX(A2:A10;MIN(SI(B2:B10<>0;LIGNE(B2:B10);9^9)))
formule matricielle à valider avec shift+ctrl+entrée

eric
0
Pter22 Messages postés 15 Date d'inscription dimanche 10 janvier 2010 Statut Membre Dernière intervention 23 mai 2013
12 mars 2013 à 15:37
Merci,

A quoi correspond le 9^9 ?


Et si maintenant, je souhaitais non plus que ca soit la première valeur non nulle mais la valeur maximum, qu'est ce que ca donnerait ?
0
Pter22 Messages postés 15 Date d'inscription dimanche 10 janvier 2010 Statut Membre Dernière intervention 23 mai 2013
12 mars 2013 à 15:47
Il ce passe quelque chose d'étrange, cela fonction "presque".

"=INDEX(B11:B2000;MIN(SI(E11:E2000<>0;LIGNE(E11:E2000);9^9)))"

(mon tableau à 2000 lignes)

Enfaite il me renvoit à la ligne 596 alors que la valeur "correcte" est celle de la ligne 586... je ne comprends pas
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
12 mars 2013 à 16:30
Pour max c'est plus simple :
=INDEX(A:A;EQUIV(MAX(B:B);B:B;0))

Pour le reste sans ton fichier impossible de répondre.
Déposer le fichier xls (réduit au nécessaire et anonymisé, avec les explications et éventuellement le résultat attendu) sur cjoint.com et coller ici le lien fourni.

eric
0
Pter22 Messages postés 15 Date d'inscription dimanche 10 janvier 2010 Statut Membre Dernière intervention 23 mai 2013
13 mars 2013 à 08:23
Voici le fichier

https://www.cjoint.com/c/CCniwVUDP1N

encore merci
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
13 mars 2013 à 09:38
La formule était prévue pour des données démarrant en ligne2, là tu démarres en ligne 11. Il faut en tenir compte :
=INDEX(B11:B2010;MIN(SI(E11:E2010<>0;LIGNE(E11:E2010);9^9))-10)

Mais si tes 0 sont tous regroupés en haut il y a plus simple :
=DECALER($B$10;NB.SI(E11:E3000;0)+1;)

eric
0
Pter22 Messages postés 15 Date d'inscription dimanche 10 janvier 2010 Statut Membre Dernière intervention 23 mai 2013
13 mars 2013 à 09:50
ca marche, merci beaucoup :)
0