Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

grande valeur et index equiv

11 réponses
Avatar
Circé
Bonjour à tous,

Je crois que je vais encore vous prendre la tête avec mes histoires de
matricielles !!! :D)))

Pour ceux et celles qui n'auraient pas suivi, je reprend mon histoire :

J'ai un tableau de x colonnes avec, entre autres, une colonne Pays et
une colonne Montant.
Je souhaite obtenir dans d'autres tableaux (un tableau par pays) les 5
plus grandes valeurs (colonne Montant) pour ce pays.

Pour cela, je mets le nom du pays en A1 et j'utilise la matricielle
suivante :
{=GRANDE.VALEUR((PAYS=$A$1)*Montant;1)}
jusqu'à 5

Une fois que j'ai obtenu mes 5 plus grandes valeurs, ça ne me suffit
pas car il faut quand même que sache à quoi elles correspondent. Je
refais donc une matricielle avec INDEX et EQUIV pour trouver la
correspondance, par exemple trouver le client. Supposant que ma formule
grande.valeur se trouve en A3:
{=INDEX(Client;EQUIV($A3;(Pays=$A$1)*Prévisionnel;0))}

Tout va très bien ! SAUF... bien entendu si j'ai, pour le même pays,
plus d'une fois la même valeur...
Et là, vous avez tout compris, ma fomule INDEX trouve toujours la
première...

J'ai pas l'impression qu'une fomule suffira. Peut être une macro ?

J'ai mis un exemple très allégé ici :
http://cjoint.com/?kiljjW5oTI

Par avance, merci à tous

Circé
http://faqword.fr

10 réponses

1 2
Avatar
Daniel.C
Bonjour.
Matricielles :
=INDEX(CLIENT;GRANDE.VALEUR(()*(PAYS=$A$16)*LIGNE(PAYS);1)-1;1)
et
=INDEX(CLIENT;GRANDE.VALEUR(()*(PAYS=$A$16)*LIGNE(PAYS);2)-1;1)
Ca donne mimi avant lulu; c'est jouable ?
--
Cordialement.
Daniel
"Circé" a écrit dans le message de news:

Bonjour à tous,

Je crois que je vais encore vous prendre la tête avec mes histoires de
matricielles !!! :D)))

Pour ceux et celles qui n'auraient pas suivi, je reprend mon histoire :

J'ai un tableau de x colonnes avec, entre autres, une colonne Pays et une
colonne Montant.
Je souhaite obtenir dans d'autres tableaux (un tableau par pays) les 5
plus grandes valeurs (colonne Montant) pour ce pays.

Pour cela, je mets le nom du pays en A1 et j'utilise la matricielle
suivante :
{=GRANDE.VALEUR((PAYS=$A$1)*Montant;1)}
jusqu'à 5

Une fois que j'ai obtenu mes 5 plus grandes valeurs, ça ne me suffit pas
car il faut quand même que sache à quoi elles correspondent. Je refais
donc une matricielle avec INDEX et EQUIV pour trouver la correspondance,
par exemple trouver le client. Supposant que ma formule grande.valeur se
trouve en A3:
{=INDEX(Client;EQUIV($A3;(Pays=$A$1)*Prévisionnel;0))}

Tout va très bien ! SAUF... bien entendu si j'ai, pour le même pays, plus
d'une fois la même valeur...
Et là, vous avez tout compris, ma fomule INDEX trouve toujours la
première...

J'ai pas l'impression qu'une fomule suffira. Peut être une macro ?

J'ai mis un exemple très allégé ici :
http://cjoint.com/?kiljjW5oTI

Par avance, merci à tous

Circé
http://faqword.fr




Avatar
AV
En adoptant la disposition de ton exemple et ses plages nommées...

* Sélection PREALABLE de A17:A21
* Saisie dans la barre de formule :
=GRANDE.VALEUR((PAYS=$A$16)*Montant;{1;2;3;4;5})
* validation par ctrl+maj+entrée

puis....

* Sélection PREALABLE de B17:B21
* Saisie dans la barre de formule :
=INDEX(CLIENT;EQUIV(GRANDE.VALEUR((PAYS=$A$16)/LIGNE(Montant)*0.999;{1;2;3;4;5});(PAYS=$A$16)/LIGNE(Montant)*0.999;0))
* validation par ctrl+maj+entrée

http://cjoint.com/?kimeSx8BVQ

AV
Avatar
Corto
Bonjour Circé,
en B17 :
=INDEX(CLIENT;EQUIV($A17;(PAYS=$A$16)*(CLIENT<>B16)*Montant;0)), vali der
par Ctrl+Maj+Enter puis recopier.

http://cjoint.com/?kimnWtFGER
Corto

Circé a écrit :
Bonjour à tous,

Je crois que je vais encore vous prendre la tête avec mes histoires d e
matricielles !!! :D)))

Pour ceux et celles qui n'auraient pas suivi, je reprend mon histoire :

J'ai un tableau de x colonnes avec, entre autres, une colonne Pays et
une colonne Montant.
Je souhaite obtenir dans d'autres tableaux (un tableau par pays) les 5
plus grandes valeurs (colonne Montant) pour ce pays.

Pour cela, je mets le nom du pays en A1 et j'utilise la matricielle
suivante :
{=GRANDE.VALEUR((PAYS=$A$1)*Montant;1)}
jusqu'à 5

Une fois que j'ai obtenu mes 5 plus grandes valeurs, ça ne me suffit
pas car il faut quand même que sache à quoi elles correspondent. Je
refais donc une matricielle avec INDEX et EQUIV pour trouver la
correspondance, par exemple trouver le client. Supposant que ma
formule grande.valeur se trouve en A3:
{=INDEX(Client;EQUIV($A3;(Pays=$A$1)*Prévisionnel;0))}

Tout va très bien ! SAUF... bien entendu si j'ai, pour le même pays ,
plus d'une fois la même valeur...
Et là, vous avez tout compris, ma fomule INDEX trouve toujours la
première...

J'ai pas l'impression qu'une fomule suffira. Peut être une macro ?

J'ai mis un exemple très allégé ici :
http://cjoint.com/?kiljjW5oTI

Par avance, merci à tous

Circé
http://faqword.fr




Avatar
Daniel.C
Salut, Corto.
Ta formule ne fonctionne que s'il n'y a que deux ex aequo.
--
Cordialement.
Daniel
"Corto" a écrit dans le message de news:
uT%
Bonjour Circé,
en B17 :
=INDEX(CLIENT;EQUIV($A17;(PAYS=$A$16)*(CLIENT<>B16)*Montant;0)), valider
par Ctrl+Maj+Enter puis recopier.

http://cjoint.com/?kimnWtFGER
Corto

Circé a écrit :
Bonjour à tous,

Je crois que je vais encore vous prendre la tête avec mes histoires de
matricielles !!! :D)))

Pour ceux et celles qui n'auraient pas suivi, je reprend mon histoire :

J'ai un tableau de x colonnes avec, entre autres, une colonne Pays et une
colonne Montant.
Je souhaite obtenir dans d'autres tableaux (un tableau par pays) les 5
plus grandes valeurs (colonne Montant) pour ce pays.

Pour cela, je mets le nom du pays en A1 et j'utilise la matricielle
suivante :
{=GRANDE.VALEUR((PAYS=$A$1)*Montant;1)}
jusqu'à 5

Une fois que j'ai obtenu mes 5 plus grandes valeurs, ça ne me suffit pas
car il faut quand même que sache à quoi elles correspondent. Je refais
donc une matricielle avec INDEX et EQUIV pour trouver la correspondance,
par exemple trouver le client. Supposant que ma formule grande.valeur se
trouve en A3:
{=INDEX(Client;EQUIV($A3;(Pays=$A$1)*Prévisionnel;0))}

Tout va très bien ! SAUF... bien entendu si j'ai, pour le même pays, plus
d'une fois la même valeur...
Et là, vous avez tout compris, ma fomule INDEX trouve toujours la
première...

J'ai pas l'impression qu'une fomule suffira. Peut être une macro ?

J'ai mis un exemple très allégé ici :
http://cjoint.com/?kiljjW5oTI

Par avance, merci à tous

Circé
http://faqword.fr




Avatar
Corto
Bonjour Daniel.C,
Je suis rouge de Honte :-[

Corto

Daniel.C a écrit :
Salut, Corto.
Ta formule ne fonctionne que s'il n'y a que deux ex aequo.



Avatar
Circé
Re... et merci de vous intéresser à mon big problem ;)

Corto, faut pas rougir, car je n'ai pas encore trouvé la solution !
J'ai donc essayé toutes vos solutions et voilà le résultat :

Daniel : ça ne fonctionne *QUE* pour les ex aequo. Quand ce n'est pas
un ex aequo, ça me donne une erreur #VALEUR!

Corto : ben, comme l'a dit Daniel, ça ne fonctionne qu'avec 2 ex
aequo... Mais je me contenterai de ta solution si on ne trouve rien
d'autre, bien que ce soit quand même ennuyeux, car je ne peux
absolument pas prévoir s'il y aura des ex aequo et combien... :s

AV : j'ai cru au miracle !!! :D
Et comme je n'ai pas compris ta formule, j'ai recopié, et ça me donne
des résultats bizarres que je n'arrive pas à analyser, mais en tous les
cas, ça ne va pas...

Si vous avez envie de regarder de plus près, j'ai ajouté sur le fichier
vos trois solutions et voilà ce que ça donne :
http://cjoint.com/?kipmdVx75a

Circé
http://faqword.fr

Daniel.C avait annoncé :
Bonjour.
Matricielles :
=INDEX(CLIENT;GRANDE.VALEUR(()*(PAYS=$A$16)*LIGNE(PAYS);1)-1;1)
et
=INDEX(CLIENT;GRANDE.VALEUR(()*(PAYS=$A$16)*LIGNE(PAYS);2)-1;1)
Ca donne mimi avant lulu; c'est jouable ?
--
Cordialement.
Daniel
"Circé" a écrit dans le message de news:

Bonjour à tous,

Je crois que je vais encore vous prendre la tête avec mes histoires de
matricielles !!! :D)))

Pour ceux et celles qui n'auraient pas suivi, je reprend mon histoire :

J'ai un tableau de x colonnes avec, entre autres, une colonne Pays et une
colonne Montant.
Je souhaite obtenir dans d'autres tableaux (un tableau par pays) les 5 plus
grandes valeurs (colonne Montant) pour ce pays.

Pour cela, je mets le nom du pays en A1 et j'utilise la matricielle
suivante :
{=GRANDE.VALEUR((PAYS=$A$1)*Montant;1)}
jusqu'à 5

Une fois que j'ai obtenu mes 5 plus grandes valeurs, ça ne me suffit pas
car il faut quand même que sache à quoi elles correspondent. Je refais donc
une matricielle avec INDEX et EQUIV pour trouver la correspondance, par
exemple trouver le client. Supposant que ma formule grande.valeur se trouve
en A3:
{=INDEX(Client;EQUIV($A3;(Pays=$A$1)*Prévisionnel;0))}

Tout va très bien ! SAUF... bien entendu si j'ai, pour le même pays, plus
d'une fois la même valeur...
Et là, vous avez tout compris, ma fomule INDEX trouve toujours la
première...

J'ai pas l'impression qu'une fomule suffira. Peut être une macro ?

J'ai mis un exemple très allégé ici :
http://cjoint.com/?kiljjW5oTI

Par avance, merci à tous

Circé
http://faqword.fr






Avatar
Daniel.C
Je suis très fort pour les ex aequo ;-)))
On va sans doute trouver autre chose.
Daniel
"Circé" a écrit dans le message de news:

Re... et merci de vous intéresser à mon big problem ;)

Corto, faut pas rougir, car je n'ai pas encore trouvé la solution !
J'ai donc essayé toutes vos solutions et voilà le résultat :

Daniel : ça ne fonctionne *QUE* pour les ex aequo. Quand ce n'est pas un
ex aequo, ça me donne une erreur #VALEUR!

Corto : ben, comme l'a dit Daniel, ça ne fonctionne qu'avec 2 ex aequo...
Mais je me contenterai de ta solution si on ne trouve rien d'autre, bien
que ce soit quand même ennuyeux, car je ne peux absolument pas prévoir
s'il y aura des ex aequo et combien... :s

AV : j'ai cru au miracle !!! :D
Et comme je n'ai pas compris ta formule, j'ai recopié, et ça me donne des
résultats bizarres que je n'arrive pas à analyser, mais en tous les cas,
ça ne va pas...

Si vous avez envie de regarder de plus près, j'ai ajouté sur le fichier
vos trois solutions et voilà ce que ça donne :
http://cjoint.com/?kipmdVx75a

Circé
http://faqword.fr

Daniel.C avait annoncé :
Bonjour.
Matricielles :
=INDEX(CLIENT;GRANDE.VALEUR(()*(PAYS=$A$16)*LIGNE(PAYS);1)-1;1)
et
=INDEX(CLIENT;GRANDE.VALEUR(()*(PAYS=$A$16)*LIGNE(PAYS);2)-1;1)
Ca donne mimi avant lulu; c'est jouable ?
--
Cordialement.
Daniel
"Circé" a écrit dans le message de news:

Bonjour à tous,

Je crois que je vais encore vous prendre la tête avec mes histoires de
matricielles !!! :D)))

Pour ceux et celles qui n'auraient pas suivi, je reprend mon histoire :

J'ai un tableau de x colonnes avec, entre autres, une colonne Pays et
une colonne Montant.
Je souhaite obtenir dans d'autres tableaux (un tableau par pays) les 5
plus grandes valeurs (colonne Montant) pour ce pays.

Pour cela, je mets le nom du pays en A1 et j'utilise la matricielle
suivante :
{=GRANDE.VALEUR((PAYS=$A$1)*Montant;1)}
jusqu'à 5

Une fois que j'ai obtenu mes 5 plus grandes valeurs, ça ne me suffit pas
car il faut quand même que sache à quoi elles correspondent. Je refais
donc une matricielle avec INDEX et EQUIV pour trouver la correspondance,
par exemple trouver le client. Supposant que ma formule grande.valeur se
trouve en A3:
{=INDEX(Client;EQUIV($A3;(Pays=$A$1)*Prévisionnel;0))}

Tout va très bien ! SAUF... bien entendu si j'ai, pour le même pays,
plus d'une fois la même valeur...
Et là, vous avez tout compris, ma fomule INDEX trouve toujours la
première...

J'ai pas l'impression qu'une fomule suffira. Peut être une macro ?

J'ai mis un exemple très allégé ici :
http://cjoint.com/?kiljjW5oTI

Par avance, merci à tous

Circé
http://faqword.fr










Avatar
AV
Si plus de 2 ex-aequo :

http://cjoint.com/?kip5DOIuoU

AV
Avatar
Daniel.C
http://cjoint.com/?kiqbFLN8oM

Daniel
"Circé" a écrit dans le message de news:

Re... et merci de vous intéresser à mon big problem ;)

Corto, faut pas rougir, car je n'ai pas encore trouvé la solution !
J'ai donc essayé toutes vos solutions et voilà le résultat :

Daniel : ça ne fonctionne *QUE* pour les ex aequo. Quand ce n'est pas un
ex aequo, ça me donne une erreur #VALEUR!

Corto : ben, comme l'a dit Daniel, ça ne fonctionne qu'avec 2 ex aequo...
Mais je me contenterai de ta solution si on ne trouve rien d'autre, bien
que ce soit quand même ennuyeux, car je ne peux absolument pas prévoir
s'il y aura des ex aequo et combien... :s

AV : j'ai cru au miracle !!! :D
Et comme je n'ai pas compris ta formule, j'ai recopié, et ça me donne des
résultats bizarres que je n'arrive pas à analyser, mais en tous les cas,
ça ne va pas...

Si vous avez envie de regarder de plus près, j'ai ajouté sur le fichier
vos trois solutions et voilà ce que ça donne :
http://cjoint.com/?kipmdVx75a

Circé
http://faqword.fr

Daniel.C avait annoncé :
Bonjour.
Matricielles :
=INDEX(CLIENT;GRANDE.VALEUR(()*(PAYS=$A$16)*LIGNE(PAYS);1)-1;1)
et
=INDEX(CLIENT;GRANDE.VALEUR(()*(PAYS=$A$16)*LIGNE(PAYS);2)-1;1)
Ca donne mimi avant lulu; c'est jouable ?
--
Cordialement.
Daniel
"Circé" a écrit dans le message de news:

Bonjour à tous,

Je crois que je vais encore vous prendre la tête avec mes histoires de
matricielles !!! :D)))

Pour ceux et celles qui n'auraient pas suivi, je reprend mon histoire :

J'ai un tableau de x colonnes avec, entre autres, une colonne Pays et
une colonne Montant.
Je souhaite obtenir dans d'autres tableaux (un tableau par pays) les 5
plus grandes valeurs (colonne Montant) pour ce pays.

Pour cela, je mets le nom du pays en A1 et j'utilise la matricielle
suivante :
{=GRANDE.VALEUR((PAYS=$A$1)*Montant;1)}
jusqu'à 5

Une fois que j'ai obtenu mes 5 plus grandes valeurs, ça ne me suffit pas
car il faut quand même que sache à quoi elles correspondent. Je refais
donc une matricielle avec INDEX et EQUIV pour trouver la correspondance,
par exemple trouver le client. Supposant que ma formule grande.valeur se
trouve en A3:
{=INDEX(Client;EQUIV($A3;(Pays=$A$1)*Prévisionnel;0))}

Tout va très bien ! SAUF... bien entendu si j'ai, pour le même pays,
plus d'une fois la même valeur...
Et là, vous avez tout compris, ma fomule INDEX trouve toujours la
première...

J'ai pas l'impression qu'une fomule suffira. Peut être une macro ?

J'ai mis un exemple très allégé ici :
http://cjoint.com/?kiljjW5oTI

Par avance, merci à tous

Circé
http://faqword.fr










Avatar
Circé
Merci AV, c'est tout bon... du vrai sur mesure ! ;)
J'ai compris ta formule, c'est très malin !! ;))

Merci à tous pour votre coopération
Daniel, il manquait un petit grain de magie dans ta formule...

A bientôt

Circé
http://faqword.fr


AV a exprimé avec précision :
Si plus de 2 ex-aequo :

http://cjoint.com/?kip5DOIuoU

AV


1 2