Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Comptabiliser des valeurs textes puis donner leur fréquence

  • Initiateur de la discussion Initiateur de la discussion lateralus18
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

lateralus18

Guest
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
 
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")
 
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

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

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

Dernière édition:
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 ?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…