Aller au contenu principal

11 mars 2013

3

ASTUCE EXCEL: EXTRAIRE DES CHAÎNES DE TEXTES

par moncherwatson
Extraire chaîne de texte

Est-ce qu’il vous est déjà arrivé de travailler avec une liste de noms importés et de vouloir séparer le prénom, le nom du milieu et le nom de famille dans 3 colonnes distinctes? L’article suivant vous montre comment faire dans Excel à l’aide des fonctions « Gauche » (« Left »), « Droite » (« Right »), « Trouve » (« Find »), « Substitue » (« Substitute »), « Supprespace » (« Trim ») et « Rept » (« Rept »).

.

Extraire les composantes d’un nom

.

Voici les formules à utiliser pour extraire les composantes d’un nom (qui comprend un « middle name »).

.

Extraire chaîne de texte

.

Voici plus d’information sur les fonctions utilisées:

.

Cliquez sur l’image pour l’agrandir

Extraire chaîne texte fonctions

.

Besoin de traduire des fonctions français-anglais?

Vous pouvez télécharger librement ce fichier de Traduction Fonctions (comprend toutes les fonctions d’Exce).

.

Explications détaillées des formules

AVERTISSEMENT: Des pépins techniques m’empêchent de représenter les guillemets correctement dans les explications ci-dessous. Svp vous référez à la première image pour bien comprendre de quelles expressions il s’agit.

.

Prénom

Décomposons la formule.

La partie =Find( » « , $B5) = 7. En effet, on demande à Excel de trouver l’espace ( » « ), dans ce cas-ci le premier qu’il croise, dans le nom Sophie M Marchand et de ramener sa position, qui est 7.

Ensuite, interprétons la formule dans son ensemble.

On demande à Excel d’aller dans la cellule comprenant l’expression « Sophie M Marchand » et de ne conserver que les 6 (7-1) caractères de gauche, i.e. S-O-P-H-I-E.

.

Milieu

Décomposons la formule.

La partie, Substitute($B5,$C5& » « , » ») = M Marchand. En effet, on demande à Excel d’aller dans la cellule contenant l’expression « Sophie M Marchand », de trouver l’expression « Sophie  » (remarquez que Sophie est suivi d’un espace), et de remplacer le tout par «  » (i.e. rien du tout). En d’autres mots, « Sophie M Marchand », devient alors « M Marchand ».

Ensuite, interprétons la formule dans son ensemble.

On demande à Excel d’aller dans l’expression « M Marchand »  et de remplacer  » Marchand » (remarquez l’espace devant « Marchand ») par «  » (i.e., rien). On obtient alors que le « M ».

.

Nom

Décomposons la formule.

La partie =Substitute($B5, » « ,rept( » « ,100)), donne quelque chose comme ce qui suit, puisqu’on demande à Excel d’aller dans l’expression « Sophie M Marchand » et de remplacer les espaces vides par 100  »  » (i.e., 100 espaces):

Substitute

La partie Right(Substitute($B5, » « ,REPT( » « ,100)),100), donne quelque chose comme ce qui suit, puisqu’on demande à Excel de ne retenir que les 100 caractères de droite de l’expression précédente (on obtient donc un certain nombre d’espaces, suivi du nom « Marchand »)

Rept

Ensuite, interprétons la formule dans son ensemble.

On demande ensuite à Excel de retirer tous les espaces de l’expression précédente, pour n’aboutir qu’avec « Marchand ».

.

Vous aimez cet article?

Je vous invite à le partager dans vos différents réseaux sociaux et également à laisser un commentaire plus bas.

.

Sophie Marchand, M.Sc., CPA, CGA

514-605-7112

 

3 Commentaires Poster un commentaire
  1. mar 13 2013

    Bonjour Sophie,
    une variante :
    Prénom =GAUCHE(B5;TROUVE( » « ;B5)-1)
    Milieu =STXT(B5;TROUVE( » « ;B5)+1;TROUVE( » « ;B5;TROUVE( » « ;B5)+1)-TROUVE( » « ;B5))
    Nom =DROITE(B5;NBCAR(B5)-TROUVE( » « ;B5;TROUVE( » « ;B5)+1))

    et bien entendu aussi la possibilité d’utiliser données convertir sur un séparateur espace.

    Cordialement
    Michel PIRON

    Répondre
  2. André Lafrenière
    mar 18 2013

    Bonjour Sophie,

    Les formules Excel sont une bonne façon d’arriver à extraire des chaînes de caractères, mais parfois la création d’une fonction sur mesure est plus expéditive et peut être réutilisée partout dans le classeur !

    Voici une fonction «ExtraireNom()» sur mesure pour le cas :

    Public Function ExtraireNom(Texte As String) As String

    For i = 1 To Len(Trim(Texte))

    sT1 = Mid(Texte, i, 1)
    If i = 1 Then sT2 = sT1 Else sT2 = Mid(Texte, i – 1, 1)

    If sT1  »  » Or sT2  »  » Then
    ExtraireNom = ExtraireNom & sT1
    End If

    Next i

    End Function

    En passant, j’aime beaucoup vos chronique !!

    Cordialement,
    André Lafrenière

    Répondre

Rétroliens & Pings

  1. ASTUCE EXCEL: EXTRAIRE DES CHAÎNES DE TEXTES | Bienvenue à BM Formation

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

Remarque : Le HTML est autorisé. Votre adresse email ne sera jamais publiée.

S'abonner aux commentaires

%d blogueurs aiment cette page :