Extraire une chaine de caractères d'une cellule
Résolu
FiberIDEA
Messages postés
2
Statut
Membre
-
FiberIDEA Messages postés 2 Statut Membre -
FiberIDEA Messages postés 2 Statut Membre -
Bonjour
J'ai une liste de cellules comportant des chiffres et lettres ( exemple: 125A0341-1310 )
Toutes les cellules ont une lettre "A"
J'ai besoin d'extraire la lettre "A" et les 4 chiffres qui sont à sa droite (ici A0341)
Quelqu'un peux-t-il m'aider ?
Merci
J'ai une liste de cellules comportant des chiffres et lettres ( exemple: 125A0341-1310 )
Toutes les cellules ont une lettre "A"
J'ai besoin d'extraire la lettre "A" et les 4 chiffres qui sont à sa droite (ici A0341)
Quelqu'un peux-t-il m'aider ?
Merci
4 réponses
-
Bonsoir,
avec une expression régulière et un peu de vba :
VBAFunction extract(txt As String, pattern As String) As String
With CreateObject("VBScript.RegExp")
.pattern = pattern
.IgnoreCase = True
extract = .Execute(txt)(0)
End With
End Function
et ensuite pour ta cellule cible (si B6 est ta cellule source par exemple)
=extract(B6;"A[0-9]{4}")
si tu comptes utiliser ça uniquement avec ce pattern tu peux utiliser ça :Function extract(txt As String) As String
et ça dans ta cellule cible
With CreateObject("VBScript.RegExp")
.pattern = "A[0-9]{4}"
.IgnoreCase = True
extract = .Execute(txt)(0)
End With
End Function
=extract(B6)
mais la première fonction est plus souple-
-
-
ouais mais c'est tellement souple et puissant. et puis ça peut servir pour plein d'autre choses
par exemple si la lettre A n'est pas dans toutes les références ça évite plein de manipulation inutile
Je n'ai jamais vraiment utilisé excel et j'ai été étonné de voir qu'il n'y ai pas de fonction expression régulière directement dedans.
mais sinon ça ne fait qu'une petite fonction à ajouter et c'est tellement plus confortable que des fonctions imbriquées.
En plus ça pourra lui servir à l'avenir de connaitre ça. Ca simplifie beaucoup de chose.
-
-
Bonjour
Avec cette formule pour mon exemple les données sont en A7
=DROITE(GAUCHE(A7;CHERCHE("-";A7;1)-1);5)
-
Bonsoir
avec :
=STXT(A1;TROUVE("A";A1);5)
crdlmnt
-
Merci à tous, c'est nickel.
J'ai utilisé finalement la formule de Vaucluse qui conserve le "A" dans la réponse
Cdlt