Extraire les deux premières lettres d'une chaîne de mots
Résoludanielc0 Messages postés 2009 Date d'inscription Statut Membre Dernière intervention -
J'ai besoin d'aide car je bute sur la dernière étape de ma formule excel.
Je vous explique, je cherche a créer une référence produit en automatique. La désignation possède de 1 à 4 mots. Lorsqu'il n'y a qu'un seul mot dans la désignation, la formule doit donner les 4 premières lettre du mot unique. Lorsque la désignation possède 2 mots et plus, elle doit donner les 2 premières lettres de chaque mot qui compose la désignation.
Exemple (au pif)
Désignation 1 : Moissonneuse => Ref : MOIS
Désignation 2 : Moissonneuse Batteuse => Ref : MOBA
Désignation 3 : Moissonneuse Batteuse Faucheuse => Ref : MOBAFA
Voici ma formule :
Pour les désignations avec un seul mot (formule ok)
=SI((NBCAR(D2)-NBCAR(SUBSTITUE(D2;" ";""))+1)=1;(GAUCHE(D2;4));)
Formule à la suite de la première => pour les désignations avec 2 mots (formule ok)
&(SI((NBCAR(D2)-NBCAR(SUBSTITUE(D2;" ";""))+1)=2;(GAUCHE(D2;2)&STXT(D2;CHERCHE(" ";2)+1;2));))
Formule à la suite de la seconde => pour les désignations avec 3 mots (formule ok)
&(SI((NBCAR(D8526)-NBCAR(SUBSTITUE(D8526;" ";""))+1)=3;(GAUCHE(D2;2)&STXT(D2;CHERCHE(" ";D2)+1;2)&STXT(D2;(CHERCHE(" ";D2;CHERCHE(" ";D2;1)+1))+1;2));))
La formule que j'ai pour les désignations à 4 mots ne fonctionne pas, quelqu'un aurait une idée pour m'aider?
Merci d'avance, c'est très important pour moi
- Formule excel 2 premières lettres du 2eme mot
- Formule excel si et - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Liste déroulante excel - Guide
- Excel mise en forme conditionnelle formule - Guide
- Formule somme excel colonne - Guide
8 réponses
La problématique consiste à générer une référence produit automatiquement à partir d'une désignation de 1 à 4 mots : pour un seul mot, on prend les 4 premières lettres ; pour deux mots ou plus, on prend les 2 premières lettres de chaque mot. Avec Excel 365, une solution proposée utilise LET et FRACTIONNER.TEXTE pour découper les mots, puis CONCAT et CHOISIR pour obtenir soit les 4 lettres du premier mot (1 mot), soit les 2 lettres de chaque mot (2 mots ou plus), par exemple: =LET(tbl;FRACTIONNER.TEXTE(A1;" ");CONCAT(CHOISIR(MIN(NBVAL(tbl);2);GAUCHE(A1;4);GAUCHE(tbl;2)))) . Une autre approche plus légère extrait les lettres par mot en remplaçant les espaces par un séparateur et en utilisant STXT/TROUVE, par exemple MAJUSCULE(GAUCHE(A1;2)&SIERREUR(STXT(A1;TROUVE("/";SUBSTITUE(A1;" ";"/";1))+1;2);"")&SIERREUR(STXT(A1;TROUVE("/";SUBSTITUE(A1;" ";"/";2))+1;2);"")&SIERREUR(STXT(A1;TROUVE("/";SUBSTITUE(A1;" ";"/";3))+1;2);"")), ce qui gère jusqu’à quatre mots. Enfin, il est possible d’employer une fonction personnalisée en VBA, nommée référence, qui renvoie la chaîne en majuscules et s’utilise comme =reference(A1).
Bonjour DjiDji59430,
Comment puis-je adapter votre formule si j'ajoute du texte à votre cellule D3?
Merci.
Bonjour Audrey
Il est préférable d'utiliser une fonction personnalisée qui fait l'extraction des premières lettres quelque soit le nombre de mots
Voir le code de cette fonction donnée dans mon post 7 précédent
Cdlmnt
Via