Công thức nào trích xuất tên miền từ một địa chỉ email (bob@example.com -> example.com)?


8

Tôi sử dụng công thức Bảng tính Google nào để lấy phần tên miền từ địa chỉ email?

Ví dụ: bob@example.comexample.com

Câu trả lời:


4

Tôi sẽ sử dụng công thức sau đây để có được một URL.

Công thức

=IF(ISEMAIL(A2),
   REGEXEXTRACT(A2,"@(.+)"),
   IF(ISURL(A2),
     A2,
     IF(ISURL(REGEXEXTRACT(A2,"@(.+)")),
       REGEXEXTRACT(A2,"@(.+)"),
       "No valid entry"
     )
   )
 )

 Copy / Paste 
 =IF(ISEMAIL(A2),REGEXEXTRACT(A2,"@(.+)"),IF(ISURL(A2),A2,IF(ISURL(REGEXEXTRACT(A2,"@(.+)")),REGEXEXTRACT(A2,"@(.+)"),"No valid entry")))

Giải thích

A1được xác nhận là một địa chỉ email. Nếu TRUE, sau đó sử dụng REGEXEXTRACTcông thức bạn xây dựng. Nếu địa chỉ email hóa ra không phải là địa chỉ hợp lệ, thì xác thực cho một URL. Nếu URL hóa ra không phải là một URL hợp lệ, thì hãy kiểm tra xem đó có phải REGEXlà một URL hợp lệ không. Hiển thị văn bản Không có mục hợp lệ là không có IFtuyên bố nào là đúng.

Ảnh chụp màn hình

nhập mô tả hình ảnh ở đây

Thí dụ

Tôi đã tạo một tệp ví dụ cho bạn: Nhận tên miền từ địa chỉ email


1
Nếu bạn muốn cả hai (hoặc không phiền khi có cả hai), =split(A2, "@")trong A3 sẽ đặt bobở A3 và example.comA4. Một chút súc tích hơn.
Wayne Werner

6

Công thức này sẽ thực hiện công việc:

=regexextract(A1;"@(.*)")

Nếu không @tìm thấy, giá trị ban đầu được hiển thị.

Các =regexextractchức năng ( tài liệu ) thực hiện các biểu thức chính quy tham số ( @(.*)) so với giá trị của tế bào A1, và trả về nhóm phù hợp.


1
Tôi không phải là chuyên gia về REGEX (@Vidar là ....), nhưng (.*)quá chung chung. Btw, nếu không tìm thấy kết quả khớp, nó sẽ xuất hiện lỗi.
Jacob Jan Tuinstra

Tại sao (.*)quá chung chung? Bạn không muốn mọi thứ sau @?
Holloway

@Trengot Tôi đã nghĩ đến một cái gì đó trong dòng"@([A-Za-z0-9-.]+)")
Jacob Jan Tuinstra


1
@JacobJanTuinstra Regex đó sẽ không hoạt động với tất cả các tên miền, chỉ các tên miền ASCII. Tên miền có thể có các ký tự Unicode trong đó, ví dụ: 㯙 㯜 .net

3

Nếu địa chỉ email của bạn (bob@example.com) ở A1

=index(split(A1,"@"),0,2) = example.com

=index(split(A1,"@"),0,1) = bob

Bạn đang phân tách trên @ và hơn là sử dụng chỉ mục để chọn cột bạn muốn từ phần tách.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.