Récuperer la valeur de la première cellule d'une ligne

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)

47recupvaleur.zip (12.62 Ko)

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

44recupvaleur.zip (10.90 Ko)

Merci

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

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

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,

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

Elle marche bien ta formule Eric.

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

cordialement,

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

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

déjà tu peux te passer de l'autofill et tout remplir directement.

Ensuite en vba, plutôt que de se bagarrer avec les matricielles, tu inscris les formules normalement, et tu les passes en matricielles ensuite. Plus de possibilités (R1C1, Local,...) et c'est beaucoup plus simple :

    [B2:B7].FormulaR1C1 = "=INDEX(Feuil1!R1C1:R8C1,MINA(IF(INDEX(Feuil1!R2C1:R8C7,,ROW())>=1.5,ROW(R2:R8))))"
    [B2:B7].FormulaArray = [B2:B7].Formula

Je te remercie

Rechercher des sujets similaires à "recuperer valeur premiere ligne"