Appliquer Formule aux cellules contenant le texte d'une autre ?

Résolu
Theo.R Messages postés 585 Statut Membre -  
Theo.R Messages postés 585 Statut Membre -
Bonjour,

Travaillant sur Excel 2007, je cherche à appliquer une formule à des cellules contenant le texte d'une autre cellule.

En pratique :

Dans une colonne donnée d'un tableur (disons A2:A9000), j'ai des entrées qui peuvent contenir les éléments texte d'une liste prédéfinie (disons a, b et/ou c). J'ai donc définie cette liste et l'ai appliquée à ma colonne A2:A9000. Néanmoins, certaines entrées (A2, A3, ...) peuvent contenir plusieurs réponses de la liste (par exemple : A4 = "a ; c").

Dans une formule externe au tableur qui me sert à comptabiliser successivement le nombre de a, de b puis de c de la colonne A2;A9000, je n'arrive pas à définir la condition pour obtenir les seules entrées de la colonne A2:A9000 qui contiennent a, b ou c sachant que ce n'est pas un texte strict.

En formule, j'avais auparavant la suivante qui fait intervenir une condition de plus que celle de la colonne A2:A9000. La cellule C5 est celle où se trouve a, b ou c (liste déroulante pour n'afficher que les résultats de la réponse choisie)

=NB(SI((B2:B9000<>"")*(A2:A9000=C5);D2:D9000))

N.B: dans cette formule que j'avais trouvée dans un forum, la plage D2:D9000 ne sert à rien de particulier (elle est d'ailleurs vide). Je ne saurais pas l'expliquer mais ça marche pour ajouter des conditions à un décompte.

Avec cette formule, ne sont comptabilisées que les réponses contenant STRICTEMENT a, b ou c. J'ai pourtant besoin d'avoir les réponses contenant AU MOINS a, b ou c en texte.

Merci d'avance pour votre aide, n'hésitez pas à me signaler tout élément pas assez clair dans mon explication :)

2 réponses

  1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour
    si ce n'est que pour compter les textes ou parties de textes présents de A2 à A9000
    (sous réserve de bonne compréhension)

    =NB.SI(A2:A9000;"*"&Z1&"*")
    Z1 contenant le texte cherché

    ou directement:
    =NB.SI(A2:A9000;"*texte*")

    pour info:
    "texte*" le texte de la cellule débute par le texte cherché
    "*texte" se termine par
    "*texte*" contient n'importe où
    crdlmnt
    Errare humanum est, perseverare diabolicum
    0
  2. Theo.R Messages postés 585 Statut Membre 31
     
    Bonjour Vaucluse,

    Merci de ta réponse, cependant mon problème est que les * s'applique pour du texte entre guillemets "*texte*". Dans mon cas, j'ai besoin de faire référence à une cellule et non à un texte. Or, je ne peux pas mettre *C5* pour dire "qui contient le contenu de C5", car dès lors que je met un *, la formule ne reconnait plus la cellule C5..

    J'ai essayé avec d'autres fonctions (CHERCHE notamment) mais sans résultat..

    En espérant avoir précisé mon pb ;)
    0
    1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      Non mais j'avais bien précisé l'option avec Z1 tu as du sauter une ligne:

      NB.SI(A2:A9000;"*"&C5&"*")

      qui prendra bien comme texte la valeur de C5!

      crdlmnt
      0
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonjour,

      cependant mon problème est que les * s'applique pour du texte entre guillemets "*texte*".
      C'est que tu n'as pas bien lu la réponse de vaucluse
      eric
      0
    3. Theo.R Messages postés 585 Statut Membre 31
       
      AH oui en effer MERCI !!

      J'ai utilisé cela avec la fonction NB.SI.ENS et ça marche !

      J'ai par contre eu un problème, ça marche avec NB.SI.ENS(...) mais pas avec NB(SI(...)) que j'utilise...

      Voici les formules précises sans banalisation des données :

      Formule 1 que j'ai finalement utilisée et qui marche : =NB.SI.ENS('Suivi Contacts sur Salons'!H2:H9000;"<>";'Suivi Contacts sur Salons'!N2:N9000;"*"&I5&"*")

      Formule 2 qui ne marche pas...: {={NB(SI(('Suivi Contacts sur Salons'!H2:H9000<>"")*('Suivi Contacts sur Salons'!N2:N9000=("*"&I5&"*"));A2:A9002))}

      Mon résultat est 3 comme le vérifie la formule 1, alors que la formule 2 m'affiche 0..

      Je n'ai pas besoin de réponse mais préférais poster mon souci au cas où d'autres le rencontreraient..

      MERCI encore !
      0