Cho mình hỏi về vấn đề tách địa chỉ mail ra khỏi chuỗi với

Liên hệ QC

daolienkt

Thành viên mới
Tham gia
21/3/09
Bài viết
3
Được thích
0
Mình coppy danh sách email này trên facebook, vì vậy mà nó bị lẫn cả hình ảnh và các từ không cần thiết vào. Mình cần tách để lấy một list danh sách mail. Số lượng mail rất nhiều nên nhờ mọi người giúp mình vụ nay.
Mình search đc công thức tách rồi nhưng không tách được riêng mail ra: như ở cột B, kết quả vẫn dính tên vào đó.
Khi mình đánh bằng tay kết quả để tách tiếp thì được (cột E và F)
Nhưng sao copy giá trị kết quả từ cột B sang cột C để tách tiếp thì không cho kết quả (cột D)
Mọi người xem xem giúp mình nhé. Mình không giỏi excel nên trăm sự nhờ mọi người.
Thanks all,
 

File đính kèm

  • ldt1.xlsx
    27.8 KB · Đọc: 89
Mình coppy danh sách email này trên facebook, vì vậy mà nó bị lẫn cả hình ảnh và các từ không cần thiết vào. Mình cần tách để lấy một list danh sách mail. Số lượng mail rất nhiều nên nhờ mọi người giúp mình vụ nay.
Mình search đc công thức tách rồi nhưng không tách được riêng mail ra: như ở cột B, kết quả vẫn dính tên vào đó.
Khi mình đánh bằng tay kết quả để tách tiếp thì được (cột E và F)
Nhưng sao copy giá trị kết quả từ cột B sang cột C để tách tiếp thì không cho kết quả (cột D)
Mọi người xem xem giúp mình nhé. Mình không giỏi excel nên trăm sự nhờ mọi người.
Thanks all,
Trong dữ liệu nguồn của bạn có một số vấn đề:
1. Trong chuỗi có chứa một số khoảng trắng có mã 160 chứ không phải là dấu cách bình thường (có mã 32).
2. Một số chuỗi chứa thêm nội dung sau địa chỉ email, dẫn đến việc tách dữ liệu gặp khó khăn.

Cách xử lý:
1. Sử dụng chức năng Replace để thay thế khoảng trắng có mã 160 bởi dấu cách bình thường. Cách làm: Chọn cột A, nhấn Ctrl+H. Tiếp theo:
+ Tại vị trí Find what, bạn giữ phím Alt và nhập liên tiếp chuỗi số 0160 ở bên dãy phím số (của máy để bàn). Hoặc cũng có thể nhập công thức =Char(160) vào 1 ô rồi copy kết quả dán vào đây.
+ Tại vị trí Replace with, nhấn dấu cách.
+ Nhấn Replace All (hoặc Alt+A) để thay thế tất cả.
2. Sử dụng chức năng Replace để thay thế chuỗi .com* bởi chuỗi .com để xóa hết nội dung sau địa chỉ email.
3. Sử dụng công thức sau cho ô B2 và fill xuống:
Mã:
=IF(ISNUMBER(FIND("@",A2)),TRIM(RIGHT(SUBSTITUTE(A2," ",REPT(" ",255)),255)),"")
4. Sau khi fill công thức cho cột B, bạn sẽ được kết quả là các địa chỉ email. Bây giờ có thể sử dụng AutoFilter để lọc ra các dòng có chứa địa chỉ email.
 
Mình coppy danh sách email này trên facebook, vì vậy mà nó bị lẫn cả hình ảnh và các từ không cần thiết vào. Mình cần tách để lấy một list danh sách mail. Số lượng mail rất nhiều nên nhờ mọi người giúp mình vụ nay.
Mình search đc công thức tách rồi nhưng không tách được riêng mail ra: như ở cột B, kết quả vẫn dính tên vào đó.
Khi mình đánh bằng tay kết quả để tách tiếp thì được (cột E và F)
Nhưng sao copy giá trị kết quả từ cột B sang cột C để tách tiếp thì không cho kết quả (cột D)
Mọi người xem xem giúp mình nhé. Mình không giỏi excel nên trăm sự nhờ mọi người.
Thanks all,

Bạn gõ bằng tay thì tách được còn nếu lấy ở cột B thì không được vì bạn có FIND(" "...) trong khi đó thì trong "Phương phuongjeremy@gmail.com" giữa "Phương" và "phương" không có dấu cách với code = 32, tức " ", mà có ký tự với code = 160. Dể hiểu thôi vì bạn copy từ trang web ( ký tự với code = 160 được dùng trên trang web)

Bạn thử làm như sau:

1. Alt + F11 để vào VBE --> Insert --> Module --> dán code sau vào Module1
2. Đặt trên sheet 1 Button và gán cho nó macro tachemail

3. Code
Mã:
Sub tachemail()
Dim re As Object, Arr(), text As String, index As Long
    Arr = Range([A2], [A65535].End(xlUp)).Value
    Set re = CreateObject("VBScript.RegExp")
    With re
        .Pattern = "\S+@\S+"
        For index = 1 To UBound(Arr)
            text = Replace(Arr(index, 1), Chr(160), " ")
            If text <> "" Then
                If .test(text) Then
                    Arr(index, 1) = Trim(.Execute(text).Item(0).Value)
                Else
                    Arr(index, 1) = ""
                End If
            End If
        Next
    End With
    Set re = Nothing
    Range("B2").Resize(UBound(Arr)).Value = Arr
End Sub
 
1 phát ăn ngay: Lấy chuỗi có chứa @ ở giữa hai khoảng trắng:
Mã:
=IFERROR(TRIM(MID(SUBSTITUTE(SUBSTITUTE($A2,CHAR(160)," ")," ",REPT(" ",100)),SEARCH("@",SUBSTITUTE(SUBSTITUTE($A2,CHAR(160)," ")," ",REPT(" ",100)))-50,100)),"")
 
Thí nghiệm công thức này xem sao:
Mã:
=TRIM(LEFT(SUBSTITUTE(TRIM(IF(COUNTIF(A2,"*@*"),MID(SUBSTITUTE(A2,CHAR(160),REPT(" ",255)),255,255),""))," ",REPT(" ",255)),255))
 
Cảm ơn mọi người nhiều nhé. Mình làm được rồi. Tks mọi người rất rất nhiều!
 
oh hay quá. Bạn daolienkt ơi. mình cũng đang rất cần một danh sách cho cv của mình là gửi mail, mà mình chưa biết tìm đâu ra nguồn. bạn cho mình xin danh sách của bạn được không.
 
Web KT
Back
Top Bottom