OVH Cloud OVH Cloud

formule matricielle re

12 réponses
Avatar
JEAN
Bonjour,

J'ai cette formule:
=INDEX(Feuil1!L15:L250;EQUIV($B$13&$B$14;Feuill1!$H$15:$H$250&Feuil1!$I$15:$I$250;0))

suivant les valeurs que prennent B13 et B14 dans ma feuille 2,j'irai
chercher dans ma feuille 1 les memes valeurs que prennent B13 et B14 et
afficher sur ma cellules la valeur correspondant de la colonne L de la
feuille 1

cela marche très bien pour une ligne, mais quand je tire mes lignes.j'ai un
petit souci

Supposons que dans ma colonne H et I j'ai plusieurs fois,des codes
identiques c'est a dire:
en feuille 1:
ligne15: 10 en H15 20 en I15 500 en L15
Ligne 16: 10 en H16 20 en I16 800 en L16
Ligne 17: 0 en H17 20 en I17 100 en L17
Ligne 18: 10 en H18 20 en I18 900 en L18

tout cela est dans la feuille 1
si dans ma feuille 2 je rentre en B13 la valeur 10 et en B14 la valeur 20
suivant ces conditions je vais chercher la bonne valeur dans la feuille 1
correspondant a ces conditions, mais comment tirer mes lignes avec cette
formules etant données que je peux avoir plusieur fois ces meme conditions
dans les colonnes de la feuille 1.
suivant ma formule que je met dans une colonne(par exemple la colonne D de
la feuille 2)
je voudrai Avoir:
en D15: 500
en D16: 800
en D17: 900
ces valeurs corresponderont bien au code rentré.

je n'aurai pas 100 car il correspond pas au code
merci de votre aide.

10 réponses

1 2
Avatar
Starwing
Bonsoir JEAN

Je te repropose ma réponse précédente avec une variation
de michdenis:

En D15:
Matricielle:
Validation par Ctrl + Shift + Entrée
=PETITE.VALEUR(SI(($B$13þuil1!$H$15:$H$250)*
($B$14þuil1!$I$15:$I$250);Feuil1!$L$15:$L$250);ligne(a1))
et tire la formule vers le bas.

Ta formule initiale:
=INDEX(Feuil1!L15:L250;EQUIV($B$13&$B$14;Feuill1!
$H$15:$H$250&Feuil1!$I$15:$I$250;0)) ne pourra jamais
répondre à ta demande. Elle trouve seulement la première
condition qui réponds à tes deux conditions $B$13&$B$14.
Toi tu veux trouver aussi la deuxième valeur, la troisième
valeur, etc...
La fonction PETITE.VALEUR contourne donc ce problème,
celle-ci peut trouver la première valeur, la deuxième
valeur, etc. qui réponds à tes deux conditions.

Starwing
Avatar
JEAN
oui ta formule avec petite valeur, me classe mes valeurs.

mais moi je ne veux pas les classer puisque dans ma feuille 1

j'ai les deux conditions: B13 =5 B14= 6 par exemple.
sur ma colonne E15 j'aurai 200 ma colonne F15= 103
sur ma colonne E16 j'aurai 197 ma colonne F16= 108
sur ma colonne E17 j'aurai 203 ma colonne F17= 112

moi je veux recuperer ces valeurs qui satisfait les conditions c'est a dire
recuperer
dans deux colonnes de ma feuilles 2
d'un coté 200 et de l'autre colonne 103
197 108
203 112

mais avec ta formule tout est rangé de la plus petite valeur
du coup ca correspond plus a ce que je souhaite avec ta formule j'aurai
197 103
200 108
203 112
mais moi je
veux juste récuperer
c'est a dire suivant les meme conditions j'aurai
200 103
197 108
203 112
comment remplacer petite valeur pour que je puisse avoir ceci

merci
"Starwing" wrote:

Bonsoir JEAN

Je te repropose ma réponse précédente avec une variation
de michdenis:

En D15:
Matricielle:
Validation par Ctrl + Shift + Entrée
=PETITE.VALEUR(SI(($B$13þuil1!$H$15:$H$250)*
($B$14þuil1!$I$15:$I$250);Feuil1!$L$15:$L$250);ligne(a1))
et tire la formule vers le bas.

Ta formule initiale:
=INDEX(Feuil1!L15:L250;EQUIV($B$13&$B$14;Feuill1!
$H$15:$H$250&Feuil1!$I$15:$I$250;0)) ne pourra jamais
répondre à ta demande. Elle trouve seulement la première
condition qui réponds à tes deux conditions $B$13&$B$14.
Toi tu veux trouver aussi la deuxième valeur, la troisième
valeur, etc...
La fonction PETITE.VALEUR contourne donc ce problème,
celle-ci peut trouver la première valeur, la deuxième
valeur, etc. qui réponds à tes deux conditions.

Starwing




Avatar
michdenis
Ceci est une copie du message adressé à l'autre fil traitant du même sujet :


Essaie ceci :

Tu colles le code dans le module Feuille de la Feuil2 de ton application. Si les adresses que tu as données, cela
devrait fonctionner sans retouches !

Si tu as déjà du code dans cet événement de la feuille, la section "Déclaration des variables" va dans le haut de la
procédure et tu insères ceci à la fin des procédure déjà existante. Assure-toi, que tu n'as pas déjà des variables dans
la procédure qui possèdent déjà le nom des variables que j'utilise dans ce code.

'-------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

'Déclaration des variables:
Dim Etat As Integer
Dim R As Range, R1 As Range

If Not Intersect(Target, Range("B13:B14")) Is Nothing Then
Application.EnableEvents = False
Etat = Application.Calculation
Application.Calculation = xlCalculationManual
On Error Resume Next
With Worksheets("Feuil1")
With .Range("H14:L250")
.AutoFilter field:=1, Criteria1:=Range("B13")
.AutoFilter field:=2, Criteria2:=Range("B14")
Set R = .Offset(1, 4).Resize(, .Columns.Count - 4)
Set R1 = R.SpecialCells(xlCellTypeVisible)
On Error GoTo 0
Range("L15:L250").Clear
R1.Copy Range("L15")
.AutoFilter
End With
End With
Application.EnableEvents = True
Application.Calculation = Etat
Set R = Nothing: Set R1 = Nothing
End If

End Sub
'-------------------------------------


Salutations!




"JEAN" a écrit dans le message de news:

oui ta formule avec petite valeur, me classe mes valeurs.

mais moi je ne veux pas les classer puisque dans ma feuille 1

j'ai les deux conditions: B13 =5 B14= 6 par exemple.
sur ma colonne E15 j'aurai 200 ma colonne F15= 103
sur ma colonne E16 j'aurai 197 ma colonne F16= 108
sur ma colonne E17 j'aurai 203 ma colonne F17= 112

moi je veux recuperer ces valeurs qui satisfait les conditions c'est a dire
recuperer
dans deux colonnes de ma feuilles 2
d'un coté 200 et de l'autre colonne 103
197 108
203 112

mais avec ta formule tout est rangé de la plus petite valeur
du coup ca correspond plus a ce que je souhaite avec ta formule j'aurai
197 103
200 108
203 112
mais moi je
veux juste récuperer
c'est a dire suivant les meme conditions j'aurai
200 103
197 108
203 112
comment remplacer petite valeur pour que je puisse avoir ceci

merci
"Starwing" wrote:

Bonsoir JEAN

Je te repropose ma réponse précédente avec une variation
de michdenis:

En D15:
Matricielle:
Validation par Ctrl + Shift + Entrée
=PETITE.VALEUR(SI(($B$13þuil1!$H$15:$H$250)*
($B$14þuil1!$I$15:$I$250);Feuil1!$L$15:$L$250);ligne(a1))
et tire la formule vers le bas.

Ta formule initiale:
=INDEX(Feuil1!L15:L250;EQUIV($B$13&$B$14;Feuill1!
$H$15:$H$250&Feuil1!$I$15:$I$250;0)) ne pourra jamais
répondre à ta demande. Elle trouve seulement la première
condition qui réponds à tes deux conditions $B$13&$B$14.
Toi tu veux trouver aussi la deuxième valeur, la troisième
valeur, etc...
La fonction PETITE.VALEUR contourne donc ce problème,
celle-ci peut trouver la première valeur, la deuxième
valeur, etc. qui réponds à tes deux conditions.

Starwing




Avatar
Starwing
Bonjour JEAN,

Dans ton premier exemple, en D16 la formule suivante:

Matricielle:
Validation par Ctrl + Shift + Enter

=INDIRECT(ADDRESSE(PETITE.VALEUR(SI(Feuil1!
$H$15:$H$250&Feuil1!$I$15:$I$250=$B$13&$B$14;LIGNE(Feuil1!
$H$15:$H$250));LIGNE()-15)+LIGNE($A$1)-1;COLONNE
($L$15);;;"Feuil1"))

Starwing
Avatar
michdenis
Bonjour Starwing,

Je n'ai pas testé la formule... mais la fonction Adresse() ne prend qu'un "D".


Salutations!


"Starwing" a écrit dans le message de news: 090f01c4e07e$5fa0c790$
Bonjour JEAN,

Dans ton premier exemple, en D16 la formule suivante:

Matricielle:
Validation par Ctrl + Shift + Enter

=INDIRECT(ADDRESSE(PETITE.VALEUR(SI(Feuil1!
$H$15:$H$250&Feuil1!$I$15:$I$250=$B$13&$B$14;LIGNE(Feuil1!
$H$15:$H$250));LIGNE()-15)+LIGNE($A$1)-1;COLONNE
($L$15);;;"Feuil1"))

Starwing
Avatar
JEAN
cette formulme ne focntionne pas j'ai #NOM

sait tu pourquoi

merci de ton aide


Bonjour JEAN,

Dans ton premier exemple, en D16 la formule suivante:

Matricielle:
Validation par Ctrl + Shift + Enter

=INDIRECT(ADDRESSE(PETITE.VALEUR(SI(Feuil1!
$H$15:$H$250&Feuil1!$I$15:$I$250=$B$13&$B$14;LIGNE(Feuil1!
$H$15:$H$250));LIGNE()-15)+LIGNE($A$1)-1;COLONNE
($L$15);;;"Feuil1"))

Starwing



Avatar
Starwing
Bonjour michdenis,

Merci pour cette précision,

Je travaille chez moi avec une version anglaise, je dois
donc tout retranscrire en Français lorsque j'envoie mes
réponses.

Starwing
Avatar
Starwing
Bonsoir JEAN,

Change ADDRESSE par ADRESSE dans la formule...

Erreur de retranscription de ma part...

Starwing
Avatar
Daniel.M
Je travaille chez moi avec une version anglaise, je dois
donc tout retranscrire en Français lorsque j'envoie mes
réponses.


http://www.excelabo.net/moteurs/compteclic.php?nom=dma-traductionformules

Il n'y a plus d'excuse ;-))

Salutations,

Daniel M.

Avatar
Starwing
Bonjour Daniel,

Merci beaucoup! ;0)

--
Au plaisir de vous revoir ...
Visitez >> http://www.excelabo.net
Le merveilleux site de Misange
Starwing

--
"Daniel.M" a écrit dans le message de
news:
Je travaille chez moi avec une version anglaise, je dois
donc tout retranscrire en Français lorsque j'envoie mes
réponses.


http://www.excelabo.net/moteurs/compteclic.php?nom=dma-traductionformules

Il n'y a plus d'excuse ;-))

Salutations,

Daniel M.





1 2