Renvoyer à la première valeur non nulle

Pter22 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -  
Pter22 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -
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

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

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

    eric
    0
  2. Pter22 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
     
    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
  3. Pter22 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
     
    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
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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
    3. Pter22 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
       
      ca marche, merci beaucoup :)
      0