XL 2016 IndeX EQUIV -

Gomar13

XLDnaute Nouveau
Bonjour à tous,

J'ai essayé de trouver une solution sur d'autres discussions mais celles-ci ne correspondent pas vraiment à ma problématique,

J'ai un TDC avec 2 colonnes : 1 représentant des noms (A) ; la deuxième donnant le nombre de fois ou une ligne avec ce nom apparaît (B).
Je dois avoir une liste des 20 premiers noms qui ont le plus de lignes.
J'ai donc une première colonne (F) avec cette formule : =GRANDE.VALEUR(B:B;1) pour la 1ere valeur, puis j'étends cette formule jusqu'à =GRANDE.VALEUR(B:B;20)
J'ai une seconde colonne (E) avec cette formule : =INDEX(A:B;EQUIV(F4;B:B;0);1) F4 étend la valeur de ma première colonne pour faire correspondre la plus grande valeur trouvé avec le nom associé.

Le problème étend que si deux noms ont la même valeur, dans ma colonne E le "nom" sera le même.
Exemple :
Colonne A Camille ; colonne B : 40
Colonne A Marie ; colonne B : 40

Alors dans ma colonne E il y aura deux fois écrit Camille et non Camille puis Marie.

J'ai pensé a écrire la formule suivante pour éviter qu'il ne reprenne deux fois le même nom :
=INDEX(A:B;EQUIV(F4;B:B;0);1)<>E4 (pour la deuxième ligne) mais Excel me répond "FAUX" car en comparant les deux textes "Camille" et "Camille" ceux-ci sont effectivement les mêmes.

J'espère avoir été assez clair,
Merci d'avance pour vos réponses,
Belles journées à vous
 
Dernière édition:
Solution
Re,
en E2 :
VB:
=SIERREUR(INDEX(A$2:A$26;PETITE.VALEUR(SI(B$2:B$26=F2;LIGNE(INDIRECT("1:"&LIGNES(B$2:B$26))));NB.SI(F$2:F2;F2)));"")
@ valider par Ctrl+Maj+Entrée
@ tirer vers le bas


Tu peux simplifier ta formule en F2 :
Code:
=GRANDE.VALEUR(B:B;D2)
@ tirer vers le bas

Cordialement

Gomar13

XLDnaute Nouveau
Bonjour JHA et R@achid,
Merci pour vos réponses, je transmets en pièces jointes un exemple de fichier car je ne peux malheureusement pas mettre en ligne le fichier original. Le problème est le même sauf que dans mon fichier original j'ai un TCD et que les infos peuvent changer au fur et a mesure que de nouvelles données sont ajoutées.
Merci,
 

Pièces jointes

  • Test Index Equiv.xlsx
    10.4 KB · Affichages: 5

R@chid

XLDnaute Barbatruc
Re,
en E2 :
VB:
=SIERREUR(INDEX(A$2:A$26;PETITE.VALEUR(SI(B$2:B$26=F2;LIGNE(INDIRECT("1:"&LIGNES(B$2:B$26))));NB.SI(F$2:F2;F2)));"")
@ valider par Ctrl+Maj+Entrée
@ tirer vers le bas


Tu peux simplifier ta formule en F2 :
Code:
=GRANDE.VALEUR(B:B;D2)
@ tirer vers le bas

Cordialement
 

Gégé-45550

XLDnaute Accro
Bonjour JHA et R@achid,
Merci pour vos réponses, je transmets en pièces jointes un exemple de fichier car je ne peux malheureusement pas mettre en ligne le fichier original. Le problème est le même sauf que dans mon fichier original j'ai un TCD et que les infos peuvent changer au fur et a mesure que de nouvelles données sont ajoutées.
Merci,
Bonjour,
Une alternative qui exploite les puissantes fonctionnalités d'Excel :
Transformer A1:A26 en tableau structuré puis filtrer sur la colonne B (Nb lignes)
Cordialement,
 

Pièces jointes

  • Test Index Equiv_TS.xlsx
    18 KB · Affichages: 3

Gomar13

XLDnaute Nouveau
Super, merci pour vos réponses R@chid et Gégé,
R@chid effectivement cette formule fonctionne, merci beaucoup ! De plus je n'ai pas simplifier ma formule en F2 car si je commence a =GRANDE.VALEUR(B:B;D2) il prendra en compte mon total affiché dans le TCD, je commence donc par la deuxième valeur la plus grande.
Merci a vous, et belle journée
 

Discussions similaires

Statistiques des forums

Discussions
312 818
Messages
2 092 374
Membres
105 381
dernier inscrit
stephan57