Excel -fréquence de plusieurs expressions dans une seule cellule

Marie_88 Messages postés 7 Statut Membre -  
ccm81 Messages postés 11033 Statut Membre -
Bonjour,

J'ai créé un fichier Excel où il y a une liste de mots clés, ainsi que plusieurs autres cellules.
Pour chacune de ces cellules (par exemple Titre ou Meta Description), je veux connaître la fréquence de répétition de tous ces mots clés confondus.

Exemple:
1. Liste de mots clés:
- A1: Maison
- A2: Décoration
- A3: Ardoise

2. B1: Titre: Ma maison, toute en ardoise.

3. C1: 2 (2 mots clés utilisés dans ma cellule de titre).

Bref, votre aide serait super apprécié!
J'ai essayé la fonction nb.si, et ça fonctionne pour une seule expression, mais quand j'additionne plusieurs fonctions nb.si pour couvrir toutes mes cellules de mots clés, et que j'entre un titre qui contient 2 mots clés, le compte retombe à 0. Comme si la formule ne reconnaissait plus le mot clé précis dans ma cellule quand j'en ajoutait un second...

SOS?

10 réponses

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour

    Sans macro, je ne vois pas, mais tu auras peut être des propositions
    Un début de réponse avec macro
    https://www.cjoint.com/?3ItpHEcGHTB

    Bonne suite
    0
    1. Marie_88 Messages postés 7 Statut Membre
       
      Wow, mais ça fonctionne parfaitement ça!! Par contre, je ne suis pas assez familière avec Excel pour faire du code dans visual basics... :S

      Est-ce que je peux t'envoyer mon fichier...?
      0
  2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Bonjour,

    Tout dépend de la façon dont tu as écrit ta formule, si par exemple le mot maison est en début ou fin ou encore au centre d'un texte, il faut utiliser le joker *
    et si j'ai bien compris ta demande, voila un type de formule avec NB.SI

    =NB.SI(A1:A20;"*maison*")

    ou pour plusieurs BN.SI
    =NB.SI(A1:A20;"*maison*")+NB.SI(A1:A20;"*ardoise*")

    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
  3. Marie_88 Messages postés 7 Statut Membre
     
    Bonjour Mike,
    Merci pour ta réponse ultra-rapide!
    En fait voici la formule que je tappais:

    =nb.si(D4:D5, C26)+nb.si(D4:D5, C27)+...

    Mon titre n'est que dans la cellule D5, mais comme je devais obligatoirement mettre une plage, et que la cellule D4 était vide, j'ai sélectionné les deux.

    C26, C27 et ... sont les cellules dans lesquelles mes mots clés sont contenus. Donc étant donné que je réfère à la cellule, et non pas au mot en particulier, je ne sais pas si le joker peut s'appliquer?

    Bref, merci à l'avance! :)
    0
    1. tontong Messages postés 2575 Date d'inscription   Statut Membre Dernière intervention   1 064
       
      Avec les références du #1 =NB.SI(B1;"*"&$A$1&"*")+NB.SI(B1;"*"&$A$2&"*")+NB.SI(B1;"*"&$A$3&"*")
      0
    2. Marie_88 Messages postés 7 Statut Membre
       
      Ok, merci!
      Sauf qu'avec 'Nb.Si', la première expression à l'intérieure de la parenthèse doit obligatoirement être une plage... malheureusement... une seule cellule ca ne fonctionne pas.
      0
  4. tontong Messages postés 2575 Date d'inscription   Statut Membre Dernière intervention   1 064
     
    Bonjour à tous,
    On peut aussi compter avec un sommeprod:
    =SOMMEPROD(ESTNUM(CHERCHE($A$1:$A$3;B1))*1)
    On a le même inconvénient qu'avec une addition de NB.SI: " Sa maisonnette gardoise" donne le même résultat.
    0
    1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      Bonjour tous aussi

      Totong
      pour régler cet inconvénient,il devrait suffire de rentre un blanc derrière le nom cherché

      Marie pour info:
      NB.SI fonctionne très bien avec une seule cellule

      crdlmnt
      0
    2. tontong Messages postés 2575 Date d'inscription   Statut Membre Dernière intervention   1 064
       
      Je pense que ça ne suffit pas!
      Pour approcher du but il faudrait ajouter un caractère exotique, µ par exemple, avant et après chaque mot-critère (µmaisonµ), au début et à la fin de la phrase, et remplacer les espaces par ce µ (concaténation et Substitue) µsaµmaisonnetteµgardoiseµ. Ça complique un peu!
      0
    3. Marie_88 Messages postés 7 Statut Membre
       
      Salut à vous deux!
      J'ai réussi :) Voici la formule que j'ai finalement utilisée, et qui fonctionne à merveille, à la seule condition que toutes mes cellules de mots clés doivent avoir des mots à l'intérieur. Lorsque la cellule est vide, ça compte pour 1 sinon.

      =NB.SI(D4:D5,"*"&C26&"*")+NB.SI(D4:D5,"*"&C27&"*")+NB.SI(D4:D5,"*"&C28&"*")+NB.SI(D4:D5,"*"&C29&"*")+NB.SI(D4:D5,"*"&C30&"*")+NB.SI(D4:D5,"*"&C31&"*")+NB.SI(D4:D5,"*"&C32&"*")+NB.SI(D4:D5,"*"&C33&"*")+NB.SI(D4:D5,"*"&C34&"*")
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    si comme cela, adresse cellule à adapter

    =NB.SI(A1:A20;"*"&C1&"*")
    0
  7. Marie_88 Messages postés 7 Statut Membre
     
    Merci énormément pour votre temps, c'est réellement apprécié!!

    Quand j'entre la formule : =NB.SI(D4:D5;"*"&C26&"*") dans ma cellule, j'ai toujours un message d'erreur qui semble boguer avec ma plage de formule... pourtant, aucune ligne cachée, rien de bizzare...

    Vous avez une idée pourquoi ?
    0
  8. Marie_88 Messages postés 7 Statut Membre
     
    Ah, j'ai simplement changé ';' pour ',' et ça a fonctionné
    Merci Mike-31!
    Un énorme merci pour votre aide à tous, vous êtes des super-heros-geeks!! :D
    All the best!
    0
  9. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    Contrôle ta cellule C26 si tu n'as pas une erreur de saisie comme par exemple un espace
    0
  10. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    rapidement mais il doit y avoir plus court, je regarderais plus tard
    en attendant en ajoutant une conditionnelle devant chaque NB.SI

    =SI(C26<>"";NB.SI(D4:D5;"*"&C26&"*");0)+SI(C27<>"";NB.SI(D4:D5;"*"&C27&"*");0)

    à compléter, mais comme tu as plus de sept imbrications conditionnelles regarde mon astuce pour les versions antérieures à 2007 sur ce lien

    https://forums.commentcamarche.net/forum/affich-37641581-utiliser-plus-de-7-imbrications-si-dans-une-formule

    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
  11. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Re

    La remarque de tontong (post #4) m'a donné quelques idées
    Une solution macro, sans doute incomplète, qui permettrait de régler le cas de la maisonnette gardoise
    https://www.cjoint.com/?3Itvrao8SxN

    Bonne nuit à tous

    lien modifié
    0