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

Як швидко витягти електронну адресу з текстового рядка?

Коли ви імпортуєте деякі електронні адреси з веб-сайту на робочий аркуш Excel, там завжди міститься нерелевантний текст, але тепер ви просто хочете витягти чисті електронні адреси з текстового рядка (див. Наступні знімки екрана). Як ви могли швидко отримати адреси електронної пошти лише з тексту комірки?

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

Витяг електронної адреси з текстового рядка за допомогою Формули

Витяг електронної адреси з текстового рядка за допомогою визначеної користувачем функції

Витягніть електронну адресу з текстового рядка за допомогою коду VBA

Витягніть електронну адресу з текстового рядка за допомогою Kutools для Excel


стрілка синя права міхур Витяг електронної адреси з текстового рядка за допомогою Формули

Тут я представляю вам довгу формулу для вилучення лише електронних адрес із тексту в Excel. Будь ласка, виконайте наступне:

1. В сусідню комірку B1 введіть цю формулу = TRIM (ПРАВО (ЗАМІСТ (ЗАМІСТ (ЗЛІВО (A1, FIND ("", A1 & "", FIND ("@", A1)) - 1), "", REPT (", LEN (A1))), LEN ( А1))).

doc-extra-emails3

2. Потім натисніть вводити клавішу, потім виберіть клітинку B1 і перетягніть маркер заповнення до діапазону, який ви хочете містити у цій формулі. І адреси електронної пошти в діапазоні були вилучені з текстового рядка. Дивіться знімок екрана:

doc-extra-emails4

Примітки:

1. Розділові знаки після адреси електронної пошти також будуть вилучені.

2. Якщо комірки не містять електронних адрес, формула відображатиме значення помилок.

3. Якщо в комірці є більше однієї адреси електронної пошти, формула витягне лише першу адресу.


Витягніть кілька текстових адрес із текстових рядків

Kutools для ExcelАвтора Витяг електронної адреси може допомогти вам швидко та зручно витягувати адреси електронної пошти з текстових рядків. Клацніть, щоб завантажити Kutools для Excel!

doc витяг електронних листів-1

Kutools для Excel: з більш ніж 300 зручними надбудовами Excel, спробуйте безкоштовно без обмежень протягом 30 днів. Завантажте та безкоштовно пробну версію зараз!


стрілка синя права міхур Витяг електронної адреси з текстового рядка за допомогою визначеної користувачем функції

Окрім наведеної вище формули, визначена користувачем функція також може допомогти вам отримати електронну адресу з текстового рядка.

1. Утримуйте клавішу ALT + F11 і відкриває Microsoft Visual Basic для додатків вікна.

2. Клацання Insert > Модуліта вставте наступний макрос у вікно Модуль.

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. Потім збережіть код і введіть формулу = ExtractEmailFun (A1) у сусідній порожній комірці див. знімок екрана:

doc-extra-emails5

4. А потім натисніть вводити , виберіть клітинку B1 і перетягніть маркер заповнення до діапазону, який вам потрібен. І всі адреси електронної пошти витягнуті з тексту комірки. Дивіться знімок екрана:

doc-extra-emails6

Примітки:

1. Якщо комірки не мають адрес електронної пошти, вони відкриють порожні комірки.

2. Якщо в комірці є більше однієї адреси електронної пошти, усі електронні листи будуть вилучені.


стрілка синя права міхур Витягніть електронну адресу з текстового рядка за допомогою коду VBA

Якщо ви вважаєте, що наведені вище формули вам неприємні, наведений нижче код VBA може допомогти вам витягти адреси електронної пошти одночасно.

1. Утримуйте клавішу ALT + F11 клавіші, і відкриється a Microsoft Visual Basic для додатків вікна.

2. Клацання Insert > Модуліта вставте наступний макрос у Вікно модуля.

VBA: витягніть адреси електронної пошти з текстового рядка

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. Потім натисніть F5 для запуску цього коду, і ви повинні вибрати діапазон, який ви хочете використовувати VBA, у діалоговому вікні, що з’явиться, див. знімок екрана:

doc-extra-emails7

4. Потім натисніть OK, а адреси електронної пошти витягнуто із вибраних текстових рядків. Дивіться скріншоти:

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

Примітки:

1. Якщо комірки не мають електронних адрес, вони відкриють порожні комірки.

2. Усі електронні листи будуть витягнуті, якщо в комірці є кілька адрес електронної пошти.

3. Витягнуті електронні листи будуть охоплювати вихідні дані, тому вам краще спочатку створити резервну копію даних, якщо вам це потрібно.


стрілка синя права міхур Витягніть електронну адресу з текстового рядка за допомогою Kutools для Excel одним клацанням миші

Вищезазначені методи виглядають дещо складними для нашого початківця Excel, тут я можу порадити вам швидкий та простий інструмент- Kutools для Excel, З його Витяг електронної адреси Утиліта, ви можете витягти адреси електронної пошти з текстових рядків без особливих зусиль.

Kutools для Excel : з більш ніж 300 зручними надбудовами Excel, які можна спробувати без обмежень протягом 30 днів.

Якщо ви встановили Kutools для Excel, будь ласка, виконайте наступне:

1. Виділіть комірки, що містять текстові рядки.

2. Клацання Кутулс > текст > Витяг електронної адреси, див. скріншот:

3. І ан Витяг електронної адреси відкриється діалогове вікно, виберіть комірку, куди ви хочете поставити результат, див. знімок екрана:

doc-extra-emails9

4. Потім натисніть OK , всі адреси електронної пошти витягнуті з текстових рядків, див. знімок екрана:

doc-extra-emails9

Клацніть, щоб завантажити та отримати безкоштовну пробну версію Kutools для Excel зараз!


стрілка синя права міхур Демонстрація: Витягніть електронну адресу з текстового рядка за допомогою Kutools для Excel

Kutools для Excel: з більш ніж 300 зручними надбудовами Excel, спробуйте безкоштовно без обмежень протягом 30 днів. Завантажте та безкоштовно пробну версію зараз!

Пов'язана стаття:

Як витягти домени з декількох адрес електронної пошти в Excel?


Найкращі інструменти для підвищення продуктивності офісу

Kutools для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%

  • Повторне використання: Швидко вставте складні формули, діаграми і все, що ви використовували раніше; Шифрувати комірки з паролем; Створити список розсилки та надсилати електронні листи ...
  • Супер формула бар (легко редагувати кілька рядків тексту та формули); Макет читання (легко читати та редагувати велику кількість комірок); Вставте у відфільтрований діапазон...
  • Об’єднати клітинки / рядки / стовпці без втрати даних; Вміст розділених комірок; Об'єднати повторювані рядки / стовпці... Запобігання дублюючим клітинам; Порівняйте діапазони...
  • Виберіть Повторюваний або Унікальний Рядки; Виберіть Пусті рядки (усі клітинки порожні); Супер знахідка та нечітка знахідка у багатьох робочих зошитах; Випадковий вибір ...
  • Точна копія Кілька клітинок без зміни посилання на формулу; Автоматичне створення посилань на кілька аркушів; Вставте кулі, Прапорці та інше ...
  • Витяг тексту, Додати текст, Видалити за позицією, Видаліть пробіл; Створення та друк проміжних підсумків підкачки; Перетворення вмісту комірок та коментарів...
  • Супер фільтр (зберегти та застосувати схеми фільтрів до інших аркушів); Розширене сортування за місяцем / тижнем / днем, частотою та іншим; Спеціальний фільтр жирним, курсивом ...
  • Поєднайте робочі зошити та робочі аркуші; Об’єднати таблиці на основі ключових стовпців; Розділіть дані на кілька аркушів; Пакетне перетворення xls, xlsx та PDF...
  • Понад 300 потужних функцій. Підтримує Office / Excel 2007-2021 і 365. Підтримує всі мови. Легке розгортання на вашому підприємстві чи в організації. 30-денна безкоштовна пробна версія повних функцій. 60-денна гарантія повернення грошей.
вкладка kte 201905

Вкладка Office забезпечує інтерфейс з вкладками для Office і значно спрощує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Коментарі (40)
Поки немає оцінок. Оцініть першим!
Цей коментар був мінімізований модератором на сайті
LUL ВИКОРИСТОВУЙТЕ ЦЕЙ КОД ДЛЯ ЕКСТРАКТУ ПОШЛИ. Sub lula() Dim d1 As Variant cntr = 0 rowstring = ActiveCell.Offset(0, 0).Value d1 = Split(рядок рядків, " ") Виконайте 'MsgBox d1(cntr) cntr = cntr + 1 Якщо d1(cntr) = "" Потім Перейдіть до ttt If InStr(d1(cntr), "@") Потім MsgBox d1(cntr) Перейдіть до ttt Закінчення циклу If У той час як d1(cntr) "" ttt: Кінець підпорядкувань
Цей коментар був мінімізований модератором на сайті
дуже корисно, дякую!
Цей коментар був мінімізований модератором на сайті
Дякую за цю формулу! Ви щойно заощадили мені масу роботи — довелося витягти 1500 листів із погано написаного листа Excel для списку маркетингу електронної пошти. Коли я нарешті знайшов вашу формулу, це було миттєво.
Цей коментар був мінімізований модератором на сайті
Чудовий код! Дійсно корисно. На жаль, він об’єднує кілька адрес електронної пошти, а не розділяє їх корисно, наприклад крапкою з комою. Як би ви додали роздільник?
Цей коментар був мінімізований модератором на сайті
немає VBA, просто формула, яку потрібно вставити в клітинку. Просто змініть посилання (у прикладі нижче показано клітинку A1) = TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND("@",A1)-1)," ",REPT( " ",99)),99))&MID(A1,FIND("@",A1),FIND(" ",A1&" ",FIND("@",A1))-FIND("@",A1) )
Цей коментар був мінімізований модератором на сайті
[quote]... =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND("@",A1)-1)," ",REPT(" ",99)),99))&MID(A1,FIND("@",A1),FIND(" ",A1&" ",FIND("@",A1))-FIND("@",A1))Мною[/quote] Дякую "Я", працює дослівно в електронній таблиці Google!
Цей коментар був мінімізований модератором на сайті
[quote]немає VBA, просто формула для вставлення в клітинку Просто змініть посилання (наведений нижче приклад розглядає клітинку A1) = TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND("@",A1)-1)," " ,REPT(" ",99)),99))&MID(A1,FIND("@",A1),FIND(" ",A1&" ",FIND("@",A1))-FIND("@" ,A1))Мною[/quote] Дякую. Це спрацювало для мене.
Цей коментар був мінімізований модератором на сайті
Дивовижний! З повагою до сценарію VBS! ДЯКУЮ!
Цей коментар був мінімізований модератором на сайті
Дуже дякую, це дуже зручно!
Цей коментар був мінімізований модератором на сайті
Це чудово, але тепер у мене проблема. Між усіма адресами електронної пошти замість крапки є пробіл (наприклад, abcd@aol com), тому формула не ставить кінці всіх адрес електронної пошти (.net, .com тощо) у новий стовпець. Як я можу це виправити?
Цей коментар був мінімізований модератором на сайті
Привіт усім, я також шукав спосіб відокремити адреси електронної пошти, щоб я міг розмістити їх у Outlook. Я додав роздільник "; " між адресами електронної пошти, щоб вони не працювали разом. Дайте мені знати, що ви думаєте. Дякую автору оригіналу за те, що він зібрав це разом! Функція ExtractEmailFun(extractStr As String) As String 'Оновити 20150723 Dim CharList Як рядок при помилці Продовжити далі CheckStr = "[A-Za-z0-9._-]" ExtractEmailFun = "" Індекс = 1 Робити, поки True Index1 = VBA. InStr(Index, extractStr, "@") getStr = "" Якщо Index1 > 0 Тоді для p = Index1 - 1 до 1 Крок -1 Якщо Mid(extractStr, p, 1) Як CheckStr Тоді getStr = Mid(extractStr, p, 1) & getStr Інакше Вихід Для End If Next getStr = getStr & "@" Для p = Index1 + 1 To Len(extractStr) Якщо Mid(extractStr, p, 1) Як CheckStr Тоді getStr = getStr & Mid(extractStr, p, 1) Інакше getStr = getStr Exit For End If Next Index = Index1 + 1 getStr = getStr & "; " If ExtractEmailFun = "" Then ExtractEmailFun = getStr Else ExtractEmailFun = ExtractEmailFun & Chr(10) & getStr End Якщо інакше Exit Do End If Функція закінчення циклу
Цей коментар був мінімізований модератором на сайті
Дякую автору оригінального сценарію; Я пішов далі і додав роздільник "; " між кількома адресами електронної пошти. Функція ExtractEmailFun(extractStr As String) As String 'Оновити 20150723 Dim CharList Як рядок при помилці Продовжити далі CheckStr = "[A-Za-z0-9._-]" ExtractEmailFun = "" Індекс = 1 Робити, поки True Index1 = VBA. InStr(Index, extractStr, "@") getStr = "" Якщо Index1 > 0 Тоді для p = Index1 - 1 до 1 Крок -1 Якщо Mid(extractStr, p, 1) Як CheckStr Тоді getStr = Mid(extractStr, p, 1) & getStr Інакше Вихід Для End If Next getStr = getStr & "@" Для p = Index1 + 1 To Len(extractStr) Якщо Mid(extractStr, p, 1) Як CheckStr Тоді getStr = getStr & Mid(extractStr, p, 1) Інакше getStr = getStr Exit For End If Next Index = Index1 + 1 getStr = getStr & "; " If ExtractEmailFun = "" Then ExtractEmailFun = getStr Else ExtractEmailFun = ExtractEmailFun & Chr(10) & getStr End Якщо інакше Exit Do End If Функція закінчення циклу
Цей коментар був мінімізований модератором на сайті
Це добре! Дякую.
Цей коментар був мінімізований модератором на сайті
Брате, ти справді геній. Формула, наведена нижче, спрацювала для мене та врятувала ручне втручання, яке займало години =TRIM(RIGHT(SUBSTITUTE(LEFT(H2,FIND (" ",H2&" ",FIND("@",H2))-1)," ", REPT(" ",LEN(H2))),LEN(H2))) Благослови вас Бог
Цей коментар був мінімізований модератором на сайті
Мені потрібна додаткова інформація, як витягувати електронні листи
Цей коментар був мінімізований модератором на сайті
Шановний сер, як я можу отримати правильні ідентифікатори електронної пошти зі свого списку електронних листів, наведеного нижче a.hamilton@tradsingapore.com.sg aarabest@emirates.com.net.ae admin@countrywide.com.my
Цей коментар був мінімізований модератором на сайті
Оскільки формула була мені дуже корисною, я вирішив поділитися своїм досвідом. Я запускаю його зі списком веб-скребів HTML, які іноді настільки довгі, що формула виходить з помилки. Згідно з Вікіпедією, максимальна довжина адреси електронної пошти становить 254 символи, тому заміна частин len(A1) на 256 покращує стабільність функції: =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND (" ",A1&" ", FIND("@",A1))-1)," ", REPT(" ",256)),256))
Цей коментар був мінімізований модератором на сайті
Чудово, чудово. кожен повинен використовувати..
Цей коментар був мінімізований модератором на сайті
Якщо я хочу витягти лише одну адресу електронної пошти з A1, ця формула робить це і повідомляє лише про порожню, а не про помилку, якщо A1 не містить адреси електронної пошти. Я вважаю це більш простим рішенням, ніж намагатися освоїти всі ці сценарії, і це нічого не коштує. =ЯКЩО ПОМИЛКА(ОБРИМ(ВПРАВО(ЗАМІНИТИ(ВЛІВО(A1,ЗНАЙТИ(" ",A1&" ",ЗНАЙТИ("@",A1))-1)," ",REPT(" ",LEN(A1))), LEN(A1))),"")
Цей коментар був мінімізований модератором на сайті
Надзвичайно корисно. Дуже дякую!!
Цей коментар був мінімізований модератором на сайті
Чудова інформація! Спасибі
Цей коментар був мінімізований модератором на сайті
Я використовую Excel 2007 на HP. Якщо у вас є Мелані Браун у форматі A1 і ви хочете, щоб вона читала Melanie.Brown@gmail.com у тій самій клітинці, як ви цього досягнете? У мене є ряд грив, щоб зробити те саме. Хтось допоможе мені з цим?
There are no comments posted here yet
Load More
Залишайте свої коментарі
Публікація як гість
×
Оцініть цю публікацію:
0   Персонажі
Рекомендовані місця

Слідуй за нами

Copyright © 2009 - WWW.extendoffice.com. | Всі права захищені. На основі ExtendOffice. | Карта сайту
Microsoft та логотип Office є товарними знаками або зареєстрованими товарними знаками Microsoft Corporation у США та / або інших країнах.
Захищений Sectigo SSL