Formule pour obtenir les noms qui reviennent le plus

Bonjour à tous et toutes,

J'aimerais savoir s'il existe une formule qui permettent d'obtenir les nom qui reviennent le plus dans les colonnes H, I et J (une formule pour le nom le plus courant, une formule pour le 2e etc).

Les noms commencent à la ligne 2 et sont répartis dans les colonnes H, I et J.

Merci pour votre aide

Bonjour à tous !

Pour une aide adaptée, merci de joindre un classeur (pas une image !), anonymisé mais représentatif, accompagné d'exemples du résultat attendu.

Merci pour votre aide, voici un document Excel test.

J'aimerais avoir les calculs sur une page différentes des informations, j'ai nommé la feuille "Calcul".

Bonjour à tous de nouveau !

Une proposition :

=LET(
dc;DANSCOL(H2:J10);
f;FILTRE(dc;(dc<>"//")*(dc<>0));
ASSEMB.V({"Nom"."Nb"};GROUPER.PAR(f;f;NBVAL;;;-2))
)

Résultat retourné :

image

Remarque : Il est possible de ne conserver que les "n" premiers éléments de la liste.

Merci pour votre aide très rapide, cela fonctionne très bien.

Bonne journée à vous !

Salut Furgoz,
Salut JFL,

Faut bien un peu de VBA, non ?
Un double clic sur la feuille 'Synthèse' pour démarre la macro.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'
Dim Dico As Object, tTab, tTab1, tTab2
'
Cancel = True
Set Dico = CreateObject("scripting.dictionary")
tTab = Range("H2:J" & UsedRange.Rows.Count + 1).Value
For x = 1 To UBound(tTab, 1)
    For y = 1 To UBound(tTab, 2)
        If tTab(x, y) <> "" And Trim(tTab(x, y)) <> "//" Then Dico(tTab(x, y)) = Dico(tTab(x, y)) + 1
    Next
Next
With Worksheets("Calcul")
    tTab1 = Dico.keys
    tTab2 = Dico.items
    .Range("A4:B" & .Range("A" & Rows.Count).End(xlUp).Row).ClearContents
    .Range("A3").Resize(1, 2).Value = Array("Noms", "Fréquence")
    .Range("A4").Resize(UBound(tTab1) + 1, 1).Value = WorksheetFunction.Transpose(tTab1)
    .Range("B4").Resize(UBound(tTab1) + 1, 1).Value = WorksheetFunction.Transpose(tTab2)
    .Range("A4:B" & .Range("A" & Rows.Count).End(xlUp).Row).Sort _
        key1:=.Range("B4"), order1:=xlDescending, _
        key2:=.Range("A4"), order2:=xlAscending, _
        Orientation:=xlTopToBottom, Header:=xlNo
    .Activate
End With
'
End Sub
12furgoz.xlsm (18.33 Ko)

A+

Bonjour à tous de nouveau !

Et mes amicales salutations à l'anti-moderne !

Je vous remercie de ce retour.

Salut JFL,

Anti, anti, pas tant que ça, tu sais, mais j'ai plus de mal avec certains concepts.
Avec un cerveau nourri au VB, faut pas s'étonner!

Mais, bravo pour ce PQ foudroyant!

A+

bonjour

une contribution de faisabilité par "formules " eventuellement matricielles

cordialement

10furgos.xlsx (17.06 Ko)
Rechercher des sujets similaires à "formule obtenir noms qui reviennent"