Récuperer la valeur de la première cellule d'une ligne Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
B
BarryGn
Jeune membre
Jeune membre
Messages : 15
Inscrit le : 18 avril 2018
Version d'Excel : 2013

Message par BarryGn » 30 mai 2018, 17:27

Bonjour à tous,

Je veux récuperer la valeur de la première cellule d'une ligne dans un tableau, qui corresponds à la première valeur
Superieur ou egale à 1,5 pour chaque colonne. (ci-joint un fichier excel avec un commentaire pour mieux comprendre ma requête)
Recupvaleur.xls
(43.5 Kio) Téléchargé 8 fois
A
Amadéus
Modérateur
Modérateur
Messages : 17'748
Appréciations reçues : 66
Inscrit le : 7 mai 2006
Version d'Excel : Office Excel 2003 FR et 2013FR

Message par Amadéus » 30 mai 2018, 18:00

Bonjour
Une façon de faire.
Formule en B2, incrémentée vers le bas
=INDIRECT("Feuil1!A"&MIN(SI(DECALER(Feuil1!$A$2:$A$8;;EQUIV(A2;Feuil1!$B$1:$G$1;0))>=1,5;LIGNE(Feuil1!$A$2:$A$8))))
Formule matricielle à valider avec les 3 touches Ctrl+Maj+Entrée
Cordialement
Recupvaleur.xls
(39 Kio) Téléchargé 4 fois
Amadéus vous informe que, pour cause de saturation, il ne peut plus répondre aux messages privés non sollicités.
B
BarryGn
Jeune membre
Jeune membre
Messages : 15
Inscrit le : 18 avril 2018
Version d'Excel : 2013

Message par BarryGn » 30 mai 2018, 18:45

Merci
B
BarryGn
Jeune membre
Jeune membre
Messages : 15
Inscrit le : 18 avril 2018
Version d'Excel : 2013

Message par BarryGn » 31 mai 2018, 00:06

Pour compléter ta formule: il faut remplacer MIN par MINA, afin d'avoir la bonne référence ligne. C'est à dire si jamais il y'a plusieurs MIN il prendra la référence ligne du premier MIN trouvé, car la fonction MIN prendra la référence ligne pour le dernier MIN trouvé.

exemple: s'il ya 1,5 1,5 1,5 respectivement sur la 1ère 2ème et 3ème ligne, MIN prendra 3ème ligne comme référence alors que MINA prendra la première ligne.

=INDIRECT("Feuil1!A"&MINA(SI(DECALER(Feuil1!$A$2:$A$8;;EQUIV(A2;Feuil1!$B$1:$G$1;0))>=1,5;LIGNE(Feuil1!$A$2:$A$8))))

à valider par ctrl + shift + entrer (formule matricielle)

Encore une fois, MERCI
Avatar du membre
eriiic
Passionné d'Excel
Passionné d'Excel
Messages : 9'162
Appréciations reçues : 353
Inscrit le : 7 février 2010
Version d'Excel : 2010fr

Message par eriiic » 31 mai 2018, 00:33

Bonjour,

pour l'exercice, un peu plus court :
=INDEX(Feuil1!$A$1:$A$8;MINA(SI(INDEX(Feuil1!$A$2:$G$8;;LIGNE())>=1.5;LIGNE($2:$8))))
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.
(les Shadoks)

En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
B
BarryGn
Jeune membre
Jeune membre
Messages : 15
Inscrit le : 18 avril 2018
Version d'Excel : 2013

Message par BarryGn » 31 mai 2018, 00:59

Eric,

J'ai pas testé ton code, mais visiblement il me semble qu'il donnera pas le résultat souhaité, car le but c'est pouvoir récupérer des valeurs en fonction des critères, et sur ta formule tout est figé, et nulle part je vois un critère selectionné.
je vais la tester et je te fais un retour.

Merci pour ta réponse.

cordialement,
Avatar du membre
eriiic
Passionné d'Excel
Passionné d'Excel
Messages : 9'162
Appréciations reçues : 353
Inscrit le : 7 février 2010
Version d'Excel : 2010fr

Message par eriiic » 31 mai 2018, 08:35

oui, teste, c'est mieux ;-)
Il faut que les noms soient dans le même ordre, comme sur ton exemple qui, j'espère, est conforme à la réalité.
formule matricielle bien sûr, à tirer vers le bas
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.
(les Shadoks)

En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
B
BarryGn
Jeune membre
Jeune membre
Messages : 15
Inscrit le : 18 avril 2018
Version d'Excel : 2013

Message par BarryGn » 31 mai 2018, 09:57

Elle marche bien ta formule Eric.
Merci de me donner plus de détail sur ta formule. Elle est simple et efficace.

cordialement,
Avatar du membre
eriiic
Passionné d'Excel
Passionné d'Excel
Messages : 9'162
Appréciations reçues : 353
Inscrit le : 7 février 2010
Version d'Excel : 2010fr

Message par eriiic » 31 mai 2018, 12:01

INDEX(Feuil1!$A$2:$G$8;;LIGNE()) ramène la colonne A:G en fonction de la ligne où elle se trouve.
Pour le reste peu de différence avec la proposition d'amadeus
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.
(les Shadoks)

En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
B
BarryGn
Jeune membre
Jeune membre
Messages : 15
Inscrit le : 18 avril 2018
Version d'Excel : 2013

Message par BarryGn » 31 mai 2018, 12:27

Merci Eric,

Sais tu comment incrémenté une formule matricielle via une macro. la marche ci-dessous marche pour les autres fonctions.

Range("I3").Select
Selection.AutoFill Destination:=Range("I3:I" & nl), Type:=xlFillDefault



cordialement
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message