XL 2019 Extraction de lettre

blancolie

XLDnaute Impliqué
Bonjour le forum,

Dans le fichier ci-dessous, j'aimerais obtenir ce résultat F-AGAUKUAM dans la cellule B4 à partir de ces mots AGASTACHE AURANTIACA KUDOS AMBROSIA et Fanfelle.

J'ai essaye avec cette formule :

Code:
GAUCHE(A1;1) & STXT(A1;CHERCHE(" ";A1)+1;1)

mais j'arrive pas à avoir le résultat escompté.

Cordialement
 

Pièces jointes

  • Classeur212.xlsx
    8.6 KB · Affichages: 25

surchat

XLDnaute Occasionnel
Bonjour,
Questions:
a. le texte contient minimum et maximum combien de mots
b. dans votre texte, il y a
> 2 espaces entre le premier et deuxième mot
> 2 espaces entre le 2ième et le 3ième mot
> 1 espace entre le 3ième et 4 dème mot

Très risqué!
 

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Bonjour le forum,

Dans le fichier ci-dessous, j'aimerais obtenir ce résultat F-AGAUKUAM dans la cellule B4 à partir de ces mots AGASTACHE AURANTIACA KUDOS AMBROSIA et Fanfelle.

J'ai essaye avec cette formule :

Code:
GAUCHE(A1;1) & STXT(A1;CHERCHE(" ";A1)+1;1)

mais j'arrive pas à avoir le résultat escompté.

Cordialement
avec une fonction personnalisée (split)
1588420422835.png
 

Pièces jointes

  • blancolie.xlsm
    22.4 KB · Affichages: 17
Dernière édition:

patricktoulon

XLDnaute Barbatruc
bonjour
je rejoins Modeste geedee

dans un module
VB:
Function RefCode(valeur As String)
Dim t, I&,x$
t = Split(Application.Trim(valeur), " ")
For I = 0 To UBound(t): x = x & Left(t(I), 2): Next
RefCode = x
End Function
et dans la cellule B4 tu met
=SI(C4<>"";RefCode(C4);"")

et tu étends la formule vers le bas autant que besoins est


la particularité de cette fonction c'est que j'utilise application.trim pour régulariser le nombre d'espace a 1 entre chaque mots et supprime bien entendu les éventuels espace devant et après la chaîne complète
parti de là le left(part,2) de chaque item du split est concaténé dans la boucle sur "x"
et voila c'est plus simple ;)

et si tu veux la "D4" avec
=SI(C4<>"";RefCode(C4&" " &D4);"")
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous,

On prend les deux premiers caractères de chaque mot. On est limité à 4 mots. Il est aisé de de l'étendre à 5 mots voire plus.

Une formule matricielle en B4 à tirer vers le bas:
VB:
=MAJUSCULE("F-"
&  SIERREUR(STXT(SUPPRESPACE($C4);PETITE.VALEUR(SI(STXT(" "&SUPPRESPACE($C4);LIGNE(INDIRECT("1:"&NBCAR(SUPPRESPACE($C4))+1));1)=" ";LIGNE(INDIRECT("1:"&NBCAR(SUPPRESPACE($C4))+1));"");1);2);"")
& SIERREUR(STXT(SUPPRESPACE($C4);PETITE.VALEUR(SI(STXT(" "&SUPPRESPACE($C4);LIGNE(INDIRECT("1:"&NBCAR(SUPPRESPACE($C4))+1));1)=" ";LIGNE(INDIRECT("1:"&NBCAR(SUPPRESPACE($C4))+1));"");2);2);"")
& SIERREUR(STXT(SUPPRESPACE($C4);PETITE.VALEUR(SI(STXT(" "&SUPPRESPACE($C4);LIGNE(INDIRECT("1:"&NBCAR(SUPPRESPACE($C4))+1));1)=" ";LIGNE(INDIRECT("1:"&NBCAR(SUPPRESPACE($C4))+1));"");3);2);"")
& SIERREUR(STXT(SUPPRESPACE($C4);PETITE.VALEUR(SI(STXT(" "&SUPPRESPACE($C4);LIGNE(INDIRECT("1:"&NBCAR(SUPPRESPACE($C4))+1));1)=" ";LIGNE(INDIRECT("1:"&NBCAR(SUPPRESPACE($C4))+1));"");4);2);""))

1588428020207.png
 

Pièces jointes

  • blancolie- codes- v1.xlsx
    12.2 KB · Affichages: 9

blancolie

XLDnaute Impliqué
Bonjour Surchat,

au maximum, il y a 5 mots, cela dépends des plantes. il y a juste un tiret entre F(Fanfelle) F qui va nous indiqué le fournisseur et pour les autres mots, pas d'espaces du tout.

J'ai vu que ta solution nécessité plusieurs étapes pour arriver au résultat final.
 

Discussions similaires

Statistiques des forums

Discussions
312 203
Messages
2 086 181
Membres
103 152
dernier inscrit
Karibu