IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Formule Comptage occurence de mots [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 28
    Par défaut Formule Comptage occurence de mots
    Bonjour,

    j'ai un tableau excel avec une colonne remplie de dates, puis d'autres colonnes avec des caractères.
    Ma question est simple :

    j'aimerais savoir, en janvier par exemple, combien de fois le mot "Accident" apparaît dans la colonne T.

    J'ai essayé avec une formule du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =If(Month(Bilan!A:A)=1;Countif(Bilan!T:T;"Accident");"0")

    Mais cela ne marche pas...j'ai également utilisé avec une formule matricielle mais échec également...

    Merci pour vos réponses

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    La fonction SOMMEPROD
    Exemple (version française) : Pour une plage $A$2:$A$10 contenant les dates et la plage $D$2:$D$10 contenant le texte cherché
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD( (MOIS($A$2:$A$10)=1) * ($D$2:$D$10="Accident"))
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 28
    Par défaut
    Merci pour la réponse!

    cependant ça ne marche pas

    j'ai une version anglaise, donc j'utilise sumproduct et month.

    il me met #Value!
    N'y a t il pas une exigence sur le format de la date??
    la mienne est au format dd/mm/yyyy

    j'ai de plus selectionné ma colonne, Format Cells, Date au bon format.
    Mais même avec ça ça ne va pas..

    Une idée?

  4. #4
    Membre expérimenté Avatar de L'Albatros
    Homme Profil pro
    Chercheur en économie - statistique
    Inscrit en
    Avril 2012
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur en économie - statistique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2012
    Messages : 150
    Par défaut
    Bonjour,
    Ce bout de code n'est pas très poétique mais soyons pragmatique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub compte_occurence()
    '---------------------------------------------Déclaration des variables
    Dim compteur_boucle As Integer
    Dim compteur_occurence As Integer
    '---------------------------------------------Initialisation du compteur d'occurence"Accident"
    compteur_occurence = 0
    '---------------------------------------------Boucle de balayage du tableau en supposant que la colonne T reflète la dimension du tableau
    For compteur_boucle = 1 To Range("T1").End(xlDown).Row
    '---------------------------------------------Condition 1: le mois cible
        If Range("A" & compteur_boucle) = "janvier" Then
        '-----------------------------------------Condition 2: l'occurence
            If Range("T" & compteur_boucle) = "Accident" Then
            '-------------------------------------Incrémentation du compteur
                compteur_occurence = compteur_occurence + 1
            End If
        End If
    Next compteur_boucle
    MsgBox ("Nombre d'occurences: " & compteur_occurence)
    End Sub
    C'est moche mais radical, non ?
    '------------------------------------------------------------------------
    Si je vous ai aidé, merci de me le faire savoir avec un pouce

  5. #5
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 28
    Par défaut
    Bonjour,

    Merci corona, l'astuce de F9 m'as permis de trouver l'erreur, et maintenant ça marche.

    Il n'as pas reconnu une date, alors que celle ci était correctement écrite. Je l'ai retaper et maintenant c'est bon...

    Cependant j'aimerais savoir pourquoi il n'as pas aimé???
    C'est quand même embêtant de voir qu'en retapant le contenu d'une cellule ça fonctionne...comment mettre en place un outil fonctionnnel sous excel à la disposition de tous si ça plante comme ça "sans raison"...

    Je dois mettre en place cet outil plusieurs utilisateur, et je sens que tout le monde va trouver ça merdique si ça plante comme ça....

    En tt cas merci pour l'aide!

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Il n'as pas reconnu une date, alors que celle ci était correctement écrite. Je l'ai retaper et maintenant c'est bon...
    Peut-être était elle au format texte, ou inversée, encodée au format jj/mm/aa alors que c'est aa/mm/jj. Je ne vois pas d'autres explication.
    Attention que si ta base de données contient des dates d'une autre année, il faut ajouter un contrôle à SUMPRODUCT.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Merci pour la réponse!
    cependant ça ne marche pas
    j'ai une version anglaise, donc j'utilise sumproduct et month.
    il me met #Value!
    N'y a t il pas une exigence sur le format de la date??
    la mienne est au format dd/mm/yyyy
    j'ai de plus selectionné ma colonne, Format Cells, Date au bon format.
    Mais même avec ça ça ne va pas..
    Une idée?
    Par acquit de conscience, je me suis mis en version anglaise, Options régionale de Windows Français(Belgique). Les date sont donc au format jj/mm/aa mais Month(date) doit renvoyer le mois de la date quel que soit la version linguistique de Windows.
    Je confirme que cela fonctionne parfaitement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SUMPRODUCT( (MONTH($A$2:$A$10)=2) * ($D$2:$D$10="Accident"))
    Pour vérifier, sélectionne dans la formule MONTH($A$2:$A$10)=2 et appuie sur F9, tu dois voir une suite de TRUE et FALSE, comme ci-dessous, suivant que les mois sont de janvier ou autres.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SUMPRODUCT( ({FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE}) * ($D$2:$D$10="Accident"))
    Attention d'appuyer sur la touche escape ensuite sinon la formule se transforme en constante.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Formule] comptage des dates
    Par fropinou dans le forum Excel
    Réponses: 2
    Dernier message: 24/04/2009, 20h37
  2. calculer le nombre d'occurence de mot dans une chaine
    Par hadjiphp dans le forum Langage
    Réponses: 8
    Dernier message: 20/04/2009, 11h06
  3. Occurences de mots
    Par lakavezo dans le forum Word
    Réponses: 1
    Dernier message: 21/10/2007, 17h39
  4. occurences de mots
    Par taisherg dans le forum Excel
    Réponses: 13
    Dernier message: 03/10/2007, 18h15
  5. [Formule] recherche d'un mot dans une feuil
    Par Anthony17 dans le forum Excel
    Réponses: 5
    Dernier message: 18/05/2007, 19h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo