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

Jak szybko wyodrębnić adres e-mail z ciągu tekstowego?

Podczas importowania niektórych adresów e-mail z witryny internetowej do arkusza programu Excel zawsze zawiera nieistotny tekst, ale teraz chcesz po prostu wyodrębnić czyste adresy e-mail z ciągu tekstowego (patrz poniższe zrzuty ekranu). Jak możesz szybko uzyskać adresy e-mail tylko z tekstu komórki?

doc-extract-e-maile1 -2 doc-extract-e-maile2

Wyodrębnij adres e-mail z ciągu tekstowego za pomocą Formuły

Wyodrębnij adres e-mail z ciągu tekstowego za pomocą funkcji zdefiniowanej przez użytkownika

Wyodrębnij adres e-mail z ciągu tekstowego z kodem VBA

Wyodrębnij adres e-mail z ciągu tekstowego za pomocą Kutools for Excel


strzałka niebieski prawy bąbelek Wyodrębnij adres e-mail z ciągu tekstowego za pomocą Formuły

Tutaj przedstawiam długą formułę wyodrębniania tylko adresów e-mail z tekstu w programie Excel. Wykonaj następujące czynności:

1. W sąsiedniej komórce B1 wprowadź tę formułę = TRIM (RIGHT (SUBSTITUTE (LEFT (A1, FIND ("", A1 & "", ZNAJDŹ ("@", A1)) - 1), "", REPT ("", DŁ (A1))), DŁ ( A1))).

doc-extract-e-maile3

2. Następnie naciśnij Wchodzę , a następnie zaznacz komórkę B1 i przeciągnij uchwyt wypełniania do zakresu, w którym chcesz zawrzeć tę formułę. A adresy e-mail z zakresu zostały wyodrębnione z ciągu tekstowego. Zobacz zrzut ekranu:

doc-extract-e-maile4

Uwagi:

1. Znaki interpunkcyjne po adresie e-mail również zostaną wyodrębnione.

2. Jeśli komórki nie zawierają adresów e-mail, formuła wyświetli wartości błędów.

3. Jeśli w komórce znajduje się więcej niż jeden adres e-mail, formuła wyodrębni tylko pierwszy adres.


Wyodrębnij wiele adresów e-mail z ciągów tekstowych

Kutools dla programu Excel'S Wyodrębnij adres e-mail może pomóc w szybkim i wygodnym wyodrębnieniu adresów e-mail z ciągów tekstowych. Kliknij, aby pobrać Kutools dla programu Excel!

doc wyodrębnij e-maile-1

Kutools dla programu Excel: z ponad 300 poręcznymi dodatkami do programu Excel, które można wypróbować bez ograniczeń w ciągu 30 dni. Pobierz i bezpłatną wersję próbną teraz!


strzałka niebieski prawy bąbelek Wyodrębnij adres e-mail z ciągu tekstowego za pomocą funkcji zdefiniowanej przez użytkownika

Oprócz powyższej formuły funkcja zdefiniowana przez użytkownika może również pomóc w uzyskaniu adresu e-mail z ciągu tekstowego.

1. Przytrzymaj ALT + F11 klucze i otwiera plik Microsoft Visual Basic for Applications okno.

2, Kliknij wstawka > Modułi wklej następujące makro w oknie modułu.

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. Następnie zapisz kod i wprowadź wzór = ExtractEmailFun (A1) w sąsiedniej pustej komórce, zobacz zrzut ekranu:

doc-extract-e-maile5

4. A następnie naciśnij Wchodzę , zaznacz komórkę B1 i przeciągnij uchwyt wypełniania do zakresu, w którym potrzebujesz formuły. Wszystkie adresy e-mail zostały wyodrębnione z tekstu komórki. Zobacz zrzut ekranu:

doc-extract-e-maile6

Uwagi:

1. Jeśli komórki nie mają adresów e-mail, zostaną ujawnione puste komórki.

2. Jeśli w komórce jest więcej niż jeden adres e-mail, wszystkie e-maile zostaną wyodrębnione.


strzałka niebieski prawy bąbelek Wyodrębnij adres e-mail z ciągu tekstowego z kodem VBA

Jeśli uważasz, że powyższe formuły są dla Ciebie kłopotliwe, poniższy kod VBA może pomóc w wyodrębnieniu adresów e-mail w jednym.

1. Przytrzymaj ALT + F11 klucze i otwiera plik Microsoft Visual Basic for Applications okno.

2, Kliknij wstawka > Modułi wklej następujące makro w Okno modułu.

VBA: wyodrębnij adresy e-mail z ciągu tekstowego

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. Następnie wciśnij F5 klucz do uruchomienia tego kodu i powinieneś wybrać zakres, w którym chcesz użyć VBA w wyskakującym oknie dialogowym, zobacz zrzut ekranu:

doc-extract-e-maile7

4. Następnie kliknij OK, a adresy e-mail zostały wyodrębnione z wybranych ciągów tekstowych. Zobacz zrzuty ekranu:

doc-extract-e-maile8 -2 doc-extract-e-maile9

Uwagi:

1. Jeśli komórki nie mają adresów e-mail, zostaną ujawnione puste komórki.

2. Wszystkie e-maile zostaną wyodrębnione, jeśli w komórce jest więcej niż jeden adres e-mail.

3. Wyodrębnione wiadomości e-mail będą obejmować oryginalne dane, więc w razie potrzeby lepiej najpierw wykonaj kopię zapasową danych.


strzałka niebieski prawy bąbelek Wyodrębnij adres e-mail z ciągu tekstowego za pomocą Kutools for Excel jednym kliknięciem

Powyższe metody wyglądają na nieco skomplikowane dla naszego początkującego programu Excel, tutaj mogę polecić szybkie i łatwe narzędzie- Kutools dla programu Excel, Z siedzibą w Wyodrębnij adres e-mail narzędzie, możesz bez większego wysiłku wyodrębnić adresy e-mail z ciągów tekstowych.

Kutools dla programu Excel : z ponad 300 poręcznymi dodatkami Excela, które można wypróbować bez ograniczeń w ciągu 30 dni.

Jeśli masz zainstalowany Kutools dla programu Excelwykonaj następujące czynności:

1. Zaznacz komórki zawierające ciągi tekstowe.

2, Kliknij Kutools > Tekst > Wyodrębnij adres e-mailzobacz zrzut ekranu:

3. I Wyodrębnij adres e-mail Pojawi się okno dialogowe, wybierz komórkę, w której chcesz umieścić wynik, zobacz zrzut ekranu:

doc-extract-e-maile9

4. Następnie kliknij OK przycisk, wszystkie adresy e-mail zostały wyodrębnione z ciągów tekstowych, patrz zrzut ekranu:

doc-extract-e-maile9

Kliknij, aby pobrać i bezpłatnie wypróbować Kutools dla programu Excel teraz!


strzałka niebieski prawy bąbelek Demo: wyodrębnij adres e-mail z ciągu tekstowego za pomocą Kutools for Excel

Kutools dla programu Excel: z ponad 300 poręcznymi dodatkami do programu Excel, które można wypróbować bez ograniczeń w ciągu 30 dni. Pobierz i bezpłatną wersję próbną teraz!

Podobne artykuły:

Jak wyodrębnić domeny z wielu adresów e-mail w programie Excel?


Najlepsze narzędzia biurowe

Kutools dla programu Excel rozwiązuje większość problemów i zwiększa produktywność o 80%

  • Ponowne użycie: Szybko włóż złożone wzory, wykresy i wszystko, czego używałeś wcześniej; Szyfruj komórki z hasłem; Utwórz listę mailingową i wysyłaj e-maile ...
  • Pasek Super Formula (łatwo edytować wiele wierszy tekstu i formuły); Układ do czytania (łatwe odczytywanie i edytowanie dużej liczby komórek); Wklej do filtrowanego zakresu...
  • Scal komórki / wiersze / kolumny bez utraty danych; Podziel zawartość komórek; Połącz zduplikowane wiersze / kolumny... Zapobiegaj zduplikowanym komórkom; Porównaj zakresy...
  • Wybierz Duplikat lub Unikalny Wydziwianie; Wybierz puste wiersze (wszystkie komórki są puste); Super Find i Fuzzy Find w wielu zeszytach ćwiczeń; Losowy wybór ...
  • Dokładna kopia Wiele komórek bez zmiany odwołania do formuły; Automatyczne tworzenie odniesień do wielu arkuszy; Wstaw punktory, Pola wyboru i nie tylko ...
  • Wyodrębnij tekst, Dodaj tekst, Usuń według pozycji, Usuń przestrzeń; Tworzenie i drukowanie podsumowań stronicowania; Konwertuj zawartość komórek i komentarze...
  • Super filtr (zapisz i zastosuj schematy filtrów do innych arkuszy); Zaawansowane sortowanie według miesiąca / tygodnia / dnia, częstotliwości i innych; Specjalny filtr pogrubieniem, kursywą ...
  • Połącz skoroszyty i arkusze robocze; Scal tabele na podstawie kluczowych kolumn; Podziel dane na wiele arkuszy; Konwersja wsadowa xls, xlsx i PDF...
  • Ponad 300 zaawansowanych funkcji. Obsługuje Office / Excel 2007-2021 i 365. Obsługuje wszystkie języki. Łatwe wdrażanie w przedsiębiorstwie lub organizacji. Pełne funkcje 30-dniowa bezpłatna wersja próbna. 60-dniowa gwarancja zwrotu pieniędzy.
karta kte 201905

Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
officetab dół
Sortuj komentarze według
Komentarze (40)
Brak ocen. Oceń jako pierwszy!
Ten komentarz został zminimalizowany przez moderatora na stronie
LUL UŻYJ TEGO KODU DO WYCIĄGU E-MAIL. Sub lula() Dim d1 As Variant cntr = 0 rowstring = ActiveCell.Offset(0, 0).Value d1 = Split(rowstring, " ") Wykonaj '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
Ten komentarz został zminimalizowany przez moderatora na stronie
bardzo pomocne, dzięki!
Ten komentarz został zminimalizowany przez moderatora na stronie
Dzięki za tę formułę! Właśnie zaoszczędziłeś mi mnóstwo pracy - musiałem wyodrębnić 1500 e-maili ze źle napisanego arkusza Excela, aby uzyskać listę e-mail marketingową. Kiedy w końcu znalazłem twoją formułę, było to błyskawiczne.
Ten komentarz został zminimalizowany przez moderatora na stronie
Świetny kod! Naprawdę użyteczne. Niestety jest to łączenie wielu adresów e-mail, zamiast ich użytecznego rozdzielania, na przykład średnikiem. Jak dodałbyś separator?
Ten komentarz został zminimalizowany przez moderatora na stronie
brak formuły VBA do wklejenia do komórki Po prostu zmień odniesienia (poniższy przykład dotyczy komórki A1) =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND("@",A1)-1)),"",REPT( " ",99)),99))&MID(A1,ZNAJDŹ("@",A1),ZNAJDŹ(" ",A1&" ",ZNAJDŹ("@",A1))-ZNAJDŹ("@",A1) )
Ten komentarz został zminimalizowany przez moderatora na stronie
[quote]... =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND("@",A1)-1)," ",REPT(" ",99)),99))&MID(A1,FIND("@",A1),FIND(" ",A1&" ",FIND("@",A1))-FIND("@",A1))Przeze mnie[/quote] Dzięki "ME", działa dosłownie w arkuszu kalkulacyjnym Google!
Ten komentarz został zminimalizowany przez moderatora na stronie
[cytat] brak formuły VBA do wklejenia do komórki Po prostu zmień odniesienia ( poniższy przykład dotyczy komórki A1) =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND("@",A1)-1))," " ,REPT(" ",99)),99))&MID(A1,ZNAJDŹ("@",A1),ZNAJDŹ(" ",A1&" ",ZNAJDŹ("@",A1))-ZNAJDŹ("@" ,A1))Przeze mnie[/cytat] Dziękuję. U mnie zadziałało.
Ten komentarz został zminimalizowany przez moderatora na stronie
Zdumiewający! Wielkie pozdrowienia dla skryptu VBS! DZIĘKI!
Ten komentarz został zminimalizowany przez moderatora na stronie
Dziękuję bardzo, to bardzo przydatne!
Ten komentarz został zminimalizowany przez moderatora na stronie
To świetnie, ale teraz mam problem. Między wszystkimi adresami e-mail jest spacja zamiast kropki (np. abcd@aol com), więc formuła nie umieszcza końca wszystkich adresów e-mail (.net, .com itp.) w nowej kolumnie. Jak mogę to naprawić?
Ten komentarz został zminimalizowany przez moderatora na stronie
Witam wszystkich, szukałem też sposobu na oddzielenie adresów e-mail, aby móc umieścić je w Outlooku. Dodałem separator "; " między adresami e-mail, aby nie działały razem. Powiedz mi co myślisz. Dziękuję autorowi oryginału za zebranie tego w całość! Funkcja ExtractEmailFun(extractStr As String) As String 'Aktualizuj 20150723 Dim CharList As String w przypadku błędu Wznów Dalej 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 do 1 Krok -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 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 Funkcja zakończenia pętli
Ten komentarz został zminimalizowany przez moderatora na stronie
Podziękowania dla autora oryginalnego scenariusza; Przeszedłem dalej i dodałem separator „;” między wieloma adresami e-mail. Funkcja ExtractEmailFun(extractStr As String) As String 'Aktualizuj 20150723 Dim CharList As String w przypadku błędu Wznów Dalej 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 do 1 Krok -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 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 Funkcja zakończenia pętli
Ten komentarz został zminimalizowany przez moderatora na stronie
To jest dobre! Dziękuję Ci.
Ten komentarz został zminimalizowany przez moderatora na stronie
Bracie, jesteś naprawdę genialny. Poniższy wzór zadziałał dla mnie i zapisał ręczną interwencję, która zajmowała godziny =TRIM(RIGHT(SUBSTITUTE(LEFT(H2,FIND (" ",H2&" ",FIND("@",H2))-1)," ", POWT (" ", DŁ(H2))), DŁ(H2))) Niech Bóg Cię błogosławi
Ten komentarz został zminimalizowany przez moderatora na stronie
potrzebuję więcej informacji, jak wyodrębnić e-maile
Ten komentarz został zminimalizowany przez moderatora na stronie
Szanowny Panie, Jak mogę wyodrębnić poprawne identyfikatory e-mail z przykładowej listy e-mail poniżej a.hamilton@tradsingapore.com.sg aarabest@emirates.com.net.ae admin@countrywide.com.my
Ten komentarz został zminimalizowany przez moderatora na stronie
ponieważ formuła bardzo mi pomogła, pomyślałem, że podzielę się swoim doświadczeniem. Sprawdzam go na liście webscrape'ów HTML, które czasami są tak długie, że formuła zawiera błędy. Według wikipedii maksymalna długość adresu e-mail to 254 znaki, więc zastąpienie fragmentów len(A1) 256 poprawia stabilność funkcji: =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND (" ",A1&" ", ZNAJDŹ("@",A1))-1)," ", POWT(" ",256)),256))
Ten komentarz został zminimalizowany przez moderatora na stronie
Świetnie, cudownie. każdy powinien używać...
Ten komentarz został zminimalizowany przez moderatora na stronie
Jeśli chcę wyodrębnić tylko jeden adres e-mail z A1, ta formuła to robi i zgłasza tylko puste, a nie błąd, jeśli A1 nie zawiera adresu e-mail. Uważam, że jest to łatwiejsze rozwiązanie niż próba opanowania wszystkich tych skryptów i nic to nie kosztuje. =IFERROR(TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND(" ",A1&" ",FIND("@",A1))-1))," ",REPT(" ",LEN(A1))), DŁ(A1))),"")
Ten komentarz został zminimalizowany przez moderatora na stronie
Niezwykle pomocny. Wielkie dzięki!!
Ten komentarz został zminimalizowany przez moderatora na stronie
Niesamowite informacje! Dzięki
Ten komentarz został zminimalizowany przez moderatora na stronie
Używam programu Excel 2007 na HP. Jeśli masz Melanie Brown w komórce A1 i chcesz, aby w tej samej komórce znajdowała się wiadomość Melanie.Brown@gmail.com, jak to zrobić? Mam szereg grzyw do zrobienia w ten sam sposób. Czy ktoś mi w tym pomoże?
Nie ma tu jeszcze żadnych komentarzy
Pokaż więcej
Zostaw swój komentarz
Publikowanie jako gość
×
Oceń ten post:
0   Postacie
Sugerowane lokalizacje

Bądż na bieżąco

Prawa autorskie © 2009 - www.extendoffice.com. | Wszelkie prawa zastrzeżone. Zasilany przez ExtendOffice, | Mapa strony
Microsoft i logo Office są znakami towarowymi lub zastrzeżonymi znakami towarowymi Microsoft Corporation w Stanach Zjednoczonych i / lub innych krajach.
Chronione przez Sectigo SSL