afficher une liste décroissante des noms qui reviennent le plus souvent

JLO39

XLDnaute Nouveau
Bonjour chers forumeurs :)

J'ai effectué des recherches sur le forum avec les mots clés INDEX, RECHERCHEV et NBSI sans trouver mon bonheur ;(

Dans le fichier joint, vous pourrez voir deux tableaux.

Celui du haut donne le résultat obtenu sur une autre feuille appelé 'Tri Rapide'. (J'ai mis en E et G les formules qui correspondent aux résultats en A et C)

C'est sur celui du bas que je souhaiterais obtenir le résultat que je vais vous demander.

Ma demande:

Je souhaiterais que le tableau du bas soit une liste décroissante des noms qui reviennent le plus souvent dans le tableau du haut !! Il n'est aucunement obligatoire qu'il y ait l'indication que j'y ai mise du nombre de fois où l'on retrouve ce nom. Le classement décroissant me suffit largement :)

J'ai tenté des choses avec NBSI mais il me donne le nombre d’occurrence mais sans le nom et j'ai tenté aussi avec INDEX puis RECHERCHEV mais sans arriver au résultat escompté !! Peut-être faut-il imbriqué des formules, chose avec lesquels j'ai du mal !! Je suis vraiment pas un pro d'excel :)

Merci d'avance à ceux qui se pencheront sur le problème...
JLO
 

Pièces jointes

  • A venir et Priorité.xlsx
    12.8 KB · Affichages: 40

BOISGONTIER

XLDnaute Barbatruc
Repose en paix

Pièces jointes

  • A venir et Priorité-1.xls
    39.5 KB · Affichages: 61
  • A venir et Priorité-1.xls
    39.5 KB · Affichages: 64
  • A venir et Priorité-1.xls
    39.5 KB · Affichages: 66
Dernière édition:

JLO39

XLDnaute Nouveau
Re : afficher une liste décroissante des noms qui reviennent le plus souvent

Bonsoir BOISGONTIER et merci pour ta solution.

J'ai voulu reporter ta formule dans mon tableau d'origine avec une sélection de la plage adéquate mais ça ne fonctionne pas :(

Y-a-t-il autre chose de "caché" qui fait que ça fonctionne sur ton tableau et pas sur le mien ?
 

JLO39

XLDnaute Nouveau
Re : afficher une liste décroissante des noms qui reviennent le plus souvent

Je comprends vraiment rien à tes formules et fichiers, je rappelle que je suis pas du tout un pro d'excel et que la moindre formule est du chinois pour moi.

Ce que tu donnes sur ton site est déjà pour des personnes ayant déjà de l'expérience avec excel, ou sinon je suis complètement débile :(

Merci en tout cas d'avoir pris le temps de répondre
 

Modeste

XLDnaute Barbatruc
Re : afficher une liste décroissante des noms qui reviennent le plus souvent

Bonjour JLO39,
Salut JB,

Si JLO repasse par ici, une autre proposition, nettement moins "automatisée" (mais qui semble fonctionner ... et pour laquelle j'ai ajouté des indications dans le fichier lui-même).

C'est un Tableau Croisé Dynamique qui est utilisé; les indications dans le classeur ne suffiront sans doute pas à acquérir une maîtrise d'Excel :D et nécssiteront sans doute l'une ou l'autre recherche d'info supplémentaire (on n'a rien sans rien, mon pauvre monsieur :)).
 

Pièces jointes

  • A venir et Priorité (JLO39).xlsx
    18.4 KB · Affichages: 41

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : afficher une liste décroissante des noms qui reviennent le plus souvent

Solution formule

1er
=INDEX(champ;MODE(SI(champ<>"";EQUIV(champ;champ;0))))
Valider avec maj+ctrl+entrée

2e
=INDEX(champ;MODE(SI((champ<>"")*(champ<>D1);EQUIV(champ;champ;0))))


Pour une formule recopiable (DAVID84)

Code:
=INDEX(champ;MODE(SI((champ<>"")*(NB.SI(D$1:D1;champ)=0);EQUIV(champ;champ;0))))


JB
 

Pièces jointes

  • PlusFrequentz.xls
    26 KB · Affichages: 47
Dernière édition:

JLO39

XLDnaute Nouveau
Re : afficher une liste décroissante des noms qui reviennent le plus souvent

Bonjour Modeste, JB,

@Modeste, merci pour ta solution, elle fonctionne trés bien mais il est vrai que je souhaite quelque chose d'entièrement automatisé !! Au pire je crée une petit macro avec un bouton à cliquer pour effectuer les mises à jour !! Un grand merci encore :)

@JB, j'ai nommé la liste de nom dans ma colonne "champ" comme toi, puis j'ai copié ta formule dans la cellule adéquate de mon fichier mais cela me renvoie un #VALEUR! Comment ça se fait qu'il ne me renvoie pas ce qu'il faut ? Y-a-t-il quelque chose à activer dans les options excel ou une macro quelconque ??

Merci à vous deux pour votre aide :)
 

JLO39

XLDnaute Nouveau
Re : afficher une liste décroissante des noms qui reviennent le plus souvent

@JB,

merci pour la nouvelle formule, celle de DAVID84, mais il y a un smiley dedans :( et si je met un "deux points, fermer la parenthèse" (qui équivaux au smiley, ça dit qu'il y a erreur dans la formule !
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : afficher une liste décroissante des noms qui reviennent le plus souvent

Il faut valider avec maj+ctrl+entrée

Code:
=INDEX(champ;MODE(SI((champ<>"")*(NB.SI(A$16:A16;champ)=0);EQUIV(champ;champ;0))))

PS: Pour une BD importante, la solution fonction perso est +performante.

JB
 

Pièces jointes

  • A venir et Prioritéz.xlsx
    10.4 KB · Affichages: 43
Dernière édition:

JLO39

XLDnaute Nouveau
Re : afficher une liste décroissante des noms qui reviennent le plus souvent

Merci JB, on avance :)

Ça calcule bien les lignes A16, A17 et A18 mais pas A19 chez moi !!
Le nombre d'apparitions a changé entre temps, les résultats en nombre d'apparitions sont maintenant de 3 (en A16), 2 (en A17 et A18), et 1 (en A19) !! Est ce parce qu'il n'y a qu'une apparition dans le tableau du haut que ça me marque #N/A en A19 ?
 

JLO39

XLDnaute Nouveau
Re : afficher une liste décroissante des noms qui reviennent le plus souvent

Après quelques tests, l'erreur #N/A a l'air de venir de là :) Toutes les lignes donnant 1 comme résultat ne sont pas comptabilisées et renvoient #N/A
Une solution ou pas à ce dernier souci ?
 

david84

XLDnaute Barbatruc
Re : afficher une liste décroissante des noms qui reviennent le plus souvent

Bonjour,
Après quelques tests, l'erreur #N/A a l'air de venir de là :) Toutes les lignes donnant 1 comme résultat ne sont pas comptabilisées et renvoient #N/A
Une solution ou pas à ce dernier souci ?
sans fichier exemple reproduisant ton problème difficile de t'aider puisque sur les autres fichiers cela fonctionne...
 

Si...

XLDnaute Barbatruc
Re : afficher une liste décroissante des noms qui reviennent le plus souvent

Salut

PS: Pour une BD importante, la solution fonction perso est +performante.
JB
Dans ce cas je passe par une macro (affaire de goût n'est-ce pas JB :D ?) ...
En adaptant les adresses,
VB:
Private Sub Stat()
  Dim D As Object, R As Range, n As Long
  Application.ScreenUpdating = 0
  Set D = CreateObject("Scripting.Dictionary")
  For Each R In Range("C2", [C65000].End(xlUp)): D(R.Value) = "": Next
  n = D.Count
  [F2].Resize(n) = Application.Transpose(D.keys)
  [G2].Resize(n).FormulaLocal = "=NB.SI(C:C;F2)"
  Range("F2:G" & n) = Range("F2:G" & n + 1).Value
  Range("F2:G" & n + 1).Sort [G2], 2
End Sub

PS : là, la casse est respectée !
 

Pièces jointes

  • ordre par nombre (VBA).xlsm
    20 KB · Affichages: 40

david84

XLDnaute Barbatruc
Re : afficher une liste décroissante des noms qui reviennent le plus souvent

PS : là, la casse est respectée !
oui mais par contre le compte n'y est pas entre OUT et out qui doivent comptabiliser 3 et 1 et non 4 et 4.

Sinon on peut directement comptabiliser les items et décider ou non du respect de la casse via le dictionnaire (D.CompareMode).

Code:
Sub test()  
Dim D As Object, R As Range, n As Long
  Set D = CreateObject("Scripting.Dictionary")
  'D.CompareMode = TextCompare 'si l'on veut respecter la casse
  For Each R In Range("C2", [C65000].End(xlUp)): D(R.Value) = D(R.Value) + 1: Next
  n = D.Count
  [i2].Resize(n) = Application.Transpose(D.keys)
  [j2].Resize(n) = Application.Transpose(D.items)
  Range("i2:j" & n + 1).Sort [j2], 2
End Sub
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa