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

Résolu/Fermé
Theo.R Messages postés 575 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 30 mars 2016 - 11 juil. 2014 à 14:05
Theo.R Messages postés 575 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 30 mars 2016 - 11 juil. 2014 à 15:32
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 :)
A voir également:

2 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
Modifié par Vaucluse le 11/07/2014 à 14:22
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
Theo.R Messages postés 575 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 30 mars 2016 31
11 juil. 2014 à 14:28
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
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
Modifié par Vaucluse le 11/07/2014 à 15:16
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
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
11 juil. 2014 à 15:20
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
Theo.R Messages postés 575 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 30 mars 2016 31
11 juil. 2014 à 15:32
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