Menu

Formule sur une cellule qui contient un ou plusieurs mots [Résolu]

valduf59000 18 Messages postés vendredi 26 janvier 2018Date d'inscription 14 février 2018 Dernière intervention - 26 janv. 2018 à 13:04 - Dernière réponse : Vaucluse 21993 Messages postés lundi 23 juillet 2007Date d'inscriptionContributeurStatut 21 mai 2018 Dernière intervention
- 26 janv. 2018 à 17:14
Bonjour,

Je dois intervenir sur un fichier excel pour l'importation dans un autre logiciel (comptabilité facturation suivant un colonnage précis),

Deux questions se posent :
Ma colonne D1 se présente pour un particulier de cette façon "Martin (Monsieur)" ou "Dupuis (Madame)" ou "SARL 123"

La première :
Je souhaite une formule me permettant de lui dire que si dans la colonne D1 le mot Monsieur ou Madame apparaît alors il me met dans la colonne A1 un "1" sinon c'est "0" (1 pour Particulier 0 pour entreprise)

La seconde une formule me permettant de lui dire que si dans la colonne D1 le mot Monsiuer ou Madame apparaît alors c'est "M" pour Monsieur ou "MME" pour madame.

Je vous remercie par avance,

Val
Afficher la suite 

Votre réponse

8 réponses

Vaucluse 21993 Messages postés lundi 23 juillet 2007Date d'inscriptionContributeurStatut 21 mai 2018 Dernière intervention - 26 janv. 2018 à 13:28
+1
Utile
Bonjour
si j'ai bien compris
faites hors champ, pour l'exemple en Z la liste des textes à détecter
attention,
  • pour ce qui est par exemple du M, vous pouvez le répéter dans la liste suivi une fois d'un blanc et une fois d'un M etc... de façon à ce que la formule ne confonde pas ce M avec un m inclus dans le texte
  • cette liste ne doit pas comporter de blanc

ensuite, pour un texte en A1 et une liste de référence en Z1:Z6,, cette formule en B1:

=SI(SOMMEPROD((NB.SI(A1;"*"&$Z$1:$Z$6&"*")*1));1;0)

attention à tous les signes



vous pouvez même affiner en ressortant en B le texte trouvé avec

=INDEX($Z$1:$Z$6;SOMMEPROD((NB.SI(A1;"*"&$Z$1:$Z$6&"*")*LIGNE($A$1:$A$6)));1;0))

le champ INDEX doit commencer en ligne 1

mais toutefois, cette dernière formule ne fonctionnera pas si le texte contient plusieurs mots de la liste

crdlmnt
Cette réponse vous a-t-elle aidé ?  
valduf59000 18 Messages postés vendredi 26 janvier 2018Date d'inscription 14 février 2018 Dernière intervention - 26 janv. 2018 à 14:01
Je me suis peut être pas assez bien exprimé, et si cela n'est pas faisable ce n'est rien (c'est juste que j'ai plus 14000 lignes)

En fait j'ai un fichier (liste client) qui va me servir à importer dans un logiciel de facturation au format .csv

Les colonnes doivent être organisées de la manière suivante :
A1 : Référence(1 pour entreprise; 0 pour particulier) ;
B1 : code client;
C1 : civilité/forme juridique (M pour monsieur, MME pour Madame; STE pour Société)
D1 : Nom (qui se forme de la manière suivante pour un particulier "Dupuis (Monsieur)" ou "Martin (Madame) ou SARL 123)
etc...

Dans ma première colonne (A1) je souhaite une fonction me permettant de dire que si la colonne "D1" contient (Monsieur) ou (Madame) alors la référence sera 0, sinon se sera 1

Dans ma troisième colonne (C1) je souhaite une fonction me permettant de dire que si la ligne de la colonne D1 contient l'expression (Monsieur) alors il me met M, si il contient (Madame) il me met MME, et s'il contient rien (pour les entreprises), il me met rien ou STE.

Si ce n'est pas réalisable, ou si juste une partie est réalisable, dites le moi, je cherche simplement une solution de rapidité.

Merci par avance,

Cordialement,

Val
valduf59000 18 Messages postés vendredi 26 janvier 2018Date d'inscription 14 février 2018 Dernière intervention - 26 janv. 2018 à 14:02
Ou alors si c'est possible de retirer de la troisième colonne les termes (Monsieur) ou Madame pour les mettre dans une autres colonnes afin de faire la différence.
Vaucluse 21993 Messages postés lundi 23 juillet 2007Date d'inscriptionContributeurStatut 21 mai 2018 Dernière intervention - 26 janv. 2018 à 15:31
re
Tout devrait être possible, mais pour pouvoir travailler plus simplement, pouvez vous déposer un modèle avec quelques lignes représentative de tous les cas de Figure possible, et des noms bidonnés pour confidentialité

ou sinon, essayez avec exemple pour A1quelquechose du style:
=SI(OU(NB.SI(D1;"*monsieur"*");NB.SI(D1;"*madame*"));0;1)

et en C1:
=SI(NB.SI(D1;"*monsieur*);"M";SI(NB.SI(D1;"*madame*");"Mrs";"STE"))
attention aux signes, n'oubliez pas les *

crdlmnt
valduf59000 18 Messages postés vendredi 26 janvier 2018Date d'inscription 14 février 2018 Dernière intervention - 26 janv. 2018 à 16:51
Désolé je me suis basé sur la réponse de Patrice33740, je n'avais pas vu votre réponse
Vaucluse 21993 Messages postés lundi 23 juillet 2007Date d'inscriptionContributeurStatut 21 mai 2018 Dernière intervention - 26 janv. 2018 à 17:14
Aucun problème, Patrice est excellent et on ne fait pas de compétition.
Si vous avez la solution, merci de passer le sujet en résolu (roue dentée en haut du fil à droite)
bonne route
crdlmnt
Commenter la réponse de Vaucluse
Patrice33740 6834 Messages postés dimanche 13 juin 2010Date d'inscription 20 mai 2018 Dernière intervention - Modifié par Patrice33740 le 26/01/2018 à 14:36
0
Utile
Bonjour,

En A1 :
=--ET(ESTERREUR(TROUVE("Monsieur";D1));ESTERREUR(TROUVE("Madame";D1)))

En C1 :
=SI(NON(ESTERREUR(TROUVE("Monsieur";D1)));"M.";SI(NON(ESTERREUR(TROUVE("Madame";D1)));"MME";"STE"))

Edit :
Et dans une nouvelle colonne :
=SUBSTITUE(SUBSTITUE(D1;"(Monsieur)";"");"(Madame)";"")


Cordialement
Patrice
valduf59000 18 Messages postés vendredi 26 janvier 2018Date d'inscription 14 février 2018 Dernière intervention - 26 janv. 2018 à 14:46
Wahou, j'avoue je suis sur le cul, ça marche nickel.

Merci beaucoup.
Commenter la réponse de Patrice33740