Plusieurs Fonction/Condition dans une cellule

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 !

protoss33

XLDnaute Nouveau
Bonjour,

J'ai créer la formule suivant pour extraire des mots d'une colonne.
Code :

Code:
 =STXT(B2;CHERCHE("mot";B2;1);3)

3 étant la longueur du mot "mot" à extraire.

J'arrive parfaitement à extraire le mot que je veux sauf que j'ai toute une liste de mots différent.
J'aimerais donc pouvoir dupliquer cette fonction avec différents mots au seins d'une seule cellule.

Quelques chose du genre:

Code :
Code:
=STXT(B2;CHERCHE("mot";B2;1);3) ou ca =STXT(B2;CHERCHE("mot1";B2;1);3)
ou ca =STXT(B2;CHERCHE("mot2";B2;1);3) ...

Pour résumer, j'ai une liste de mots, et il faudrait qu'a chaque fois que tel ou tel mot est dans une phrase de la colonne B, il soit extrait de la phrase...

Je ne sais pas comment faire, j'utilise Excel que depuis hier.
Merci d'avance.
 
Re : Plusieurs Fonction/Condition dans une cellule

Bonjour protoss33 et bienvenue à toi,
Peux tu nous joindre un fichier à titre d'exemple?
Si non, je pense avec la combinaison de SI ça devrait donner quelque chose...
à m'editer.
@+
 
Re : Plusieurs Fonction/Condition dans une cellule

Bonjour à tous,

Sur la base de ce que j'ai compris, une tentative avec une formule matricielle :

ta phrase en A1, en B1, cette formule matricielle :

Code:
=SI(SOMME((ESTNUM(CHERCHE(liste_mots;$A1)))*1)<COLONNES($A:A);"";INDEX(
liste_mots;PETITE.VALEUR(SI(ESTNUM(CHERCHE(liste_mots;$A1));ESTNUM(CHERCHE(
liste_mots;$A1))*LIGNE(INDIRECT("1:"&NBVAL(liste_mots))));COLONNES($A:A))))

Formule matricielle à valider par CTRL + MAJ + ENTREE

à recopier vers la droite et vers le bas

Voir le fchier exemple joint.

@+
 

Pièces jointes

Dernière édition:
Re : Plusieurs Fonction/Condition dans une cellule

Alors voici un exemple du fichier.
Dans ce fichier tu verras que j'arrive à extraire le mot porshe, mais j'aimerai pouvoir extraire d'autres mots, comme le mot ferrari.

Sinon je n'ai pas très bien compris comment tu veux que j'utilise ca:

=STXT(B2;1;3)

@TIBO j'étais en train d'écrire quand tu as posté ton billet, je vais voir ca merci.
 

Pièces jointes

Re : Plusieurs Fonction/Condition dans une cellule

Merci Tibo ca marche impec !!! 🙂

C'est exactement ce qu'il me fallait, j'arrive a adapté ta formule sans trop la comprendre mais j'aimerai tout de même essayer de comprendre comment ca fonctionne histoire de me perfectionner car je vais être amené a créer d'autres fonctions par la suite^^

Donc si c'est aps trop demandé je veux bien une petite explication^^
Déja je ne comprend pas comment la formule fait pour aller chercher la liste des mots dans la colonne G alors que l'on ne mentionne pas cette colonne dans la fonction.

Encore merci pour ton aide 🙂
 
Re : Plusieurs Fonction/Condition dans une cellule

Bonjour à tous,

une formule matricielle aussi 😉

Code:
=SI(OU(ESTNUM(CHERCHE(liste_mots;A2)));INDEX(liste_mots;EQUIV(VRAI;ESTNUM(CHERCHE(liste_mots;A2));0));"")

Edit : Oups, je viens de comprendre le gros + de la formule de Tibo par rapport à la mienne...moi je ne retourne que le 1er mot de la liste trouvé 😱
Me disait bien qu'elle était plus longue, la sienne 🙂... et pour cause
 
Dernière édition:
Re : Plusieurs Fonction/Condition dans une cellule

re,
salut tototiti 🙂

Tentative d'explication :

J'ai commencé par nommer la liste des mots, plus facile ensuite à utiliser dans la formule, et aussi plus facile à lire (et peut-être à comprendre).

le coeur de la formule se trouve ici (pour la formule en B1) :

Code:
=ESTNUM(CHERCHE(liste_mots;$A1))
qui retourne la matrice suivante :

Code:
={FAUX;VRAI;VRAI;FAUX;FAUX;FAUX;FAUX;FAUX;FAUX;FAUX}
Les 2 VRAI (en 2ème et 3ème position) correspondent à la présence du 2ème et 3ème mot.



La formule :

Code:
=LIGNE(INDIRECT("1:"&NBVAL(liste_mots)))
va retourner une matrice de nombres correspondant au nombre de mots de la liste :

Code:
={1;2;3;4;5;6;7;8;9;10}
Pour Excel, VRAI vaut 1 et FAUX vaut 0.

En multipliant les 2 matrices :

Code:
=ESTNUM(CHERCHE(liste_mots;$A1))*LIGNE(INDIRECT("1:"&NBVAL(liste_mots)))
on obtient cette nouvelle matrice :

Code:
{0;2;3;0;0;0;0;0;0;0}



Reste alors à prendre en compte la 1ère petite valeur différente de 0, puis la 2ème, puis la 3ème; ...

Bon, plus facile à faire (quoique...) qu'à expliquer

@+
 
Re : Plusieurs Fonction/Condition dans une cellule

Encore une fois, un grand merci Tibo pour tes explications, certes je n'ai aps tout compris mais j'arrive au moins a mieux utilisés cette fonction^^

Au lieu d'avoir 2 colonne pour avoir 2 mots possible à extraire, j'en ai fait 3 bref tout marche impec.

Pour résumé j'ai donc la colonne A ou est extrait le texte, et les colonnes B C et D ou sont extraits les mots. (3 colonnes pour extraire jusqu'à 3 mots maxi)

J'aurais besoin maintenant de transformer mes mots extrait en numéro:
Par exemple le mot porsche deviendrait 4567, le mot ferrari deviendrait 4586 ...

Avec cette petite formule ci-dessous, j'arrive seulement à transformer les mots posche en numero.
Bref je suppose qu'il faut faire une fonction matriciel mais c'est vraiment trop compliquer pour moi, déjà que pour créer cette formule j'ai mit du temps lol^^

Code:
=SUBSTITUE(C2;"Porsche";"4567")

Je ne sais pas comment m'y prendre, donc je m'adresse encore une fois au super hero Tibo de excel^^
 
Re : Plusieurs Fonction/Condition dans une cellule

Bonjour à tous,

Si tu ne veux pas de formule matricielle et que tu veux seulement remplacer 3 mots, tu peux envisager quelque chose comme ça :

Code:
=substitue(substitue(SUBSTITUE(C2;"Porsche";"4567");"ferrari";"4586");"F1";"4785")
 
Re : Plusieurs Fonction/Condition dans une cellule

Merci toto, j'ai multiplier le nombre de subtitue ... pour faire toute ma liste de mots^^ (une 20aine).

Excel met d'ailleurs une bonne dizaine de secondes avant d'appliquer la formule a tout le fichier tellement elle est énorme^^

Maintenant j'ai un autre problème xD

J'essaye de concatener 3 colonnes où sont extrait mes mots et de les séparer par une virgule. Mais il y a un problème, en effet parfois le champs est vide (il n'y a donc apas de mot de une des colonnes voir plus) et donc j'ai des virgule en trop:

Ma formule :

=B2&", "&C2&", "&D2

Voila ce que ca fait:
Ferrari, Lamborghini, Porsche
Ferrari, Lamborghini, Porsche
, ,
, ,
, ,
, ,
, ,
Ferrari, ,
Lamborghini, ,
Ferrari, ,
Lamborghini, ,
Porsche, ,
Porsche, ,
Ferrari, Porsche,

J'aimerais qu'il y ait une virgule que pour séparer les mots.
 
Re : Plusieurs Fonction/Condition dans une cellule

Re

j'ai multiplier le nombre de subtitue ... pour faire toute ma liste de mots^^ (une 20aine).

Il est impossible, à ma connaissance, d'imbriquer 20 fonctions les unes dans les autres, pas plus SUBSTITUE qu'une autre... La limite d'Excel est 7, je crois

Code:
=B2&si(C2="";"";", "&C2)&si(D2="";"";", "&D2)
 
Re : Plusieurs Fonction/Condition dans une cellule

Bonjour tototiti,

avec Excel 2007 (et versions suivantes), on est passé à 64 niveaux d'imbrications.

Mais je n'ose imaginer ce que peut donner une formule où ces 64 niveaux seraient utilisés. La gestion des parenthèses ouvrantes et fermantes doit alors devenir un vrai cauchemar.

Sinon, pour Protoss, je pense que la solution la "plus simple" reste de passer par une formule matricielle.

@+
 
- 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

Discussions similaires

Réponses
2
Affichages
497
Retour