Index problème doublons

Bonjour

J'explique le but de mon fichier.

J'ai une colonne qui représente B(client) C(montant) de l'année courante et une autre section G(client) H(montant) de l'année précédente.

Le but est d'avoir plusieurs macro qui vont m'afficher dans une autre section le résultat demander. Exemple Top 20 acheteur de l'année courante ou bien montrer tout ceux qui sont en baisse d'achat ou en hausse. J'arrive a tout faire sauf que je veut trier par ordre de baisse ou d'augmentation. Je n'arrive pas a le faire avec trier ou filtrer alors j'ai décider de mettre dans une autre section tout mes résultat en baisse et ensuite dans la colonne O je met PETITE.VALEUR ou GRANDE.VALEUR et ensuite j'index equiv les autre colonne avec et ca me met en ordre croissant ou décroissant. Mon problème est que si il y a une valeur double EXEMPLE un client a acheter 0 l'an passer. Alors dans ma zone en ordre il va m'afficher 2x le même client, même problème avec la colonne de pourcentage etc. Alors je cherche une solution pour soit trier avec une autre fonction (elle doit se mettre en macro) ou bien comment index equiv en gérant les doublons.

Je joint mon fichier test

12classtest.xlsm (90.24 Ko)

Bonjour,

le but est donc de modifier les formules de 4 colonnes (L à O) ou uniquement O, ou L ?

Il peut y avoir deux 0 en haut de la colonne M ?

Bonjour,

Le but est de classer dans l'ordre croissant ou décroissant selon le contexte les donnée dans les casses U à X vers les colonne L à O alors oui il faut trouver une manière que =INDEX(V:W;EQUIV(N4;W:W;0);1) prennent en compte qu' 'il peut y avoir plusieurs fois la même valeur est qu'il index les bon client et bonne valeur quand même. Car la exemple K4 à O4 et K5 à O5 affiche les même donnée car il y a 2x les même valeur dans X17 et X18, de même pour W17 et W18.

Je sais pas si mon problème est clair, j'ai un peu de misère a m'exprimer :)

C'est pas super clair

Si je comprends bien il peut y avoir deux 0 en haut de la colonne M (parce qu'il y en a 2 en V), mais chaque client ne peut apparaître qu'une fois et il faudrait qu'on voie TEST 15 en L5, c'est ça ?

Exactement

Enfait j'utilise =PETITE.VALEUR dans la colonne O pour mettre en ordre croissant et ensuite de L à N j'utilise INDEX EQUIV pour associer la valeur de O avec le reste des donnée. Mais si une des donné se répéter pour TEST 14 et TEST 15 l'index va toujours afficher le TEST 14 car c'est le premier qui trouve. Si il y a un moyen plus simple pour trier en ordre croissant autre que PETIT VALEUR en index ca serait fantastique. Je veut éviter que TEST 14 s'affichent plus d'une fois. dans mon tableau de résultat

Tu peux mettre cette formule par exemple en AC5 et tu l'incrémentes vers le bas ;

=SIERREUR(RANG(X5;X$5:X$19;1)+NB.SI(X$4:X4;X5);"")

Elle va te classer les valeurs de la colonne X en ordre croissant sans doublons.

Tu peux ensuite baser les formules en L à O sur cet ordre, exemple pour L4 ;

=INDEX($U$5:$U$19;EQUIV(K4;$AC$5:$AC$19;0))

Mieux vaut spécifier une plage pas trop longue parce qu'une colonne complète fait plus d'un million de lignes !

Bonne idée de mettre en rang mais encore la nous avons le même problème car

=SIERREUR(RANG(X5;X$5:X$19;1)+NB.SI(X$4:X4;X5);"")

Donne le même problème il ne prend pas en compte que dans la colonne X il peu y avoir 2 ou 4x le nombre 100 alors il me donne un rang seulement sur le premier 100. Si on va plus loin encore la fonction rang ne prend pas en compte les décimale dans ma colonne X, se qui vien rajouter un problème supplémentaire.

Chez moi il met bien le n°2 pour le 2ème 100 en AC, voir l'effet sur la colonne L ;

excel class test par trunic b

Pour moi aussi sur cette exemple mais un coup que des décimale plus grande embarque il bug et parfois sur le 100% il ne marche pas aussi..

test

Test 23 a 25 n'affichent rien.

J'avais penser a crée un rang unique avec exemple

==U5&"-"&V5&"-"&W5&"-"&X5

pour ensuite inserer l'index mais je n'arrive pas a bien le faire pour que les doublons fonctionne

Peux-tu poster ce fichier ?

Je ne vois pas pourquoi tu as TEST 14 en L5 si tu as bien mis la formule que je proposais.

Voila le fichier TEST

Le fichier ne prend pas en compte plusieurs lignes, il ne donne pas de rang a tout.

Il faut qu'il prennent en compte 650 "CLIENTS" avec des valeurs a décimal exemple : 95.12354% et il doit être capable de prendre tout les décimal pour classer en ordre.

Il faut qu'il prennent en compte que certain client a des valeurs identique(comme test 14 et test 15)

11classtest.xlsm (97.92 Ko)

Aucun rang n'est donné parce que tu n'as pas mis à jour ma formule qui n'allait que jusqu'à 19, il faut bien sûr changer ça dans le fichier réel.

Il suffit de remplacer tous les 19 par un chiffre élevé -du genre 700- dans les 5 formules (AC5 et L4 à O4).

Bien vu Merci :)

Mais un nouveau problème a survenu. Certaine valeur affichent N/A pourquoi ?

9classtest.xlsm (90.23 Ko)

Je rectifie. J'avais simplement mal entrée la formule mais la encore une fois il se trompe est index des mauvaise donnée ou en omet certaine

7classtest.xlsm (89.74 Ko)

Bien vu Merci :)

Mais un nouveau problème a survenu. Certaine valeur affichent N/A pourquoi ?

9classtest.xlsm (90.23 Ko)

Parce que dans les cellules L4 à O4, tu n'as remplacé que le 1er 19 mais pas le 2ème (derrière EQUIV).

Et les N/A au-delà de la ligne 15 sont bien sûr dus au fait qu'il n'y a que 15 lignes remplies à droite.

Je rectifie. J'avais simplement mal entrée la formule mais la encore une fois il se trompe est index des mauvaise donnée ou en omet certaine

7classtest.xlsm (89.74 Ko)

Les plages doivent commencer en ligne 5, pas en 4, puisque les données en colonnes U et suivantes commencent à la ligne 5.

Et alors tout roule. Par contre on ne touche pas à K4, ça c'est bon (puisque la 1ère ligne de formules en L à O est bien la 4).

re,

n'est-ce pas plus facile avec un tableau structuré ?

15classtest-1.xlsm (101.01 Ko)

Salut Doux Réveur

Merci de ton aide je crois que t'es formules peuvent fonctionner par contre la formule doit commencer a ligne 4 car même si elle est vide sur le test parfois elle va être remplie. Je n'arrive pas a modifier la formule pour qu'elle commence a la ligne 4

Salut,

il suffit de remplacer les 5 par des 4 dans les 4 formules en L4 à O4 (2 par formule donc 8 en tout).

Et il faut modifier la formule en colonne AC, comme ceci en AC4 ;

=SIERREUR(RANG(X4;X$4:X$700;1)+NB.SI(X$3:X3;X4);"")

Désoler de mes question qui peuvent sembler stupide mais je débute dans Excel.

Même en changeant la formule avec des 4 au lieu des 5, Il omet le #1 et il rajoute un #17 au lieu d'un 16

10classtest.xlsm (97.80 Ko)
Rechercher des sujets similaires à "index probleme doublons"