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

Làm thế nào để nhanh chóng trích xuất địa chỉ email từ chuỗi văn bản?

Khi bạn nhập một số địa chỉ email từ trang web sang trang tính Excel, luôn có văn bản không liên quan, nhưng bây giờ bạn chỉ muốn trích xuất địa chỉ email thuần túy từ chuỗi văn bản (xem ảnh chụp màn hình sau). Làm thế nào bạn có thể nhanh chóng chỉ lấy các địa chỉ email từ văn bản di động?

doc-extract-email1 -2 doc-extract-email2

Trích xuất địa chỉ email từ chuỗi văn bản với Công thức

Trích xuất địa chỉ email từ chuỗi văn bản với chức năng do người dùng xác định

Trích xuất địa chỉ email từ chuỗi văn bản với mã VBA

Trích xuất địa chỉ email từ chuỗi văn bản với Kutools cho Excel


mũi tên màu xanh bong bóng bên phải Trích xuất địa chỉ email từ chuỗi văn bản với Công thức

Ở đây tôi giới thiệu cho bạn một công thức dài để chỉ trích xuất địa chỉ email từ văn bản trong Excel. Vui lòng làm như sau:

1. Trong ô liền kề B1, nhập công thức này = TRIM (RIGHT (SUBSTITUTE (LEFT (A1, FIND ("", A1 & "", FIND ("@", A1)) - 1), "", REPT ("", LEN (A1))), LEN ( A1))).

doc-extract-email3

2. Sau đó nhấn đăng ký hạng mục thi , sau đó chọn ô B1 và ​​kéo chốt điền vào phạm vi mà bạn muốn chứa công thức này. Và các địa chỉ email trong phạm vi đã được trích xuất từ ​​chuỗi văn bản. Xem ảnh chụp màn hình:

doc-extract-email4

Ghi chú:

1. Dấu chấm câu sau địa chỉ email cũng sẽ được trích xuất.

2. Nếu các ô không chứa địa chỉ email, công thức sẽ hiển thị các giá trị lỗi.

3. Nếu có nhiều hơn một địa chỉ email trong một ô, công thức sẽ chỉ trích xuất địa chỉ đầu tiên.


Trích xuất nhiều địa chỉ email từ chuỗi văn bản

Kutools cho Excel'S Trích xuất địa chỉ email có thể giúp bạn trích xuất địa chỉ email từ chuỗi văn bản một cách nhanh chóng và thuận tiện. Nhấp để tải xuống Kutools cho Excel!

doc trích xuất email-1

Kutools cho Excel: với hơn 300 bổ trợ Excel tiện dụng, dùng thử miễn phí không giới hạn trong 30 ngày. Tải xuống và dùng thử miễn phí ngay!


mũi tên màu xanh bong bóng bên phải Trích xuất địa chỉ email từ chuỗi văn bản với chức năng do người dùng xác định

Ngoại trừ công thức trên, một Hàm do Người dùng Xác định cũng có thể giúp bạn lấy địa chỉ email từ chuỗi văn bản.

1. Giữ ALT + F11 chìa khóa và nó mở Microsoft Visual Basic cho các ứng dụng cửa sổ.

2. Nhấp chuột Chèn > Mô-đunvà dán macro sau vào cửa sổ Mô-đun.

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. Sau đó lưu mã và nhập công thức = ExtractEmailFun (A1) trong một ô trống liền kề, xem ảnh chụp màn hình:

doc-extract-email5

4. Và sau đó nhấn đăng ký hạng mục thi , chọn ô B1 và ​​kéo chốt điền vào phạm vi mà bạn cần công thức. Và tất cả các địa chỉ email đã được trích xuất từ ​​văn bản ô. Xem ảnh chụp màn hình:

doc-extract-email6

Ghi chú:

1. Nếu các ô không có địa chỉ email, nó sẽ hiển thị các ô trống.

2. Nếu có nhiều hơn một địa chỉ email trong một ô, tất cả các email sẽ được trích xuất.


mũi tên màu xanh bong bóng bên phải Trích xuất địa chỉ email từ chuỗi văn bản với mã VBA

Nếu bạn cảm thấy các công thức trên gây rắc rối cho mình, mã VBA sau có thể giúp bạn trích xuất các địa chỉ email tại một.

1. Giữ ALT + F11 chìa khóa, và nó mở ra một Microsoft Visual Basic cho các ứng dụng cửa sổ.

2. Nhấp chuột Chèn > Mô-đunvà dán macro sau vào Cửa sổ mô-đun.

VBA: trích xuất địa chỉ email từ chuỗi văn bản

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. Sau đó nhấn F5 để chạy mã này và bạn nên chọn một phạm vi mà bạn muốn sử dụng VBA trong hộp thoại bật ra, xem ảnh chụp màn hình:

doc-extract-email7

4. Sau đó nhấn vào OKvà các địa chỉ email đã được trích xuất từ ​​các chuỗi văn bản đã chọn. Xem ảnh chụp màn hình:

doc-extract-email8 -2 doc-extract-email9

Ghi chú:

1. Nếu các ô không có địa chỉ email, nó sẽ hiển thị các ô trống.

2. Tất cả các email sẽ được trích xuất, nếu có nhiều hơn một địa chỉ email trong một ô.

3. Các email được trích xuất sẽ bao gồm dữ liệu gốc, vì vậy bạn nên sao lưu dữ liệu trước nếu cần.


mũi tên màu xanh bong bóng bên phải Trích xuất địa chỉ email từ chuỗi văn bản với Kutools cho Excel bằng một cú nhấp chuột

Các phương pháp trên có vẻ hơi phức tạp đối với người mới bắt đầu học Excel của chúng tôi, ở đây, tôi có thể giới thiệu cho bạn một công cụ nhanh chóng và dễ dàng- Kutools cho Excel, Với khả Trích xuất địa chỉ email tiện ích, bạn có thể trích xuất địa chỉ email từ chuỗi văn bản mà không cần nỗ lực nhiều.

Kutools cho Excel : với hơn 300 bổ trợ Excel tiện dụng, dùng thử miễn phí không giới hạn trong 30 ngày.

Nếu bạn đã cài đặt Kutools cho Excel, vui lòng làm như sau:

1. Chọn các ô chứa các chuỗi văn bản.

2. Nhấp chuột Kutools > bản văn > Trích xuất địa chỉ email, xem ảnh chụp màn hình:

3. Và một Trích xuất địa chỉ email hộp thoại sẽ bật ra, chọn một ô mà bạn muốn đặt kết quả, xem ảnh chụp màn hình:

doc-extract-email9

4. Sau đó nhấn vào OK , tất cả các địa chỉ email đã được trích xuất từ ​​các chuỗi văn bản, xem ảnh chụp màn hình:

doc-extract-email9

Nhấp để Tải xuống và dùng thử miễn phí Kutools cho Excel ngay!


mũi tên màu xanh bong bóng bên phải Demo: Trích xuất địa chỉ email từ chuỗi văn bản với Kutools cho Excel

Kutools cho Excel: với hơn 300 bổ trợ Excel tiện dụng, dùng thử miễn phí không giới hạn trong 30 ngày. Tải xuống và dùng thử miễn phí ngay!

Bài viết liên quan:

Làm cách nào để trích xuất miền từ nhiều địa chỉ email trong Excel?


Các công cụ năng suất văn phòng tốt nhất

Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn

  • Tái sử dụng: Chèn nhanh công thức phức tạp, biểu đồ và bất cứ thứ gì bạn đã sử dụng trước đây; Mã hóa ô với mật khẩu; Tạo danh sách gửi thư và gửi email ...
  • Thanh siêu công thức (dễ dàng chỉnh sửa nhiều dòng văn bản và công thức); Bố cục đọc (dễ dàng đọc và chỉnh sửa số lượng ô lớn); Dán vào Dải ô đã Lọchữu ích. Cảm ơn !
  • Hợp nhất các ô / hàng / cột mà không làm mất dữ liệu; Nội dung phân chia ô; Kết hợp các hàng / cột trùng lặp... Ngăn chặn các ô trùng lặp; So sánh các dãyhữu ích. Cảm ơn !
  • Chọn trùng lặp hoặc duy nhất Hàng; Chọn hàng trống (tất cả các ô đều trống); Tìm siêu và Tìm mờ trong Nhiều Sổ làm việc; Chọn ngẫu nhiên ...
  • Bản sao chính xác Nhiều ô mà không thay đổi tham chiếu công thức; Tự động tạo tài liệu tham khảo sang Nhiều Trang tính; Chèn Bullets, Hộp kiểm và hơn thế nữa ...
  • Trích xuất văn bản, Thêm Văn bản, Xóa theo Vị trí, Xóa không gian; Tạo và In Tổng số phân trang; Chuyển đổi giữa nội dung ô và nhận xéthữu ích. Cảm ơn !
  • Siêu lọc (lưu và áp dụng các lược đồ lọc cho các trang tính khác); Sắp xếp nâng cao theo tháng / tuần / ngày, tần suất và hơn thế nữa; Bộ lọc đặc biệt bằng cách in đậm, in nghiêng ...
  • Kết hợp Workbook và WorkSheets; Hợp nhất các bảng dựa trên các cột chính; Chia dữ liệu thành nhiều trang tính; Chuyển đổi hàng loạt xls, xlsx và PDFhữu ích. Cảm ơn !
  • Hơn 300 tính năng mạnh mẽ. Hỗ trợ Office / Excel 2007-2021 và 365. Hỗ trợ tất cả các ngôn ngữ. Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn. Đầy đủ tính năng Dùng thử miễn phí 30 ngày. Bảo đảm hoàn lại tiền trong 60 ngày.
tab kte 201905

Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
officetab dưới cùng
Nhận xét (40)
Chưa có xếp hạng. Hãy là người đầu tiên xếp hạng!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
LUL SỬ DỤNG MÃ NÀY ĐỂ TRÍCH XUẤT 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
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
rất hữu ích, cảm ơn!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn vì công thức này! Bạn vừa giúp tôi tiết kiệm được rất nhiều công việc - phải trích xuất 1500 email từ một trang tính Excel viết kém để có danh sách tiếp thị qua email. Cuối cùng, khi tôi đã tìm thấy công thức của bạn, chỉ trong tích tắc.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Mã tuyệt vời! Thực sự hữu ích. Thật không may, nó nối nhiều địa chỉ email thay vì tách chúng một cách hữu ích, chẳng hạn như bằng dấu chấm phẩy. Làm thế nào bạn sẽ thêm vào một dấu phân cách?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
không có VBA chỉ cần dán công thức vào ô Chỉ cần thay đổi các tham chiếu (ví dụ bên dưới nhìn vào Ô A1) = TRIM (RIGHT (SUBSTITUTE (LEFT (A1, FIND ("@", A1) -1), "", REPT ( "", 99)), 99)) & MID (A1, FIND ("@", A1), FIND ("", A1 & "", FIND ("@", A1)) - FIND ("@", A1) )
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
[quote]... =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND("@",A1)-1)," ",REPT(" ",99)),99))&MID(A1,FIND("@",A1),FIND(" ",A1&" ",FIND("@",A1))-FIND("@",A1))Bởi tôi[/ quote] Cảm ơn "TÔI", hoạt động đúng nguyên văn trong bảng tính Google!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
[quote] không có VBA chỉ cần công thức được dán vào ô Chỉ cần thay đổi các tham chiếu (ví dụ bên dưới nhìn vào Ô A1) = TRIM (RIGHT (SUBSTITUTE (LEFT (A1, FIND ("@", A1) -1), "" , REPT ("", 99)), 99)) & MID (A1, FIND ("@", A1), FIND ("", A1 & "", FIND ("@", A1)) - FIND ("@" , A1))Bởi tôi[/ quote] Xin cảm ơn. Nó đã làm việc cho tôi.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Kinh ngạc! Trân trọng dành cho kịch bản VBS! CÁM ƠN!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn bạn rất nhiều, điều này rất tiện dụng!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Điều này thật tuyệt, nhưng bây giờ tôi có một vấn đề. Có một khoảng trắng thay vì dấu chấm giữa tất cả các địa chỉ email (tức là abcd @ aol com), vì vậy công thức không đặt phần cuối của tất cả các địa chỉ email (.net, .com, v.v.) vào cột mới. Làm thế nào tôi có thể sửa lỗi này?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào tất cả, tôi cũng đang tìm cách tách các địa chỉ e-mail để có thể đưa nó vào Outlook. Tôi đã thêm dấu phân tách ";" giữa các địa chỉ e-mail để chúng không chạy cùng nhau. Cho tôi biết bạn nghĩ gì. Cảm ơn tác giả của bản gốc vì đã kết hợp được điều này! Hàm ExtractEmailFun (extractStr As String) As String 'Update 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 Khác Exit For End Nếu Tiếp theo getStr = getStr & "@" Đối với p = Index1 + 1 Tới Len (extractStr) Nếu Mid (extractStr, p, 1) Giống như CheckStr Sau đó getStr = getStr & Mid (extractStr, p, 1) Khác 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 Chức năng kết thúc vòng lặp
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn tác giả của kịch bản gốc; Tôi đã tiếp tục và thêm dấu phân cách ";" vào giữa nhiều địa chỉ e-mail. Hàm ExtractEmailFun (extractStr As String) As String 'Update 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 Khác Exit For End Nếu Tiếp theo getStr = getStr & "@" Đối với p = Index1 + 1 Tới Len (extractStr) Nếu Mid (extractStr, p, 1) Giống như CheckStr Sau đó getStr = getStr & Mid (extractStr, p, 1) Khác 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 Chức năng kết thúc vòng lặp
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Điều này là tốt! Cảm ơn.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Anh à, anh đúng là thiên tài. Công thức dưới đây phù hợp với tôi và lưu sự can thiệp thủ công mà trước đây thường mất hàng giờ = TRIM (RIGHT (SUBSTITUTE (LEFT (H2, FIND ("", H2 & "", FIND ("@", H2)) - 1), "", REPT ("", LEN (H2))), LEN (H2))) Chúa ban phước cho bạn
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
tôi cần thêm thông tin về cách trích xuất email
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Kính gửi Ngài, Làm cách nào để trích xuất các id email chính xác từ ví dụ danh sách email của tôi bên dưới a.hamilton@tradsingapore.com.sg aarabest@emirates.com.net.ae admin@countrywide.com.my
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
vì công thức đã giúp ích rất nhiều cho tôi, tôi nghĩ tôi sẽ chia sẻ kinh nghiệm của mình. Tôi chạy nó trên một danh sách các trang web html đôi khi dài đến mức lỗi công thức. Theo wikipedia, độ dài tối đa của một địa chỉ email là 254 ký tự vì vậy việc thay thế các phần len (A1) bằng 256 sẽ cải thiện tính ổn định của hàm: = TRIM (RIGHT (SUBSTITUTE (LEFT (A1, FIND ("", A1 & "", TÌM ("@", A1)) - 1), "", REPT ("", 256)), 256))
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tuyệt vời, tuyệt vời. mọi người nên sử dụng ..
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Nếu tôi chỉ muốn trích xuất một địa chỉ email từ A1, công thức này sẽ làm như vậy và chỉ báo cáo một khoảng trống, không phải lỗi, nếu A1 không chứa địa chỉ email. Tôi thấy đây là một giải pháp dễ dàng hơn so với việc cố gắng thành thạo tất cả các tập lệnh này, và nó không tốn kém gì. = IFERROR (TRIM (RIGHT (SUBSTITUTE (LEFT (A1, FIND ("", A1 & "", FIND ("@", A1)) - 1), "", REPT ("", LEN (A1))), LEN (A1))), "")
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cực kỳ hữu ích. Cảm ơn rất nhiều!!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Thông tin tuyệt vời! Thanks
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi đang sử dụng Excel 2007 trên một chiếc HP. Nếu bạn có Melanie Brown trong A1 và muốn nó đọc Melanie.Brown@gmail.com trong cùng một ô, bạn thực hiện điều này như thế nào? Tôi có một chuỗi bờm để làm theo cách tương tự. Ai đó sẽ giúp tôi với điều này?
Không có bình luận nào được đăng ở đây
Tải thêm
Để lại ý kiến ​​của bạn
Đăng với tư cách khách
×
Đánh giá bài viết này:
0   Nhân vật
Các vị trí được đề xuất

Kết nối với chúng tôi

Bản quyền © 2009 - www.extendoffice.com. | Đã đăng ký Bản quyền. cung cấp bởi ExtendOffice. | BẢN ĐỒ CHI NHÁNH
Microsoft và logo Office là các nhãn hiệu hoặc nhãn hiệu đã đăng ký của Microsoft Corporation tại Hoa Kỳ và / hoặc các quốc gia khác.
Được bảo vệ bởi Sectigo SSL