INDEX EQUIV ur zone non contigue

Le
magic-dd
bonjour

j'ai un petit tableau avec des zones nommées (CD,LIVRE,DVD,REVUE)

ces zones font reference par exemple pour CD aux colonnes C,G,K

j'ai donc essayé de faire ma formule qui me permet de savoir qui à le
plus grand nombre d'article

=INDEX(NOMS;EQUIV(GRANDE.VALEUR(LIVRE;1);LIVRE;1))

seulement le résultat me donne un magnifique #N/A

voici le fichier pour mieux comprendre

merci

http://www.cijoint.fr/cjlink.php?file=cj201002/cijQqIJYwZ.xls
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #21196181
Bonjour,

http://cjoint.com/?coshw8y4Pr

JB
http://boisgontierjacques.free.fr/


On 14 fév, 16:02, magic-dd
bonjour

j'ai un petit tableau avec des zones nommées (CD,LIVRE,DVD,REVUE)

ces zones font reference par exemple pour CD aux colonnes C,G,K

j'ai donc essayé de faire ma formule qui me permet de savoir qui à le
plus grand nombre d'article

=INDEX(NOMS;EQUIV(GRANDE.VALEUR(LIVRE;1);LIVRE;1))

seulement le résultat me donne un magnifique #N/A

voici le fichier pour mieux comprendre

merci

http://www.cijoint.fr/cjlink.php?file=cj201002/cijQqIJYwZ.xls


Caetera
Le #21196321
"magic-dd"
bonjour

http://www.cijoint.fr/cjlink.php?file=cj201002/cijQqIJYwZ.xls

**********************
(pas d'equiv sur les plages discontinues......
dans un module :

Function EQUI_V(plage)
For Each c In [plage]
If c = Application.Max([plage]) Then EQUI_V = c.Row: Exit For
Next
End Function

dans la feuille

=INDEX(NOMS;EQUI_V(LIVRE)-2)

Etc
Tatanka
Le #21196311
Bonjour magic-dd,

Peut-être une fonction personnalisée.

1) Copier dans un module standard :

Public Function maxi(plage As Range) As String
Dim c As Range
Dim ligne As Long
Application.Volatile
For Each c In plage
If c.Value = Application.Max(plage) Then
ligne = c.Row
Exit For
End If
Next c
maxi = Cells(ligne, 1).Value
End Function

2) Entrer la formule =maxi(LIVRE) dans une cellule libre.

Serge



"magic-dd"
bonjour

j'ai un petit tableau avec des zones nommées (CD,LIVRE,DVD,REVUE)

ces zones font reference par exemple pour CD aux colonnes C,G,K

j'ai donc essayé de faire ma formule qui me permet de savoir qui à le
plus grand nombre d'article

=INDEX(NOMS;EQUIV(GRANDE.VALEUR(LIVRE;1);LIVRE;1))

seulement le résultat me donne un magnifique #N/A

voici le fichier pour mieux comprendre

merci

http://www.cijoint.fr/cjlink.php?file=cj201002/cijQqIJYwZ.xls
magic-dd
Le #21196301
Merci JB

mais pourquoi est on obligé de passer par du code vba

la seule formule index equiv ne suffit pas

j'essaye de comprendre
JB
Le #21196691
http://cjoint.com/?cos0v8tzdR

=INDEX(NOMS;EQUIV(MAX(LIVRE);DECALER(INDIRECT("b3:b11");;4*(EQUIV(VRAI;
(NB.SI(DECALER(INDIRECT("b3:b11");;{0;4;8});MAX(LIVRE))>0);0)-1));0))
Valider avec Maj+ctl=rl+entrée

JB


On 14 fév, 18:23, magic-dd
Merci JB

mais pourquoi est on obligé de passer par du code vba

la seule formule index equiv ne suffit pas

j'essaye de comprendre


JB
Le #21196681
http://boisgontierjacques.free.fr/fichiers/fonctionsperso/jb-trichampmultiz ones.xls

JB

On 14 fév, 18:52, JB
http://cjoint.com/?cos0v8tzdR

=INDEX(NOMS;EQUIV(MAX(LIVRE);DECALER(INDIRECT("b3:b11");;4*(EQUIV(VRAI;
(NB.SI(DECALER(INDIRECT("b3:b11");;{0;4;8});MAX(LIVRE))>0);0)-1));0))
Valider avec Maj+ctl=rl+entrée

JB

On 14 fév, 18:23, magic-dd


> Merci JB

> mais pourquoi est on obligé de passer par du code vba

> la seule formule index equiv ne suffit pas

> j'essaye de comprendre- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Tatanka
Le #21197011
Et pour prévoir le coup si ton tableau ne commence pas en A1 :

1)
Public Function maxi(plage As Range) As String
Dim c As Range
Dim ligne As Long
Application.Volatile
For Each c In plage
If c.Value = Application.Max(plage) Then
ligne = c.Row
Exit For
End If
Next c
maxi = Cells(ligne, Range("NOMS").Column)
End Function

2)
Dans une cellule libre =maxi(livre)

Serge



"Tatanka"
Bonjour magic-dd,

Peut-être une fonction personnalisée.

1) Copier dans un module standard :

Public Function maxi(plage As Range) As String
Dim c As Range
Dim ligne As Long
Application.Volatile
For Each c In plage
If c.Value = Application.Max(plage) Then
ligne = c.Row
Exit For
End If
Next c
maxi = Cells(ligne, 1).Value
End Function

2) Entrer la formule =maxi(LIVRE) dans une cellule libre.

Serge



"magic-dd"
bonjour

j'ai un petit tableau avec des zones nommées (CD,LIVRE,DVD,REVUE)

ces zones font reference par exemple pour CD aux colonnes C,G,K

j'ai donc essayé de faire ma formule qui me permet de savoir qui à le
plus grand nombre d'article

=INDEX(NOMS;EQUIV(GRANDE.VALEUR(LIVRE;1);LIVRE;1))

seulement le résultat me donne un magnifique #N/A

voici le fichier pour mieux comprendre

merci

http://www.cijoint.fr/cjlink.php?file=cj201002/cijQqIJYwZ.xls



Tatanka
Le #21197171
Et pour pouvoir utiliser la formule dans une feuille quelconque :

1)
Public Function maxi(plage As Range) As String
Dim c As Range
Dim ligne As Long
Application.Volatile
For Each c In plage
If c.Value = Application.Max(plage) Then
ligne = c.Row
Exit For
End If
Next c
maxi = Worksheets(plage.Parent.Name).Cells(ligne, Range("NOMS").Column)
End Function

2)
=maxi(livre), =maxi(dvd) ...

Serge




"Tatanka"
Et pour prévoir le coup si ton tableau ne commence pas en A1 :

1)
Public Function maxi(plage As Range) As String
Dim c As Range
Dim ligne As Long
Application.Volatile
For Each c In plage
If c.Value = Application.Max(plage) Then
ligne = c.Row
Exit For
End If
Next c
maxi = Cells(ligne, Range("NOMS").Column)
End Function

2)
Dans une cellule libre =maxi(livre)

Serge



"Tatanka"
Bonjour magic-dd,

Peut-être une fonction personnalisée.

1) Copier dans un module standard :

Public Function maxi(plage As Range) As String
Dim c As Range
Dim ligne As Long
Application.Volatile
For Each c In plage
If c.Value = Application.Max(plage) Then
ligne = c.Row
Exit For
End If
Next c
maxi = Cells(ligne, 1).Value
End Function

2) Entrer la formule =maxi(LIVRE) dans une cellule libre.

Serge



"magic-dd"
bonjour

j'ai un petit tableau avec des zones nommées (CD,LIVRE,DVD,REVUE)

ces zones font reference par exemple pour CD aux colonnes C,G,K

j'ai donc essayé de faire ma formule qui me permet de savoir qui à le
plus grand nombre d'article

=INDEX(NOMS;EQUIV(GRANDE.VALEUR(LIVRE;1);LIVRE;1))

seulement le résultat me donne un magnifique #N/A

voici le fichier pour mieux comprendre

merci

http://www.cijoint.fr/cjlink.php?file=cj201002/cijQqIJYwZ.xls







JB
Le #21197471
En utilisant la ligne de titres:

=INDEX(NOMS;MAX((champ=MAX(LIVRE))*LIGNE(champ)*(titre="LIVRE"))-
LIGNE(champ)+1)
Valider avec Maj+ctrl+entrée

champ þuil1!$B$3:$M$11
LIVRE þuil1!$B$3:$B$11;Feuil1!$F$3:$F$11;Feuil1!$J$3:$J$11
NOMS þuil1!$A$3:$A$11
titre þuil1!$B$2:$M$2

http://cjoint.com/?couzmO3SS1

JB

On 14 fév, 18:23, magic-dd
Merci JB

mais pourquoi est on obligé de passer par du code vba

la seule formule index equiv ne suffit pas

j'essaye de comprendre


magic-dd
Le #21197451
merci à tous pour cet élan de partage mais une question m'interpelle

si 2 personnes où plus on le meme chiffre dans la meme colonne CD par
exemple

est il possible de faire ressortir les noms correspondants

merci et désolé de cet élément que je n'avais pas évoqué aupara vant
Publicité
Poster une réponse
Anonyme