Formule sur une cellule qui contient un ou plusieurs mots

Résolu/Fermé
valduf59000 Messages postés 27 Date d'inscription vendredi 26 janvier 2018 Statut Membre Dernière intervention 7 mars 2024 - Modifié le 26 janv. 2018 à 13:29
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 - 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

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
26 janv. 2018 à 13:28
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
1
valduf59000 Messages postés 27 Date d'inscription vendredi 26 janvier 2018 Statut Membre Dernière intervention 7 mars 2024 1
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
0
valduf59000 Messages postés 27 Date d'inscription vendredi 26 janvier 2018 Statut Membre Dernière intervention 7 mars 2024 1
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.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
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
0
valduf59000 Messages postés 27 Date d'inscription vendredi 26 janvier 2018 Statut Membre Dernière intervention 7 mars 2024 1
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
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
Modifié le 26 janv. 2018 à 17:17
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
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
Modifié le 26 janv. 2018 à 14:36
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)";"")


0
valduf59000 Messages postés 27 Date d'inscription vendredi 26 janvier 2018 Statut Membre Dernière intervention 7 mars 2024 1
26 janv. 2018 à 14:46
Wahou, j'avoue je suis sur le cul, ça marche nickel.

Merci beaucoup.
0