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

Cum se extrage rapid adresa de e-mail din șirul de text?

Când importați unele adrese de e-mail din site-ul web în foaia de lucru Excel, conține întotdeauna text irelevant, dar acum doriți doar să extrageți adresele de e-mail pure din șirul de text (consultați următoarele capturi de ecran). Cum ați putea obține rapid doar adresele de e-mail din textul celulei?

doc-extract-email-uri1 -2 doc-extract-email-uri2

Extrageți adresa de e-mail din șirul de text cu Formula

Extrageți adresa de e-mail din șirul de text cu funcția definită de utilizator

Extrageți adresa de e-mail din șirul de text cu codul VBA

Extrageți adresa de e-mail din șirul de text cu Kutools pentru Excel


săgeată albastru dreapta balon Extrageți adresa de e-mail din șirul de text cu Formula

Aici vă prezint o formulă lungă pentru a extrage numai adresele de e-mail din text în Excel. Vă rugăm să faceți următoarele:

1. În celula adiacentă B1, introduceți această formulă = TRIM (DREAPTA (SUBSTITUT (STÂNGA (A1, FIND ("", A1 & "", FIND ("@", A1)) - 1), "", REPT ("", LEN (A1))), LEN ( A1))).

doc-extract-email-uri3

2. Apoi apăsați Intrați tasta, apoi selectați celula B1 și trageți mânerul de umplere în intervalul pe care doriți să îl conțineți această formulă. Și adresele de e-mail din interval au fost extrase din șirul de text. Vedeți captura de ecran:

doc-extract-email-uri4

note:

1. De asemenea, punctuația după adresa de e-mail va fi extrasă.

2. Dacă celulele nu conțin adresele de e-mail, formula va afișa valori de eroare.

3. Dacă există mai multe adrese de e-mail într-o celulă, formula va extrage doar prima adresă.


Extrageți mai multe adrese de e-mail din șiruri de text

Kutools pentru Excel'S Extrageți adresa de e-mail vă poate ajuta să extrageți rapid și convenabil adresele de e-mail din șirurile de text. Faceți clic pentru a descărca Kutools pentru Excel!

doc extrage e-mailuri-1

Kutools pentru Excel: cu mai mult de 300 de programe de completare Excel la îndemână, încercați fără limitări în 30 de zile. Descărcați și proba gratuită acum!


săgeată albastru dreapta balon Extrageți adresa de e-mail din șirul de text cu funcția definită de utilizator

Cu excepția formulei de mai sus, o funcție definită de utilizator vă poate ajuta, de asemenea, să obțineți adresa de e-mail din șirul de text.

1. Țineți apăsat butonul ALT + F11 tastele și deschide fișierul Microsoft Visual Basic pentru aplicații fereastră.

2. Clic Insera > Moduleși lipiți următoarea macro în fereastra 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. Apoi salvați codul și introduceți formula = ExtractEmailFun (A1) într-o celulă necompletată, vezi captura de ecran:

doc-extract-email-uri5

4. Și apoi apăsați Intrați tasta, selectați celula B1 și trageți mânerul de umplere peste intervalul de care aveți nevoie de formulă. Și toate adresele de e-mail au fost extrase din textul celulei. Vedeți captura de ecran:

doc-extract-email-uri6

note:

1. Dacă celulele nu au adresele de e-mail, va dezvălui celule goale.

2. Dacă există mai multe adrese de e-mail într-o celulă, toate e-mailurile vor fi extrase.


săgeată albastru dreapta balon Extrageți adresa de e-mail din șirul de text cu codul VBA

Dacă simțiți că formulele de mai sus sunt supărătoare pentru dvs., următorul cod VBA vă poate ajuta să extrageți adresele de e-mail la una.

1. Țineți apăsat butonul ALT + F11 tastele și deschide un Microsoft Visual Basic pentru aplicații fereastră.

2. Clic Insera > Moduleși lipiți următoarea macro în fișierul Fereastra modulului.

VBA: extrageți adresele de e-mail din șirul de text

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. Apoi apăsați F5 tasta pentru a rula acest cod și ar trebui să selectați un interval pe care doriți să îl utilizați VBA în dialogul pop-out, consultați captura de ecran:

doc-extract-email-uri7

4. Apoi apasa OK, iar adresele de e-mail au fost extrase din șirurile de text selectate. Vedeți capturi de ecran:

doc-extract-email-uri8 -2 doc-extract-email-uri9

note:

1. Dacă celulele nu au adresele de e-mail, acesta va dezvălui celule goale.

2. Toate e-mailurile vor fi extrase, dacă există mai multe adrese de e-mail într-o celulă.

3. E-mailurile extrase vor acoperi datele originale, deci ar trebui să faceți mai întâi copii de siguranță ale datelor, dacă aveți nevoie.


săgeată albastru dreapta balon Extrageți adresa de e-mail din șirul de text cu Kutools pentru Excel cu un singur clic

Metodele de mai sus arată oarecum complicate pentru începătorul nostru Excel, aici vă pot recomanda un instrument rapid și ușor - Kutools pentru Excel, Cu său Extrageți adresa de e-mail utilitar, puteți extrage adresele de e-mail din șirurile de text fără prea mult efort.

Kutools pentru Excel : cu mai mult de 300 de programe de completare Excel la îndemână, gratuit pentru a încerca fără limitări în 30 de zile.

Dacă ați instalat Kutools pentru Excel, vă rugăm să faceți următoarele:

1. Selectați celulele care conțin șiruri de text.

2. Clic Kutools > Text > Extrageți adresa de e-mail, vezi captura de ecran:

3. Si un Extrageți adresa de e-mail caseta de dialog va apărea, selectați o celulă în care doriți să puneți rezultatul, vedeți captura de ecran:

doc-extract-email-uri9

4. Apoi apasa OK buton, toate adresele de e-mail au fost extrase din șirurile de text, vezi captura de ecran:

doc-extract-email-uri9

Faceți clic pentru a descărca și proba gratuită Kutools pentru Excel acum!


săgeată albastru dreapta balon Demo: extrageți adresa de e-mail din șirul de text cu Kutools pentru Excel

Kutools pentru Excel: cu mai mult de 300 de programe de completare Excel la îndemână, încercați fără limitări în 30 de zile. Descărcați și proba gratuită acum!

Articol asociat:

Cum se extrag domenii din mai multe adrese de e-mail în Excel?


Cele mai bune instrumente de productivitate Office

Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%

  • reutilizarea: Introduceți rapid formule complexe, diagrame și orice ai folosit anterior; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
  • Merge celule / rânduri / coloane fără a pierde date; Conținut de celule divizate; Combinați rânduri / coloane duplicate... Prevenirea celulelor duplicate; Comparați gamele...
  • Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
  • Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
  • Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
  • Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
  • Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
  • Peste 300 de funcții puternice. Suportă Office / Excel 2007-2021 și 365. Acceptă toate limbile. Implementare ușoară în întreprinderea sau organizația dvs. Funcții complete Probă gratuită de 30 de zile. Garanție de returnare a banilor de 60 de zile.
fila kte 201905

Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
fundul officetab
Comentarii (40)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
LUL UTILIZAȚI ACEST COD PENTRU EXTRAS DE 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) = "" Apoi GoTo ttt If InStr(d1(cntr), "@") Then MsgBox d1(cntr) GoTo ttt End If Loop While d1(cntr) "" ttt: End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
foarte util, multumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumesc pentru această formulă! Tocmai mi-ai economisit o grămadă de muncă - a trebuit să extrag 1500 de e-mailuri dintr-o foaie Excel prost scrisă pentru o listă de marketing prin e-mail. Odată ce am găsit în sfârșit formula ta, a fost o clipă.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cod grozav! Cu adevărat util. Din păcate, concatenează mai multe adrese de e-mail în loc să le separe în mod util, de exemplu cu punct și virgulă. Cum ai adăuga un separator?
Acest comentariu a fost redus la minimum de moderatorul de pe site
nici o formulă VBA pentru a fi lipită în celulă Doar schimbați referințele (exemplul de mai jos se uită la Celula A1) =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND("@",A1)-1)," ",REPT( " ",99)),99))&MID(A1,FIND("@",A1),FIND(" ",A1&" ",FIND("@",A1))-FIND("@",A1) )
Acest comentariu a fost redus la minimum de moderatorul de pe site
[quote]... =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND("@",A1)-1)," ",REPT(" ",99)),99))&MID(A1,FIND("@",A1),FIND(" ",A1&" ",FIND("@",A1))-FIND("@",A1))De mine[/quote] Mulțumesc „ME”, funcționează literal în foaia de calcul Google!
Acest comentariu a fost redus la minimum de moderatorul de pe site
[quote]nicio formulă VBA pentru a fi lipită în celulă Doar schimbați referințele (exemplul de mai jos se uită la Celula A1) =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND("@",A1)-1)," " ,REPT(" ",99)),99))&MID(A1,FIND("@",A1),FIND(" ",A1&" ",FIND("@",A1))-FIND("@" ,A1))De mine[/quote] Mulțumesc. La mine a funcționat.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Uimitor! Salutări pentru scenariul VBS! THX!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumesc mult, este foarte util!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Este grozav, dar acum am o problemă. Există un spațiu în loc de un punct între toate adresele de e-mail (adică abcd@aol com), așa că formula nu pune sfârșitul tuturor adreselor de e-mail (.net, .com, etc.) în noua coloană. Cum pot remedia asta?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua tuturor, și eu căutam o modalitate de a separa adresele de e-mail, astfel încât să o pot pune în Outlook. Am adăugat un separator „; ” între adresele de e-mail, astfel încât acestea să nu ruleze împreună. Spune-mi ce crezi. Mulțumim autorului originalului pentru că ați adunat acest lucru! Funcție ExtractEmailFun(extractStr As String) As String 'Update 20150723 Dim CharList As String On Error Reluare Next CheckStr = "[A-Za-z0-9._-]" ExtractEmailFun = "" Index = 1 Do While True Index1 = VBA. InStr(Index, extractStr, "@") getStr = "" Dacă Index1 > 0 Atunci Pentru p = Index1 - 1 La 1 Pas -1 Dacă Mid(extractStr, p, 1) Ca și CheckStr Atunci 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 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 Funcția de terminare a buclei
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumiri autorului scenariului original; Am continuat și am adăugat un separator „;” între mai multe adrese de e-mail. Funcție ExtractEmailFun(extractStr As String) As String 'Update 20150723 Dim CharList As String On Error Reluare Next CheckStr = "[A-Za-z0-9._-]" ExtractEmailFun = "" Index = 1 Do While True Index1 = VBA. InStr(Index, extractStr, "@") getStr = "" Dacă Index1 > 0 Atunci Pentru p = Index1 - 1 La 1 Pas -1 Dacă Mid(extractStr, p, 1) Ca și CheckStr Atunci 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 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 Funcția de terminare a buclei
Acest comentariu a fost redus la minimum de moderatorul de pe site
Este bun! mulțumesc.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Frate, ești cu adevărat geniu. Formula de mai jos a funcționat pentru mine și a salvat intervenția manuală care obișnuia să dureze ore = TRIM(RIGHT(SUBSTITUTE(LEFT(H2,FIND (" ",H2&" ",FIND ("@",H2))-1)," ", REPT(" ",LEN(H2))),LEN(H2))) Dumnezeu să vă binecuvânteze
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am nevoie de mai multe informații despre cum să extrag e-mailurile
Acest comentariu a fost redus la minimum de moderatorul de pe site
Stimate domnule, Cum pot extrage ID-urile corecte de e-mail din exemplul meu de lista de e-mail de mai jos a.hamilton@tradsingapore.com.sg aarabest@emirates.com.net.ae admin@countrywide.com.my
Acest comentariu a fost redus la minimum de moderatorul de pe site
întrucât formula mi-a fost de mare ajutor, m-am gândit să vă împărtășesc experiența mea. Îl execut pe o listă de webscrape html, care uneori sunt atât de lungi încât formula erori. Conform wikipediei, lungimea maximă a unei adrese de e-mail este de 254 de caractere, așa că înlocuirea porțiunilor len(A1) cu 256 îmbunătățește stabilitatea funcției: =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND (" ",A1&" ",), FIND("@",A1))-1)," ", REPT(" ",256)),256))
Acest comentariu a fost redus la minimum de moderatorul de pe site
Excelent, minunat. fiecare ar trebui să folosească..
Acest comentariu a fost redus la minimum de moderatorul de pe site
Dacă vreau să extrag o singură adresă de e-mail din A1, această formulă face acest lucru și raportează doar un gol, nu o eroare, dacă A1 nu conține nicio adresă de e-mail. Găsesc aceasta o soluție mai ușoară decât încercarea de a stăpâni toate aceste scripturi și nu costă nimic. =DACA EROARE(TRIM(DREAPTA(ÎNLOCUIT(STÂNGA(A1, GĂSĂ(" ",A1&" ",GĂSĂ ("@",A1))-1)," ",REPT(" ",LEN(A1))), LEN(A1))),"")
Acest comentariu a fost redus la minimum de moderatorul de pe site
Extrem de util. Mulțumesc mult!!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Informații grozave! Mulțumiri
Acest comentariu a fost redus la minimum de moderatorul de pe site
Folosesc Excel 2007 pe un HP. Dacă o aveți pe Melanie Brown în A1 și doriți ca aceasta să citească Melanie.Brown@gmail.com în aceeași celulă, cum reușiți acest lucru? Am un șir de coame de făcut la fel. Mă va ajuta cineva cu asta?
Nu există comentarii postate aici încă
Încărcați mai
Lăsa comentarii
Postare ca invitat
×
Evaluează această postare:
0   Caractere
Locații sugerate

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL