Extraire champ chaîne de caractères excel
MATY31240
-
Mike-31 Messages postés 19572 Date d'inscription Statut Contributeur Dernière intervention -
Mike-31 Messages postés 19572 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!!
A voir également:
- Excel extraire chaine de caractère entre parenthèses
- Liste déroulante excel - Guide
- Caractère spéciaux - Guide
- Extraire une video youtube - Guide
- Nombre de jours entre deux dates excel - Guide
- Caractère ascii - Guide
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
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 fonction
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
On peut le faire avec des formules -doliprane ou par une fonction personnalisée
la fonction
Function 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?
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
=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
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