XL 2016 Gérer les ex-aequo avec INDEX + EQUIV

Ddken

XLDnaute Nouveau
Bonjour.
J'ai fait un top 5 de clients, en utilisant une formule hyper compliquée pour m'en sortir :
1656767637390.png

1656767650792.png

Le souci, c'est lorsqu'on se retrouve avec deux montants identiques. La fonction GRANDE.VALEUR n'a pas de problème, mais la recherche (INDEX + EQUIV), si. Ainsi, pour le sirop de pomme cythère qui a deux montants identiques en 3è et 4è position, je me retrouve avec une erreur :
1656768122629.png

La même chose ! Pouvez-vous m'aider à gérer les ex-aequo, de manière à ce que le logiciel m'affiche l'autre client qui a eu 10 000 de commandes ? Votre solution peut être une formule ou du code VBA.

PS : Par transparence, je dois ajouter que j'avais trouvé une solution sur ce site, mais je ne suis pas parvenu à comprendre les formules employées, et donc à reproduire la soluce sur mon classeur. Aussi, j'ai posé la même question sur le forum Excel-pratique, mais je n'ai pas pu y trouver de solution (du moins sous forme de formule ou de code).
 

Pièces jointes

  • Top 5 clients.xlsx
    476.7 KB · Affichages: 14
Solution
Bonjour Ddken,
Nulle envie de me plonger dans vos formules, simplement une astuce pour départager les exæquos avec Index Equiv.

Il "suffit" de rajouter à chaque valeur recherchée dans GRANDE.VALEUR une petite valeur liée au numéro de ligne où il se trouve avec par ex :
VB:
LIGNE($B$2:$B$21)/10000
Ainsi si la valeur est 5 à la ligne 18 cela donnera 5.0018, et cette même valeur à la ligne 23 5.0023. Donc on n'a plus d'exæquos.
Une PJ simple pour l'exemple, l'ordre des valeurs est donnée par :
Code:
=GRANDE.VALEUR($B$2:$B$21+LIGNE($B$2:$B$21)/10000;E2)
La recherche du client :
Code:
=INDEX($A$2:$A$21;EQUIV(F2;$B$2:$B$21+LIGNE($B$2:$B$21)/10000;0))
Attention, les deux formules étant matricielles, valider par Maj+Ctrl+Entrée.

En...

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Ddken,
Nulle envie de me plonger dans vos formules, simplement une astuce pour départager les exæquos avec Index Equiv.

Il "suffit" de rajouter à chaque valeur recherchée dans GRANDE.VALEUR une petite valeur liée au numéro de ligne où il se trouve avec par ex :
VB:
LIGNE($B$2:$B$21)/10000
Ainsi si la valeur est 5 à la ligne 18 cela donnera 5.0018, et cette même valeur à la ligne 23 5.0023. Donc on n'a plus d'exæquos.
Une PJ simple pour l'exemple, l'ordre des valeurs est donnée par :
Code:
=GRANDE.VALEUR($B$2:$B$21+LIGNE($B$2:$B$21)/10000;E2)
La recherche du client :
Code:
=INDEX($A$2:$A$21;EQUIV(F2;$B$2:$B$21+LIGNE($B$2:$B$21)/10000;0))
Attention, les deux formules étant matricielles, valider par Maj+Ctrl+Entrée.

En espérant que cela puisse vous aider.
 

Pièces jointes

  • Ddken.xlsx
    9.9 KB · Affichages: 25

Ddken

XLDnaute Nouveau
Bonjour Ddken,
Nulle envie de me plonger dans vos formules, simplement une astuce pour départager les exæquos avec Index Equiv.

Il "suffit" de rajouter à chaque valeur recherchée dans GRANDE.VALEUR une petite valeur liée au numéro de ligne où il se trouve avec par ex :
VB:
LIGNE($B$2:$B$21)/10000
Ainsi si la valeur est 5 à la ligne 18 cela donnera 5.0018, et cette même valeur à la ligne 23 5.0023. Donc on n'a plus d'exæquos.
Une PJ simple pour l'exemple, l'ordre des valeurs est donnée par :
Code:
=GRANDE.VALEUR($B$2:$B$21+LIGNE($B$2:$B$21)/10000;E2)
La recherche du client :
Code:
=INDEX($A$2:$A$21;EQUIV(F2;$B$2:$B$21+LIGNE($B$2:$B$21)/10000;0))
Attention, les deux formules étant matricielles, valider par Maj+Ctrl+Entrée.

En espérant que cela puisse vous aider.
Merci beaucoup pour l'astuce ! En fait, je voulais d'abord en apprendre plus sur les fonctions matricielles avant de répondre. Et après examen de votre classeur, j'ai compris l'astuce (qui m'aidera d'ailleurs certainement pour d'autres problématiques). Merci encore. 😊
 

Ddken

XLDnaute Nouveau
Bonsoir,

Une vidéo qui ouvre des possibilités. A voir et tester.
Avec un peu de tâtonnements on peut sortir quelque chose comme ça :
Bonsoir, goube. J'aurais bien aimé suivre le monsieur, mais je n'arrive pas à faire fonctionner PowerBI sur mon PC... Je le lance, la fenêtre de chargement apparait, mais ensuite ça reste ainsi ad vitam æternam... Je vais essayer de télécharger depuis une autre source.
 

Discussions similaires

Statistiques des forums

Discussions
314 717
Messages
2 112 169
Membres
111 449
dernier inscrit
jhugot