Comptabiliser des valeurs textes puis donner leur fréquence

lateralus18

XLDnaute Nouveau
Bonjour,
Je suis un utilisateur d'Excel qui n'a jamais réussi à s'y faire (malgré beaucoup de tentatives).
Je gère une base de données contenant 3 colonnes de noms d'acteurs et plusieurs centaines de lignes de films. Je souhaite obtenir la fréquence d'apparition de chaque acteur présent dans ces 3 colonnes.
Ma question doit sembler très simple alors que j'ai l'impression que ça demande des compétences complexes pour y arriver. J'ai essayé avec des tableaux dynamiques mais je n'arrive pas à obtenir ce que je souhaite (seules deux colonnes sont prises en compte, et les noms de la troisième ne sont pas forcément inclus dans la liste totale des acteurs).
Je suis prêt à vous donner tous les renseignements techniques qu'il faudra.
Merci par avance !
Anthony
 

Tibo62

XLDnaute Occasionnel
Re : Comptabiliser des valeurs textes puis donner leur fréquence

Bonjour,
pourquoi ne pas créé un tableau croisé dynamique qui te donnerait très rapidement et simplement la réponse.
ou alors il y a toujours cette bonne vieille formule : =NB.SI(CHAMP;"mot")
 

lateralus18

XLDnaute Nouveau
Re : Comptabiliser des valeurs textes puis donner leur fréquence

Alors j'ai fais une feuille avec quelques entrées de films et les trois colonnes de comédiens.
Je n'ai pas réussi avec le tableau croisé dynamique, peut-être je ne sais pas exactement comment procéder ?

Cette formule m'oblige à entrer à chaque fois le nom du comédien. Or au final il y en aura au moins 300, d'où l'intérêt d'automatiser la chose.
 

Pièces jointes

  • essaibasededonnées.xlsx
    45.4 KB · Affichages: 38
  • essaibasededonnées.xlsx
    45.4 KB · Affichages: 47
  • essaibasededonnées.xlsx
    45.4 KB · Affichages: 55

Tibo62

XLDnaute Occasionnel
Re : Comptabiliser des valeurs textes puis donner leur fréquence

Le fichier de départ est mal bati j'ai repris ton fichier et regarde ce que sa peut donner et dit moi si cela correspond à tes attentes?
 

Pièces jointes

  • essaibasededonnées.xlsx
    19.5 KB · Affichages: 39
  • essaibasededonnées.xlsx
    19.5 KB · Affichages: 46
  • essaibasededonnées.xlsx
    19.5 KB · Affichages: 57

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Comptabiliser des valeurs textes puis donner leur fréquence

Bonjour,

Voir PJ

Sélectionner G2:H32
=frequencetexte(A210)
Valider avec maj+ctrl+entrée

Fonction perso à placer dans un module: Alt+F11 puis Insertion/Module

Code:
Option Compare Text
Function FrequenceTexte(champ As Range)
  Set d1 = CreateObject("Scripting.Dictionary")
  d1.CompareMode = vbTextCompare
  temp = champ
  For Each c In temp
    If c <> "" Then d1(c) = d1(c) + 1
  Next c
  Dim b()
  ReDim b(1 To Application.Max(Application.Caller.Rows.Count, d1.Count), 1 To 2)
  i = 1
  For Each c In d1.keys
    b(i, 1) = c: b(i, 2) = d1(c)
    i = i + 1
  Next
  Call tri(b, 1, d1.Count)
  FrequenceTexte = b
End Function

JB
Formation Excel VBA JB
 

Pièces jointes

  • essaibasededonnées-1.xls
    47 KB · Affichages: 41
Dernière édition:

lateralus18

XLDnaute Nouveau
Re : Comptabiliser des valeurs textes puis donner leur fréquence

Merci pour votre aide.
Tibo62 : c'est une solution efficace mais la base de données fait déjà 300 titres, elles devraient arriver à 1500 ! Je ne peux pas créer encore plus de lignes par film.
Boisgontier : je n'ai pas compris ! Que dois-je faire ?

Je me rends compte que je dois transformer mon "simple" tableau en vrai base de données excel. Peut-être cela pourrait m'aider ?
 

Statistiques des forums

Discussions
312 451
Messages
2 088 523
Membres
103 877
dernier inscrit
imen.chaaba