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

Kako hitro izvleči e-poštni naslov iz besedilnega niza?

Ko uvozite nekaj e-poštnih naslovov s spletnega mesta na Excelov delovni list, vedno vsebuje neustrezno besedilo, zdaj pa želite samo izvleči čiste e-poštne naslove iz besedilnega niza (glejte naslednje posnetke zaslona). Kako lahko hitro dobite samo e-poštne naslove iz besedila celice?

doc-extra-emails1 -2 doc-extra-emails2

Izvlecite e-poštni naslov iz besedilnega niza s formulo

Izvlecite e-poštni naslov iz besedilnega niza z uporabniško določeno funkcijo

Izvlecite e-poštni naslov iz besedilnega niza s kodo VBA

Izvlecite e-poštni naslov iz besedilnega niza s programom Kutools za Excel


puščica modri desni mehurček Izvlecite e-poštni naslov iz besedilnega niza s formulo

Tukaj vam predstavljam dolgo formulo za izločanje samo e-poštnih naslovov iz besedila v Excelu. Naredite naslednje:

1. V sosednjo celico B1 vnesite to formulo = TRIM (DESNO (NAMESTA (LEVO (A1, FIND (", A1 &" ", FIND (" @ ", A1)) - 1)," ", REPT (" ", LEN (A1))), LEN ( A1))).

doc-extra-emails3

2. Nato pritisnite Vnesite tipko, nato izberite celico B1 in povlecite ročico za polnjenje do obsega, v katerega želite vsebovati to formulo. In e-poštni naslovi v obsegu so bili povzeti iz besedilnega niza. Oglejte si posnetek zaslona:

doc-extra-emails4

Opombe:

1. Ločila za e-poštnim naslovom bodo tudi odstranjena.

2. Če celice ne vsebujejo e-poštnih naslovov, bo formula prikazala vrednosti napak.

3. Če je v celici več e-poštnih naslovov, bo formula izvlekla samo prvi naslov.


Izvlecite več e-poštnih naslovov iz besedilnih nizov

Kutools za ExcelJe Izvleček e-poštnega naslova vam lahko pomaga hitro in priročno izvleči e-poštne naslove iz besedilnih nizov. Kliknite za prenos Kutools za Excel!

doc izvleček e-pošte-1

Kutools za Excel: z več kot 300 priročnimi dodatki za Excel, brezplačno preizkusite brez omejitev v 30 dneh. Prenesite in brezplačno preskusite zdaj!


puščica modri desni mehurček Izvlecite e-poštni naslov iz besedilnega niza z uporabniško določeno funkcijo

Razen zgornje formule vam lahko uporabniško določena funkcija pomaga pri pridobivanju e-poštnega naslova iz besedilnega niza.

1. Držite tipko ALT + F11 in odpre tipko Microsoft Visual Basic za aplikacije okno.

2. Kliknite Vstavi > Moduliin prilepite naslednji makro v okno modula.

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. Nato shranite kodo in vnesite formulo = ExtractEmailFun (A1) v sosednji prazni celici si oglejte posnetek zaslona:

doc-extra-emails5

4. In nato pritisnite Vnesite tipko, izberite celico B1 in povlecite ročico za polnjenje do obsega, ki ga potrebujete za formulo. Vsi e-poštni naslovi so bili povzeti iz besedila celice. Oglejte si posnetek zaslona:

doc-extra-emails6

Opombe:

1. Če celice nimajo e-poštnih naslovov, bodo razkrite prazne celice.

2. Če je v celici več e-poštnih naslovov, bodo vsa e-poštna sporočila ekstrahirana.


puščica modri desni mehurček Izvlecite e-poštni naslov iz besedilnega niza s kodo VBA

Če menite, da so zgornje formule za vas težavne, vam lahko naslednja koda VBA pomaga izločiti e-poštne naslove naenkrat.

1. Držite tipko ALT + F11 tipke in odpre se a Microsoft Visual Basic za aplikacije okno.

2. Kliknite Vstavi > Moduliin v mapo prilepite naslednji makro Okno modula.

VBA: izvleči e-poštne naslove iz besedilnega niza

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. Nato pritisnite F5 tipko za zagon te kode in v izpuščenem pogovornem oknu izberite obseg, za katerega želite uporabiti VBA, glejte posnetek zaslona:

doc-extra-emails7

4. Nato kliknite OK, in e-poštni naslovi so bili izvlečeni iz izbranih besedilnih nizov. Oglejte si posnetke zaslona:

doc-extra-emails8 -2 doc-extra-emails9

Opombe:

1. Če celice nimajo e-poštnih naslovov, bodo razkrite prazne celice.

2. Vsa e-poštna sporočila bodo ekstrahirana, če je v celici več e-poštnih naslovov.

3. Izvlečena e-poštna sporočila bodo zajemala prvotne podatke, zato raje najprej varnostno kopirajte podatke, če jih potrebujete.


puščica modri desni mehurček Z enim klikom izvlecite e-poštni naslov iz besedilnega niza s programom Kutools for Excel

Zgornje metode so za naše začetnike v Excelu videti nekoliko zapletene, tukaj vam lahko priporočam hitro in enostavno orodje - Kutools za Excel, Z njegovim Izvleček e-poštnega naslova Pripomoček lahko e-poštne naslove izvlečete iz besedilnih nizov brez veliko truda.

Kutools za Excel : z več kot 300 priročnimi dodatki za Excel, ki jih lahko brezplačno preizkusite v 30 dneh.

Če ste namestili Kutools za Excel, naredite naslednje:

1. Izberite celice, ki vsebujejo besedilne nize.

2. Kliknite Kutools > Besedilo > Izvleček e-poštnega naslova, glej posnetek zaslona:

3. In Izvleček e-poštnega naslova odpre se pogovorno okno, izberite celico, v katero želite dati rezultat, glejte posnetek zaslona:

doc-extra-emails9

4. Nato kliknite OK , so vsi e-poštni naslovi izvlečeni iz besedilnih nizov, glejte posnetek zaslona:

doc-extra-emails9

Kliknite za prenos in brezplačno preskusno različico Kutools za Excel zdaj!


puščica modri desni mehurček Predstavitev: izvlecite e-poštni naslov iz besedilnega niza s programom Kutools za Excel

Kutools za Excel: z več kot 300 priročnimi dodatki za Excel, brezplačno preizkusite brez omejitev v 30 dneh. Prenesite in brezplačno preskusite zdaj!

Povezani članek:

Kako izvleči domene iz več e-poštnih naslovov v Excelu?


Najboljša orodja za pisarniško produktivnost

Kutools za Excel rešuje večino vaših težav in poveča vašo produktivnost za 80%

  • Ponovna uporaba: Hitro vstavite zapletene formule, grafikoni in vse, kar ste že uporabljali; Šifriraj celice z geslom; Ustvari poštni seznam in pošiljanje e-pošte ...
  • Vrstica Super Formula (enostavno urejanje več vrstic besedila in formule); Bralna postavitev (enostavno branje in urejanje velikega števila celic); Prilepite v filtrirani obseg...
  • Združi celice / vrstice / stolpce brez izgube podatkov; Vsebina razdeljenih celic; Združi podvojene vrstice / stolpce... prepreči podvojene celice; Primerjaj obsege...
  • Izberite Duplicate ali Unique Vrstice; Izberite prazne vrstice (vse celice so prazne); Super Find in Fuzzy Find v mnogih delovnih zvezkih; Naključna izbira ...
  • Natančna kopija Več celic brez spreminjanja sklica formule; Samodejno ustvarjanje referenc na več listov; Vstavi oznake, Potrditvena polja in še več ...
  • Izvleček besedila, Dodaj besedilo, Odstrani po položaju, Odstrani presledek; Ustvari in natisni vmesne seštevke strani Pretvarjanje med vsebino celic in komentarji...
  • Super filter (shranite in uporabite sheme filtrov za druge liste); Napredno razvrščanje glede na mesec / teden / dan, pogostost in drugo; Poseben filter s krepko, ležeče ...
  • Združite delovne zvezke in delovne liste; Spoji tabele na podlagi ključnih stolpcev; Razdelite podatke na več listov; Paketna pretvorba xls, xlsx in PDF...
  • Več kot 300 zmogljivih funkcij. Podpira Office / Excel 2007-2021 in 365. Podpira vse jezike. Enostavna uvedba v vašem podjetju ali organizaciji. 30-dnevna brezplačna preizkusna različica vseh funkcij. 60-dnevna garancija vračila denarja.
zavihek kte 201905

Kartica Office prinaša vmesnik z zavihki v Office in poenostavi vaše delo

  • Omogočite urejanje in branje z zavihki v Wordu, Excelu, PowerPointu, Publisher, Access, Visio in Project.
  • Odprite in ustvarite več dokumentov v novih zavihkih istega okna in ne v novih oknih.
  • Poveča vašo produktivnost za 50%in vsak dan zmanjša na stotine klikov miške za vas!
dno pisarniške mize
Komentarji (40)
Ocene še ni. Bodite prvi in ​​ocenite!
Ta komentar je moderator na spletnem mestu minimiziral
LUL UPORABITE TO KODO ZA IZVLEČEK E-POŠTE. Sub lula() Dim d1 As Variant cntr = 0 rowstring = ActiveCell.Offset(0, 0).Value d1 = Split(rowstring, " ") Naredi 'MsgBox d1(cntr) cntr = cntr + 1 Če d1(cntr) = "" Nato Pojdi na ttt Če InStr(d1(cntr), "@") Nato MsgBox d1(cntr) Pojdi na ttt Konec če zanke Medtem ko d1(cntr) "" ttt: Konec pod
Ta komentar je moderator na spletnem mestu minimiziral
zelo koristno, hvala!
Ta komentar je moderator na spletnem mestu minimiziral
Hvala za to formulo! Pravkar ste mi prihranili veliko dela – moral sem izvleči 1500 e-poštnih sporočil iz slabo napisanega Excelovega lista za seznam za trženje e-pošte. Ko sem končno našel vašo formulo, je bilo hitro.
Ta komentar je moderator na spletnem mestu minimiziral
Odlična koda! Res uporabno. Na žalost združuje več e-poštnih naslovov, namesto da jih uporabno ločuje, na primer s podpičjem. Kako bi dodali ločilo?
Ta komentar je moderator na spletnem mestu minimiziral
brez VBA samo formula, ki jo je treba prilepiti v celico. Samo spremenite reference (spodnji primer obravnava celico A1) =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND("@",A1)-1)," ",REPT( " ",99)),99))&MID(A1,NAJDI("@",A1),NAJDI(" ",A1&" ",NAJDI("@",A1))-NAJDI("@",A1) )
Ta komentar je moderator na spletnem mestu minimiziral
[quote]... =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND("@",A1)-1)," ",REPT(" ",99)),99))&MID(A1,FIND("@",A1),FIND(" ",A1&" ",FIND("@",A1))-FIND("@",A1))Ob meni[/quote] Hvala "ME", deluje dobesedno v Googlovi preglednici!
Ta komentar je moderator na spletnem mestu minimiziral
[quote]brez VBA, samo formula, ki jo je treba prilepiti v celico. Samo spremenite reference (spodnji primer obravnava celico A1) =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND("@",A1)-1)," " ,REPT(" ",99)),99))&MID(A1,FIND("@",A1),NAJDI(" ",A1&" ",FIND("@",A1))-NAJDI("@" ,A1))Ob meni[/quote] Hvala. Meni je uspelo.
Ta komentar je moderator na spletnem mestu minimiziral
Neverjetno! Lep pozdrav za VBS scenarij! HVALA!
Ta komentar je moderator na spletnem mestu minimiziral
Najlepša hvala, to je zelo priročno!
Ta komentar je moderator na spletnem mestu minimiziral
To je super, zdaj pa imam problem. Med vsemi e-poštnimi naslovi je namesto pike presledek (tj. abcd@aol com), zato formula ne postavlja konca vseh e-poštnih naslovov (.net, .com itd.) v nov stolpec. Kako lahko to popravim?
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni vsi, tudi jaz sem iskal način, kako ločiti e-poštne naslove, da bi ga lahko dal v Outlook. Dodal sem ločilo "; " med e-poštni naslovi, da ne delujejo skupaj. Sporočite mi, kaj mislite. Hvala avtorju izvirnika, da je tole skupaj! Funkcija ExtractEmailFun(extractStr As String) Kot niz 'Posodobi 20150723 Zatemni seznam znakov kot niz ob napaki Nadaljuj Naprej CheckStr = "[A-Za-z0-9._-]" ExtractEmailFun = "" Indeks = 1 Do Medtem ko True Index1 = VBA. InStr(Index, extractStr, "@") getStr = "" Če je Index1 > 0 Potem Za p = Index1 - 1 do 1 Korak -1 Če Mid(extractStr, p, 1) Kot CheckStr Potem getStr = Mid(extractStr, p, 1) & getStr Else Izhod Za Konec Če Naslednji getStr = getStr & "@" Za p = Index1 + 1 To Len(extractStr) Če Mid(extractStr, p, 1) Kot CheckStr Potem getStr = getStr & Mid(extractStr, p, 1) Drugače getStr = getStr Izhod za konec, če Naslednji Index = Index1 + 1 getStr = getStr & "; " Če ExtractEmailFun = "" Potem ExtractEmailFun = getStr Else ExtractEmailFun = ExtractEmailFun & Chr(10) & getStr End Če sicer izhod Do Končaj, če Funkcija konca zanke
Ta komentar je moderator na spletnem mestu minimiziral
Hvala avtorju izvirnega scenarija; Šel sem naprej in med več e-poštnimi naslovi dodal ločilo »;«. Funkcija ExtractEmailFun(extractStr As String) Kot niz 'Posodobi 20150723 Zatemni seznam znakov kot niz ob napaki Nadaljuj Naprej CheckStr = "[A-Za-z0-9._-]" ExtractEmailFun = "" Indeks = 1 Do Medtem ko True Index1 = VBA. InStr(Index, extractStr, "@") getStr = "" Če je Index1 > 0 Potem Za p = Index1 - 1 do 1 Korak -1 Če Mid(extractStr, p, 1) Kot CheckStr Potem getStr = Mid(extractStr, p, 1) & getStr Else Izhod Za Konec Če Naslednji getStr = getStr & "@" Za p = Index1 + 1 To Len(extractStr) Če Mid(extractStr, p, 1) Kot CheckStr Potem getStr = getStr & Mid(extractStr, p, 1) Drugače getStr = getStr Izhod za konec, če Naslednji Index = Index1 + 1 getStr = getStr & "; " Če ExtractEmailFun = "" Potem ExtractEmailFun = getStr Else ExtractEmailFun = ExtractEmailFun & Chr(10) & getStr Konec Če sicer izhod Do Končaj, če Funkcija konca zanke
Ta komentar je moderator na spletnem mestu minimiziral
To je dobro! Hvala vam.
Ta komentar je moderator na spletnem mestu minimiziral
Brat, res si genij. Spodnja formula je delovala zame in prihranila ročni poseg, ki je včasih trajal ure =TRIM(DESNO(NAMESNIK(LEVO(H2,FIND (" ",H2&" ",FIND("@",H2))-1)," ", REPT(" ",LEN(H2))),LEN(H2))) Bog te blagoslovi
Ta komentar je moderator na spletnem mestu minimiziral
potrebujem več informacij, kako ekstrahirati e-pošto
Ta komentar je moderator na spletnem mestu minimiziral
Spoštovani, kako lahko izvlečem pravilne e-poštne ID-je iz mojega e-poštnega seznama spodaj a.hamilton@tradsingapore.com.sg aarabest@emirates.com.net.ae admin@countrywide.com.my
Ta komentar je moderator na spletnem mestu minimiziral
ker mi je formula v veliko pomoč, sem mislil, da bom delil svojo izkušnjo. Zaženem ga na seznamu spletnih zapisov html, ki so včasih tako dolgi, da formula izpade. Po wikipediji je največja dolžina e-poštnega naslova 254 znakov, tako da zamenjava delov len(A1) z 256 izboljša stabilnost funkcije: =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND (" ",A1&" ", FIND("@",A1))-1)," ", REPT(" ",256)),256))
Ta komentar je moderator na spletnem mestu minimiziral
Odlično, čudovito. vsak bi moral uporabljati..
Ta komentar je moderator na spletnem mestu minimiziral
Če želim iz A1 izluščiti samo en e-poštni naslov, ta formula to stori in poroča samo o praznem, ne o napaki, če A1 ne vsebuje e-poštnega naslova. To se mi zdi lažja rešitev kot poskušati obvladati vse te skripte in nič ne stane. =ČE NAPAKA(ODREŽI(DESNO(NADOMESTI(LEVO(A1,NAJDI(" ",A1&" ",NAJDI("@",A1))-1)," ",REPT(" ",LEN(A1))), LEN(A1))),"")
Ta komentar je moderator na spletnem mestu minimiziral
Izjemno koristno. Najlepša hvala!!
Ta komentar je moderator na spletnem mestu minimiziral
Čudovite informacije! Hvala
Ta komentar je moderator na spletnem mestu minimiziral
Uporabljam Excel 2007 na HP-ju. Če imate Melanie Brown v A1 in želite, da se v isti celici bere Melanie.Brown@gmail.com, kako to dosežete? Imam vrsto griv, da naredim enako. Mi bo kdo pomagal pri tem?
Tu še ni objavljenih komentarjev
Obremenitev Več
Pustite vaše komentarje
Objava kot gost
×
Ocenite to objavo:
0   Znaki
Predlagane lokacije

Sledi nam

Copyright © 2009 - www.extendoffice.com. | Vse pravice pridržane. Poganja ga ExtendOffice. | Kazalo
Microsoft in logotip Office sta blagovni znamki ali registrirani blagovni znamki družbe Microsoft Corporation v ZDA in / ali drugih državah.
Zaščiteno s Sectigo SSL