Kéo ngoài một URL (Microsoft Excel)
Jordan cần phải tách một URL thành các thành phần của nó. Nếu URL đầy đủ (http://www.xyz.com/business) nằm trong cột A, anh ấy muốn có một cách để có miền chính (xyz hoặc xyz.com) trong cột B và đường dẫn (doanh nghiệp) trong cột C.
Có nhiều cách bạn có thể thực hiện để giải quyết vấn đề này. Nếu bạn chỉ cần làm điều này một hoặc hai lần, có thể dễ dàng nhất là sử dụng công cụ Văn bản thành Cột, có sẵn trên tab Dữ liệu của dải băng. Khi bạn chỉ định cách bạn muốn công cụ kéo các chuỗi ra xa nhau, hãy cho biết rằng bạn muốn nó sử dụng dấu gạch chéo (/) làm dấu phân cách. Tùy thuộc vào cách các URL gốc của bạn được kết hợp với nhau, điều này có thể yêu cầu một chút “dọn dẹp”
sau khi công cụ được thực hiện, nhưng nó là nhanh chóng và dễ dàng.
Nếu bạn làm điều này thường xuyên hơn, thì bạn có thể được lợi khi sử dụng một công thức để thực hiện thao tác với URL. Nhiệm vụ đầu tiên là kéo miền từ URL, nhưng điều này phức tạp hơn một chút so với âm thanh. Ví dụ: URL có thể bắt đầu bằng bất kỳ số lượng từ chỉ định giao thức nào (chẳng hạn như http: //, https: //, ftp: //, v.v.) hoặc nó có thể không bắt đầu bằng một chỉ định giao thức nào cả. Ngoài ra, bạn có thể muốn loại bỏ “www.”
danh pháp, như một số người coi là không liên quan. Để tìm ra nơi bắt đầu của miền “thực”, bạn có thể sử dụng công thức này trong cột B:
=IFERROR(FIND("www.",$A1)+4,IFERROR(FIND("://",$A1,1)+3,1))
Nó làm gì để trả lại vị trí của ký tự đầu tiên sau “www.”, Nếu nó có sẵn. Nếu nó không có mặt, thì nó trả về vị trí của ký tự đầu tiên sau “: //”, nếu nó hiện diện. Nếu không có ở đó, thì số 1 sẽ được trả về, vì URL không chứa bất kỳ tiền tố giao thức hoặc www.
Với giá trị đó trong cột B, sau đó bạn có thể bắt đầu thực sự kéo ra các phần bạn muốn. Phần sau, được đặt trong cột C, sẽ trả về miền, như đã được mô tả. Về cơ bản, nó trả về mọi thứ từ vị trí ký tự được hiển thị trong cột B cho đến dấu gạch chéo tiếp theo (/).
=MID(A1,B1,IFERROR(FIND("/",A1,B1)-B1,LEN(A1))
Nếu URL ban đầu bao gồm “www.xyz.com” thì “xyz.com” được trả về theo công thức. Nếu nó chứa miền phụ khác ngoài “www”
(chẳng hạn như “research.xyz.com”), thì miền đầy đủ bao gồm cả miền phụ sẽ được trả về. Hàm IFERROR được bao gồm trong trường hợp không có dấu gạch chéo (/) sau tên miền. (Hàm FIND trả về lỗi #VALUE nếu nó không thể tìm thấy mục mà nó đang tìm.)
Để chọn đường dẫn sau tên miền, bạn có thể sử dụng công thức sau trong cột D:
=IFERROR(MID(A1,FIND("/",A1,B1)+1,LEN(A1)),"")
Công thức trả về mọi thứ sau dấu gạch chéo đầu tiên (/) xuất hiện sau tên miền. Nếu không có dấu gạch chéo sau tên miền, thì nó không trả về kết quả gì. (Một lần nữa, đây là nhờ vào việc sử dụng hàm IFERROR.)
Chìa khóa để sử dụng các công thức trên, một lần nữa, là cột trợ giúp trong cột B. Nếu bạn muốn loại bỏ sự cần thiết của cột B, bạn sẽ cần thay thế trong hai công thức còn lại tất cả các trường hợp của B1 bằng công thức (không có dấu bằng) thuộc B1. Tất nhiên, điều đó sẽ làm cho hai công thức còn lại khá dài, đặc biệt là công thức được lưu ý cho cột C.
Bạn có thể, nếu muốn, tạo một macro về cơ bản làm điều tương tự mà không cần cột trợ giúp. Ví dụ sau đây yêu cầu bạn thực hiện một lựa chọn và sau đó kéo các phần của URL ra khỏi các ô và đặt chúng vào hai cột ở bên phải của vùng chọn.
Sub GetURLParts() Dim c As Range Dim sRaw As String Dim J As Integer For Each c In Selection sRaw = c.Text J = InStr(sRaw, "://") If J > 0 Then sRaw = Mid(sRaw, J + 3) If LCase(Left(sRaw, 4)) = "www." Then sRaw = Mid(sRaw, 5) End If J = InStr(sRaw, "/") If J > 0 Then c.Offset(0, 1) = Left(sRaw, J - 1) c.Offset(0, 2) = Mid(sRaw, J + 1) Else c.Offset(0, 1) = sRaw c.Offset(0, 2) = "" End If Next c End Sub
_Lưu ý: _
Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.
ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.
Mẹo này (13320) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365.