Note: The other languages of the website are Google-translated. Back to English

Comment extraire rapidement l'adresse e-mail d'une chaîne de texte?

Lorsque vous importez des adresses e-mail du site Web vers une feuille de calcul Excel, il contient toujours du texte non pertinent, mais vous souhaitez maintenant simplement extraire les adresses e-mail pures de la chaîne de texte (voir les captures d'écran suivantes). Comment pouvez-vous obtenir rapidement uniquement les adresses e-mail du texte de la cellule?

doc-extrait-emails1 -2 doc-extrait-emails2

Extraire l'adresse e-mail de la chaîne de texte avec la formule

Extraire l'adresse e-mail de la chaîne de texte avec la fonction définie par l'utilisateur

Extraire l'adresse e-mail de la chaîne de texte avec le code VBA

Extraire l'adresse e-mail de la chaîne de texte avec Kutools for Excel


flèche bleue bulle droite Extraire l'adresse e-mail de la chaîne de texte avec la formule

Ici, je vous présente une longue formule pour extraire uniquement les adresses e-mail du texte dans Excel. Veuillez procéder comme suit:

1. Dans la cellule B1 adjacente, entrez cette formule = TRIM (RIGHT (SUBSTITUTE (LEFT (A1, FIND ("", A1 & "", FIND ("@", A1)) - 1), "", REPT ("", LEN (A1))), LEN ( A1))).

doc-extrait-emails3

2. Puis appuyez Entrer , puis sélectionnez la cellule B1 et faites glisser la poignée de recopie vers la plage dans laquelle vous souhaitez contenir cette formule. Et les adresses e-mail de la plage ont été extraites de la chaîne de texte. Voir la capture d'écran:

doc-extrait-emails4

Notes:

1. La ponctuation après l'adresse e-mail sera également extraite.

2. Si les cellules ne contiennent pas les adresses e-mail, la formule affichera les valeurs d'erreur.

3. S'il y a plus d'une adresse e-mail dans une cellule, la formule extraira uniquement la première adresse.


Extraire plusieurs adresses e-mail à partir de chaînes de texte

Kutools pour Excel's Extraire l'adresse e-mail peut vous aider à extraire les adresses e-mail des chaînes de texte rapidement et facilement. Cliquez pour télécharger Kutools for Excel!

doc extraire les e-mails-1

Kutools pour Excel: avec plus de 300 compléments Excel pratiques, essai gratuit sans limitation dans 30 jours. Téléchargez et essayez gratuitement maintenant!


flèche bleue bulle droite Extraire l'adresse e-mail de la chaîne de texte avec la fonction définie par l'utilisateur

À l'exception de la formule ci-dessus, une fonction définie par l'utilisateur peut également vous aider à obtenir l'adresse e-mail à partir de la chaîne de texte.

1. Maintenez le ALT + F11 clés, et il ouvre le Microsoft Visual Basic pour applications fenêtre.

2Cliquez sur insérer > Moduleet collez la macro suivante dans la fenêtre Module.

Function ExtractEmailFun(extractStr As String) As String
'Update by extendoffice
Dim CharList As String
On Error Resume Next
CheckStr = "[A-Za-z0-9._-]"
OutStr = ""
Index = 1
Do While True
    Index1 = VBA.InStr(Index, extractStr, "@")
    getStr = ""
    If Index1 > 0 Then
        For p = Index1 - 1 To 1 Step -1
            If Mid(extractStr, p, 1) Like CheckStr Then
                getStr = Mid(extractStr, p, 1) & getStr
            Else
                Exit For
            End If
        Next
        getStr = getStr & "@"
        For p = Index1 + 1 To Len(extractStr)
            If Mid(extractStr, p, 1) Like CheckStr Then
                getStr = getStr & Mid(extractStr, p, 1)
            Else
                Exit For
            End If
        Next
        Index = Index1 + 1
        If OutStr = "" Then
            OutStr = getStr
        Else
            OutStr = OutStr & Chr(10) & getStr
        End If
    Else
        Exit Do
    End If
Loop
ExtractEmailFun = OutStr
End Function

3. Ensuite, enregistrez le code et entrez la formule = ExtractEmailFun (A1) dans une cellule vide adjacente, voir capture d'écran:

doc-extrait-emails5

4. Et puis appuyez sur Entrer , sélectionnez la cellule B1 et faites glisser la poignée de recopie vers la plage dont vous avez besoin pour la formule. Et toutes les adresses e-mail ont été extraites du texte de la cellule. Voir la capture d'écran:

doc-extrait-emails6

Notes:

1. Si les cellules n'ont pas les adresses e-mail, les cellules vides seront révélées.

2. S'il y a plus d'une adresse e-mail dans une cellule, tous les e-mails seront extraits.


flèche bleue bulle droite Extraire l'adresse e-mail de la chaîne de texte avec le code VBA

Si vous pensez que les formules ci-dessus sont gênantes pour vous, le code VBA suivant peut vous aider à extraire les adresses e-mail en une seule.

1. Maintenez le ALT + F11 clés, et il ouvre un Microsoft Visual Basic pour applications fenêtre.

2Cliquez sur insérer > Moduleet collez la macro suivante dans le Fenêtre du module.

VBA: extraire les adresses e-mail de la chaîne de texte

Sub ExtractEmail()
'Update 20130829
Dim WorkRng As Range
Dim arr As Variant
Dim CharList As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
arr = WorkRng.Value
CheckStr = "[A-Za-z0-9._-]"
For i = 1 To UBound(arr, 1)
    For j = 1 To UBound(arr, 2)
        extractStr = arr(i, j)
        outStr = ""
        Index = 1
        Do While True
            Index1 = VBA.InStr(Index, extractStr, "@")
            getStr = ""
            If Index1 > 0 Then
                For p = Index1 - 1 To 1 Step -1
                    If Mid(extractStr, p, 1) Like CheckStr Then
                        getStr = Mid(extractStr, p, 1) & getStr
                    Else
                        Exit For
                    End If
                Next
                getStr = getStr & "@"
                For p = Index1 + 1 To Len(extractStr)
                    If Mid(extractStr, p, 1) Like CheckStr Then
                        getStr = getStr & Mid(extractStr, p, 1)
                    Else
                        Exit For
                    End If
                Next
                Index = Index1 + 1
                If outStr = "" Then
                    outStr = getStr
                Else
                    outStr = outStr & Chr(10) & getStr
                End If
            Else
                Exit Do
            End If
        Loop
        arr(i, j) = outStr
    Next
Next
WorkRng.Value = arr
End Sub

3. Puis appuyez F5 clé pour exécuter ce code, et vous devez sélectionner une plage que vous souhaitez utiliser le VBA dans la boîte de dialogue pop-out, voir capture d'écran:

doc-extrait-emails7

4. Puis clique OKet les adresses e-mail ont été extraites des chaînes de texte sélectionnées. Voir les captures d'écran:

doc-extrait-emails8 -2 doc-extrait-emails9

Notes:

1. Si les cellules n'ont pas les adresses e-mail, cela révélera des cellules vides.

2. Tous les e-mails seront extraits, s'il y a plus d'une adresse e-mail dans une cellule.

3. Les e-mails extraits couvriront les données d'origine, vous feriez donc mieux de sauvegarder les données en premier si vous en avez besoin.


flèche bleue bulle droite Extraire l'adresse e-mail de la chaîne de texte avec Kutools for Excel en un clic

Les méthodes ci-dessus semblent un peu compliquées pour notre débutant Excel, ici, je peux vous recommander un outil rapide et facile- Kutools pour Excel, Avec son Extraire l'adresse e-mail utilitaire, vous pouvez extraire les adresses e-mail des chaînes de texte sans trop d'effort.

Kutools pour Excel : avec plus de 300 compléments Excel pratiques, essai gratuit sans limitation en 30 jours.

Si vous avez installé Kutools pour Excel, procédez comme suit:

1. Sélectionnez les cellules contenant les chaînes de texte.

2Cliquez sur Kutools > Texte > Extraire l'adresse e-mail, voir capture d'écran:

3. Et un Extraire l'adresse e-mail La boîte de dialogue apparaîtra, sélectionnez une cellule où vous souhaitez mettre le résultat, voir capture d'écran:

doc-extrait-emails9

4. Puis clique OK bouton, toutes les adresses e-mail ont été extraites des chaînes de texte, voir capture d'écran:

doc-extrait-emails9

Cliquez pour télécharger et essayer gratuitement Kutools for Excel Now!


flèche bleue bulle droite Démo: Extraire l'adresse e-mail de la chaîne de texte avec Kutools for Excel

Kutools pour Excel: avec plus de 300 compléments Excel pratiques, essai gratuit sans limitation dans 30 jours. Téléchargez et essayez gratuitement maintenant!

Article connexe:

Comment extraire des domaines de plusieurs adresses e-mail dans Excel?


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine
Commentaires (40)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
LUL UTILISEZ CE CODE POUR L'EXTRAIT D'EMAIL. Sub lula() Dim d1 As Variant cntr = 0 rowstring = ActiveCell.Offset(0, 0).Value d1 = Split(rowstring, " ") Do 'MsgBox d1(cntr) cntr = cntr + 1 If d1(cntr) = "" Then GoTo ttt If InStr(d1(cntr), "@") Then MsgBox d1(cntr) GoTo ttt End If Loop While d1(cntr) "" ttt: End Sub
Ce commentaire a été minimisé par le modérateur sur le site
très utile, merci!
Ce commentaire a été minimisé par le modérateur sur le site
Merci pour cette formule ! Vous venez de m'économiser une tonne de travail - j'ai dû extraire 1500 e-mails d'une feuille Excel mal écrite pour une liste de marketing par e-mail. Une fois que j'ai enfin trouvé votre formule, ce fut un jeu d'enfant.
Ce commentaire a été minimisé par le modérateur sur le site
Super code ! Vraiment utile. Malheureusement, il s'agit de concaténer plusieurs adresses e-mail plutôt que de les séparer utilement, par exemple avec un point-virgule. Comment ajouteriez-vous un séparateur ?
Ce commentaire a été minimisé par le modérateur sur le site
pas de VBA juste une formule à coller dans la cellule Changez simplement les références (l'exemple ci-dessous regarde la cellule A1) =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND("@",A1)-1)," ",REPT( " ",99)),99))&MID(A1,CHERCHE("@",A1),CHERCHE(" ",A1&" ",CHERCHE("@",A1))-CHERCHE("@",A1) )
Ce commentaire a été minimisé par le modérateur sur le site
[quote]... =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND("@",A1)-1)," ",REPT(" ",99)),99))&MID(A1,FIND("@",A1),FIND(" ",A1&" ",FIND("@",A1))-FIND("@",A1))Par moi[/quote] Merci "ME", fonctionne textuellement dans la feuille de calcul Google !
Ce commentaire a été minimisé par le modérateur sur le site
[quote]pas de VBA juste une formule à coller dans la cellule Changez simplement les références (l'exemple ci-dessous regarde la cellule A1) =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND("@",A1)-1)," " ,REPT(" ",99)),99))&MID(A1,CHERCHE("@",A1),CHERCHE(" ",A1&" ",CHERCHE("@",A1))-CHERCHE("@" ,A1))Par moi[/citation] Merci. Cela a fonctionné pour moi.
Ce commentaire a été minimisé par le modérateur sur le site
Étonnante! Cordialement pour le script VBS ! THX!
Ce commentaire a été minimisé par le modérateur sur le site
Merci beaucoup, c'est très pratique !
Ce commentaire a été minimisé par le modérateur sur le site
C'est super, mais maintenant j'ai un problème. Il y a un espace au lieu d'un point entre toutes les adresses e-mail (c'est-à-dire abcd@aol com), donc la formule ne met pas la fin de toutes les adresses e-mail (.net, .com, etc.) dans la nouvelle colonne. Comment puis-je réparer cela?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour à tous, je cherchais également un moyen de séparer les adresses e-mail, afin que je puisse le mettre dans Outlook. J'ai ajouté un ";" séparateur entre les adresses e-mail afin qu'elles ne fonctionnent pas ensemble. Laissez-moi savoir ce que vous pensez. Merci à l'auteur de l'original pour l'avoir réuni ! Fonction ExtractEmailFun(extractStr As String) As String 'Mise à jour 20150723 Dim CharList As String On Error Resume Next CheckStr = "[A-Za-z0-9._-]" ExtractEmailFun = "" Index = 1 Do While True Index1 = VBA. InStr(Index, extractStr, "@") getStr = "" If Index1 > 0 Then For p = Index1 - 1 To 1 Step -1 If Mid(extractStr, p, 1) Like CheckStr Then getStr = Mid(extractStr, p, 1) & getStr Else Quittez pour End If Next getStr = getStr & "@" For p = Index1 + 1 To Len(extractStr) If Mid(extractStr, p, 1) Like CheckStr Then getStr = getStr & Mid(extractStr, p, 1) Sinon getStr = getStr Exit For End If Next Index = Index1 + 1 getStr = getStr & "; " If ExtractEmailFun = "" Then ExtractEmailFun = getStr Else ExtractEmailFun = ExtractEmailFun & Chr(10) & getStr End If Else Exit Do End If Fonction de fin de boucle
Ce commentaire a été minimisé par le modérateur sur le site
Merci à l'auteur du script original; Je suis allé de l'avant et j'ai ajouté un séparateur ";" entre plusieurs adresses e-mail. Fonction ExtractEmailFun(extractStr As String) As String 'Mise à jour 20150723 Dim CharList As String On Error Resume Next CheckStr = "[A-Za-z0-9._-]" ExtractEmailFun = "" Index = 1 Do While True Index1 = VBA. InStr(Index, extractStr, "@") getStr = "" If Index1 > 0 Then For p = Index1 - 1 To 1 Step -1 If Mid(extractStr, p, 1) Like CheckStr Then getStr = Mid(extractStr, p, 1) & getStr Else Quittez pour End If Next getStr = getStr & "@" For p = Index1 + 1 To Len(extractStr) If Mid(extractStr, p, 1) Like CheckStr Then getStr = getStr & Mid(extractStr, p, 1) Sinon getStr = getStr Exit For End If Next Index = Index1 + 1 getStr = getStr & "; " If ExtractEmailFun = "" Then ExtractEmailFun = getStr Else ExtractEmailFun = ExtractEmailFun & Chr(10) & getStr End If Else Exit Do End If Fonction de fin de boucle
Ce commentaire a été minimisé par le modérateur sur le site
C'est bon! Merci.
Ce commentaire a été minimisé par le modérateur sur le site
Frère, tu es vraiment un génie. La formule ci-dessous a fonctionné pour moi et a sauvé l'intervention manuelle qui prenait des heures =TRIM(RIGHT(SUBSTITUTE(LEFT(H2,FIND (" ",H2&" ",FIND("@",H2))-1)," ", REPT(" ",LEN(H2))),LEN(H2))) Que Dieu vous bénisse
Ce commentaire a été minimisé par le modérateur sur le site
j'ai besoin de plus d'informations sur la façon d'extraire des e-mails
Ce commentaire a été minimisé par le modérateur sur le site
Cher Monsieur, Comment puis-je extraire les identifiants de messagerie corrects de mon exemple de liste de diffusion ci-dessous a.hamilton@tradsingapore.com.sg aarabest@emirates.com.net.ae admin@countrywide.com.my
Ce commentaire a été minimisé par le modérateur sur le site
puisque la formule m'a été d'une grande aide, j'ai pensé partager mon expérience. Je l'exécute sur une liste de webscrapes html qui sont parfois si longues que la formule est erronée. Selon wikipedia, la longueur maximale d'une adresse e-mail est de 254 caractères, donc le remplacement des portions len(A1) par 256 améliore la stabilité de la fonction : =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND (" ",A1&" "), TROUVER("@",A1))-1)," ", REPT(" ",256)),256))
Ce commentaire a été minimisé par le modérateur sur le site
Excellent, merveilleux. tout le monde devrait utiliser..
Ce commentaire a été minimisé par le modérateur sur le site
Si je veux extraire une seule adresse e-mail de A1, cette formule le fait et ne signale qu'un blanc, pas une erreur, si A1 ne contient aucune adresse e-mail. Je trouve que c'est une solution plus simple que d'essayer de maîtriser tous ces scripts, et cela ne coûte rien. =SIERREUR(TRIM(RIGHT(SUBSTITUT(LEFT(A1,CHERCHE(" ",A1&" ",CHERCHE("@",A1))-1)," ",REPT(" ",LEN(A1))), LEN(A1))),"")
Ce commentaire a été minimisé par le modérateur sur le site
Extrêmement utile. Merci beaucoup!!
Ce commentaire a été minimisé par le modérateur sur le site
Super infos ! Merci
Ce commentaire a été minimisé par le modérateur sur le site
J'utilise Excel 2007 sur un HP. Si vous avez Melanie Brown en A1 et que vous souhaitez qu'elle lise Melanie.Brown@gmail.com dans la même cellule, comment y parvenez-vous ? J'ai une chaîne de crinières à faire de la même manière. Est-ce que quelqu'un va m'aider avec ça?
Il n'y a pas encore de commentaires postés ici
TÉLÉCHARGER PLUS
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés