=IF(LEN(A1)-LEN(SUBSTITUTE(A1, ".", "", 2)), SUBSTITUTE(TRIM(RIGHT(SUBSTITUTE(A1, ".", REPT(" ", LEN(A1))), LEN(A1)*2)), " ", "."), IFERROR(RIGHT(A1, LEN(A1)-FIND("://", A1)-2), A1))
Cái này hoạt động ra sao?
Đầu tiên chúng tôi có một IF
tuyên bố cho phép chúng tôi đối xử với mọi thứ khác nhau nếu có một (hoặc ít hơn) hoặc nếu có ít nhất 2 giai đoạn.
Kiểm tra logic của chúng tôi là kiểm tra xem có giai đoạn thứ hai hay không: LEN(A1)-LEN(SUBSTITUTE(A1, ".", "", 2))
Điều này sẽ trở lại 0
nếu không thể tìm thấy 2 dấu chấm trong chuỗi hoặc 1
) nếu có 2 hoặc nhiều hơn.
Sau đó, chúng tôi đặt công thức 'nếu có 2 tiết trở lên trước và công thức' nếu có ít hơn 2 tiết 'thứ hai, nhưng vì công thức sau đơn giản hơn nhiều, tôi sẽ trình bày trước.
Nếu có ít hơn 2 tiết:
Nếu có một hoặc không có thời gian, thì chúng ta cần xóa văn bản lên và bao gồm cả phần ://
đầu, vì vậy chúng ta sẽ tìm vị trí của ://
và chỉ lấy văn bản sau nó: RIGHT(A1, LEN(A1)-FIND("://", A1)-2)
Chỉ trong trường hợp có dữ liệu không ' Để bắt đầu với một giao thức kết thúc, ://
chúng ta nên kết hợp nó với một IFERROR
và lấy toàn bộ chuỗi gốc thay vì một #VALUE
lỗi, điều này kết thúc là:IFERROR(RIGHT(A1, LEN(A1)-FIND("://", A1)-2), A1)
Nếu có (ít nhất) 2 tiết
Bây giờ chúng ta có các trường hợp đơn giản hơn, hãy xem điều gì xảy ra khi có 2 (hoặc nhiều hơn): SUBSTITUTE(TRIM(RIGHT(SUBSTITUTE(A1, ".", REPT(" ", LEN(A1))), LEN(A1)*2)), " ", ".")
Hãy phá vỡ nó:
- Chúng tôi thay thế tất cả các dấu chấm bằng một số lượng lớn khoảng trắng (có nhiều ký tự trong toàn bộ chuỗi gốc):
SUBSTITUTE(A1, ".", REPT(" ", LEN(A1)))
- Chúng tôi chỉ mất phần cuối của điều đó, cụ thể là gấp đôi chiều dài của chuỗi gốc. Điều này cung cấp cho chúng tôi hai phần cuối cùng và một loạt các khoảng trắng trước và giữa hai phần:
RIGHT(<step 1>, LEN(A1)*2)
Lưu ý: Nếu bạn cũng muốn bao gồm phần tiếp theo, bạn sẽ đổi *2
thành *3
.
- Chúng tôi loại bỏ tất cả các không gian bên ngoài bằng cách sử dụng
TRIM
, chỉ còn lại một không gian duy nhất, trong đó khoảng thời gian còn lại được cho là:TRIM(<step 2>)
- Chúng tôi thay thế một không gian còn lại bằng
.
:SUBSTITUTE(<step 3>, " ", ".")
Vì vậy, toàn bộ công thức của chúng tôi là:
=IF(LEN(A1)-LEN(SUBSTITUTE(A1, ".", "", 2)), SUBSTITUTE(TRIM(RIGHT(SUBSTITUTE(A1, ".", REPT(" ", LEN(A1))), LEN(A1)*2)), " ", "."), IFERROR(RIGHT(A1, LEN(A1)-FIND("://", A1)-2), A1))