Extraire champ chaîne de caractères excel
MATY31240
-
Mike-31 Messages postés 18405 Date d'inscription Statut Contributeur Dernière intervention -
Mike-31 Messages postés 18405 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je cherche à extraire un champ situé au milieu d'une chaîne de caractères.
Les champs sont toujours séparés par des underscores mais le nombre de caractères à l'intérieur de chaque champs peut varier.
Exemple:
10000001_01_SCT_MAG_58_test.pdf
1000000001_003_SPB4_MAGPC_8_test.pdf
Le nombre de champs séparés par les underscores est toujours le même (6 champs au total) et je souhaiterai extraire le 5ème champ dans la colonne B, c'est à dire "58" pour le premier exemple et 8 pour le second.
Merci d'avance!!
Je cherche à extraire un champ situé au milieu d'une chaîne de caractères.
Les champs sont toujours séparés par des underscores mais le nombre de caractères à l'intérieur de chaque champs peut varier.
Exemple:
10000001_01_SCT_MAG_58_test.pdf
1000000001_003_SPB4_MAGPC_8_test.pdf
Le nombre de champs séparés par les underscores est toujours le même (6 champs au total) et je souhaiterai extraire le 5ème champ dans la colonne B, c'est à dire "58" pour le premier exemple et 8 pour le second.
Merci d'avance!!
8 réponses
-
Bonjour
et si vous avez de l'aspirine comme dit Michel, pour le fun:
=GAUCHE(STXT(A1;TROUVE("/";SUBSTITUE(A1;"_";"/";4);1)+1;20);TROUVE("_";STXT(A1;TROUVE("/";SUBSTITUE(A1;"_";"/";4);1)+1;20);1)-1)
crdlmnt -
Bonjour,
On peut le faire avec des formules -doliprane ou par une fonction personnalisée
la fonctionFunction extraire_chainon(texto As String, position As Byte) As String extraire_chainon = Split(texto, "_")(position - 1) End Function
position est le 5° terme (58)
texto est le texte à étudier par ex "10000001_01_SCT_MAG_58_test.pdf "en cellule A1
extraire_chaino(A1;5) te retourne le texte 58
tu dis si tu veux 58 en nimbre
-
Re
oui bien sur, puisque vous utilisez STXT le résultat est du texte
mettez toute la formule entre parenthèses derrière le signe égal et terminez par *1
soit donc pour être clair:
=(GAUCHE(STXT(A1;TROUVE("/";SUBSTITUE(A1;"_";"/";4);1)+1;20);TROUVE("_";STXT(A1;TROUVE("/";SUBSTITUE(A1;"_";"/";4);1)+1;20);1)-1))*1
ceci repassera vos valeurs en numérique
crdlmnt
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique? -
une solution
=STXT(A18;CHERCHE(CAR(95);A18;CHERCHE(CAR(95);A18;CHERCHE(CAR(95);A18;CHERCHE(CAR(95);A18;1)+1)+1)+1)+1;CHERCHE(CAR(95);A18;CHERCHE(CAR(95);A18;CHERCHE(CAR(95);A18;CHERCHE(CAR(95);A18;CHERCHE(CAR(95);A18;1)+1)+1)+1)+1)-1-CHERCHE(CAR(95);A18;CHERCHE(CAR(95);A18;CHERCHE(CAR(95);A18;CHERCHE(CAR(95);A18;1)+1)+1)+1))
A18 est la cellule ou se trouve le texte à traiter -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Merci pour vos réponses!!
michel_m, je n'ai pas su utiliser cette fonction.
PHILOU10120 et Vaucluse, j'ai testé vos 2 formules avec succès!!
Par contre, se pose un autre problème:
J'ai bien le résultat qui apparait dans la colonne mais si je veux utiliser la formule =SOMME(B8:B501) pour calculer le total de tout ce qui est extrait, cette formule ne marche plus (elle fonctionne lorsqu'on inscrit des nombres).
une idée ?
Cordialement -
Taper CNUM ( mettre toute la formule )
-
-
Salut le fil,
J'arrive après la bataille, peut être un peu plus court avec cette formule
=STXT(A1;TROUVE("µ";SUBSTITUE(A1;"_";"µ";4))+1;TROUVE("µ";SUBSTITUE(A1;"_";"µ";5))-TROUVE("µ";SUBSTITUE(A1;"_";"µ";4))-1)*1
pour extraire une partie de chaine texte supprimer simplement *1 en fin de formule