Nếu dữ liệu như thế này thì có thể dùng từ khóa viet để tìm kiếm và từ khóa vn trong chuỗi sau khi tìm thấy chữ vietem chào cả nhà !
em có up file vd kèm theo, em cần bóc tách dữ liệu ở sheet1 và sheet2
nhờ anh chị giúp dùm em với ạ, em cảm ơn nhiều ạ !
Tạm dùng công thức này vậy, chỉ đúng kết quả trong file, nếu phát sinh thêm thì tính tiếpem chào cả nhà !
em có up file vd kèm theo, em cần bóc tách dữ liệu ở sheet1 và sheet2
nhờ anh chị giúp dùm em với ạ, em cảm ơn nhiều ạ !
=TRIM(SUBSTITUTE(MID(SUBSTITUTE(A2,"<",REPT(" ",100)),FIND("viet",A2),50),CHAR(34),""))
em chưa hiểu lắm anhNếu dữ liệu như thế này thì có thể dùng từ khóa viet để tìm kiếm và từ khóa vn trong chuỗi sau khi tìm thấy chữ viet
dạ ở sheet2, đây chỉ là file vd, chứ thực tế sẽ có rất nhiều trang web khác nhau chứ ko phải 1 trang web "viettoan" anh, hicccTạm dùng công thức này vậy, chỉ đúng kết quả trong file, nếu phát sinh thêm thì tính tiếp
Mã:=TRIM(SUBSTITUTE(MID(SUBSTITUTE(A2,"<",REPT(" ",100)),FIND("viet",A2),50),CHAR(34),""))
dạ sheet2 đó chỉ là e vd "viettoan" , trên thực tế có rất nhiều tên trang web khác nhau anh, hicCông thức cho Sheet2
View attachment 197787
dạ ở sheet2, đây chỉ là file vd, chứ thực tế sẽ có rất nhiều trang web khác nhau chứ ko phải 1 trang web "viettoan" anh, hiccc
Bài đã được tự động gộp:
dạ sheet2 đó chỉ là e vd "viettoan" , trên thực tế có rất nhiều tên trang web khác nhau ạ, hic
Bạn đưa thế nào thì chúng tôi biết đên đâu giúp bạn tới đó.dạ ở sheet2, đây chỉ là file vd, chứ thực tế sẽ có rất nhiều trang web khác nhau chứ ko phải 1 trang web "viettoan" anh, hiccc
Bài đã được tự động gộp:
dạ sheet2 đó chỉ là e vd "viettoan" , trên thực tế có rất nhiều tên trang web khác nhau anh, hic
Bài đã được tự động gộp:
dạ, tại dữ liệu hơi cá nhân, nên em viết các mẫu các trường hợp sẽ xảy ra để anh chị nhìn dễ ạ, em mới cập nhật lại vd ạBạn đưa thế nào thì chúng tôi biết đên đâu giúp bạn tới đó.
Nếu bạn có hàng trăm trang Web cần xử lý, hãy gửi lên đây để các thành viên thử sức.
Tất cả tôi đã làm trong File, bạn xem nhédạ, tại dữ liệu hơi cá nhân, nên em viết các mẫu các trường hợp sẽ xảy ra để anh chị nhìn dễ ạ, em mới cập nhật lại vd ạ
Bài đã được tự động gộp:
dạ vd trên thực tế có hàng nghìn web thì làm sao lấy mẫu để LOOKUP anh nhỉ hicTất cả tôi đã làm trong File, bạn xem nhé
Thực ra, tôi biết bạn đang cần 1 đoạn VBA code, tôi cũng đã thử, nhưng xử lý chưa triệt để nên dùng tạm hàm Lookup.dạ vd trên thực tế có hàng nghìn web thì làm sao lấy mẫu để LOOKUP anh nhỉ hic
dạ, nhờ anh chị giúp dùm em bài này với ạ !Thực ra, tôi biết bạn đang cần 1 đoạn VBA code, tôi cũng đã thử, nhưng xử lý chưa triệt để nên dùng tạm hàm Lookup.
Bạn cố gắng chờ đợi, biết đâu có thành viên nào đó ngang qua giúp bạn thực hiện được điều mong ước.
Bạn này đang hóng code VBA cơ mờ.., khà khà.Thử:
PHP:Sheet2!C2=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TRIM(MID(LEFT(A2,FIND("<",A2)-1),IFERROR(LOOKUP(10^10,FIND({")","/","-","+","_"},A2))+1,1),100)),"+",""),"/",""),",",""),"""","")
Khà khà và bạn ấy kiếm mình ^^ dĩ nhiên mình chỉ có công thức thôiBạn này đang hóng code VBA cơ mờ.., khà khà.
Bạn thử code này xem:em chào cả nhà !
em có up file vd kèm theo, em cần bóc tách dữ liệu ở sheet1 và sheet2
nhờ anh chị giúp dùm em hàm ở 2 sheet với ạ, em cảm ơn nhiều ạ !
Function tach(str As String, Optional n As Long = 1) As String
Dim result()
result = Array(".com", ".vn", ".com.vn", ".net", ".net.vn", ".org", ".org.vn", ".info", ".biz")
With CreateObject("vbscript.regexp")
.Global = True
If n = 3 Then
.Pattern = "(www.)?([a-zA-Z0-9.-]+)([^a-zA-Z0-9.-]{1,2})?<"
Else
.Pattern = "(www.)?(.+(" + Join(result, "|") + ")).*(@.+)"
End If
If .test(str) Then
Select Case n
Case 1
tach = .Execute(str)(0).submatches(1)
Case 2
tach = .Execute(str)(0).submatches(3)
Case 3
tach = .Execute(str)(0).submatches(1)
End Select
End If
End With
End Function
Hoàng tử của lòng em đây rồi !Bạn thử code này xem:
Sheet1 thì dùng các công thức tach(...,1) và tach(...,2)PHP:Function tach(str As String, Optional n As Long = 1) As String Dim result() result = Array(".com", ".vn", ".com.vn", ".net", ".net.vn", ".org", ".org.vn", ".info", ".biz") With CreateObject("vbscript.regexp") .Global = True If n = 3 Then .Pattern = "(www.)?([a-zA-Z0-9.-]+)([^a-zA-Z0-9.-]{1,2})?<" Else .Pattern = "(www.)?(.+(" + Join(result, "|") + ")).*(@.+)" End If If .test(str) Then Select Case n Case 1 tach = .Execute(str)(0).submatches(1) Case 2 tach = .Execute(str)(0).submatches(3) Case 3 tach = .Execute(str)(0).submatches(1) End Select End If End With End Function
Sheet3 thì dùng các công thức tach(...,3)
Hên xui nhe, không được thì thôi nhe bạn.
em Alt F11 > module > nhập code rùi lưu lại ko dc anhBạn thử code này xem:
Sheet1 thì dùng các công thức tach(...,1) và tach(...,2)PHP:Function tach(str As String, Optional n As Long = 1) As String Dim result() result = Array(".com", ".vn", ".com.vn", ".net", ".net.vn", ".org", ".org.vn", ".info", ".biz") With CreateObject("vbscript.regexp") .Global = True If n = 3 Then .Pattern = "(www.)?([a-zA-Z0-9.-]+)([^a-zA-Z0-9.-]{1,2})?<" Else .Pattern = "(www.)?(.+(" + Join(result, "|") + ")).*(@.+)" End If If .test(str) Then Select Case n Case 1 tach = .Execute(str)(0).submatches(1) Case 2 tach = .Execute(str)(0).submatches(3) Case 3 tach = .Execute(str)(0).submatches(1) End Select End If End With End Function
Sheet3 thì dùng các công thức tach(...,3)
Hên xui nhe, không được thì thôi nhe bạn.
Phí rượu quá, khà khà.em Alt F11 > module > nhập code rùi lưu lại ko dc anh
nhờ anh nhập code vào file dùm em với ạ !
cảm ơn anh!Phí rượu quá, khà khà.
ở sheet1 lọc trong chuỗi địa chỉ mail chỉ lấy đoạn từ đuôi tên miền trang web đến dấu chấm ạHoàng tử của lòng em đây rồi !
Khà khà
Bạn phải kêu nhà sản xuất chứ? Tôi có biết gì đâu mà chỉnh với sửa?cảm ơn anh!
Bài đã được tự động gộp:
ở sheet1 lọc trong chuỗi địa chỉ mail chỉ lấy đoạn từ đuôi tên miền trang web đến dấu chấm ạ
vd: tuan.phamhoa.vn@gmail.com, thì chỉ lọc lấy kết quả là phamhoa.vn
trong file vd em có mô tả kết quả kĩ anh
anh xem chỉnh lại code giúp e với ạ !
Bạn chỉnh code lại như vầy:cảm ơn anh!
Bài đã được tự động gộp:
ở sheet1 lọc trong chuỗi địa chỉ mail chỉ lấy đoạn từ đuôi tên miền trang web đến dấu chấm ạ
vd: tuan.phamhoa.vn@gmail.com, thì chỉ lọc lấy kết quả là phamhoa.vn
trong file vd em có mô tả kết quả kĩ anh
anh xem chỉnh lại code giúp e với ạ !
Function tach(str As String, Optional n As Long = 1) As String
Dim result()
result = Array(".com.vn", ".org.vn", ".net.vn", ".com", ".net", ".org", ".info", ".biz", ".vn")
With CreateObject("vbscript.regexp")
.Global = True
If n = 3 Then
.Pattern = "(www.)?([a-zA-Z0-9.-]+)([^a-zA-Z0-9.-]{1,2})?<"
Else
.Pattern = "([a-zA-Z0-9]+(" + Join(result, "|") + ")).*(@.+)"
End If
If .test(str) Then
Select Case n
Case 1
tach = .Execute(str)(0).submatches(0)
Case 2
tach = .Execute(str)(0).submatches(2)
Case 3
tach = .Execute(str)(0).submatches(1)
End Select
End If
End With
End Function
dạ em chạy thử thì thấy còn lỗi như sau ạBạn chỉnh code lại như vầy:
PHP:Function tach(str As String, Optional n As Long = 1) As String Dim result() result = Array(".com.vn", ".org.vn", ".net.vn", ".com", ".net", ".org", ".info", ".biz", ".vn") With CreateObject("vbscript.regexp") .Global = True If n = 3 Then .Pattern = "(www.)?([a-zA-Z0-9.-]+)([^a-zA-Z0-9.-]{1,2})?<" Else .Pattern = "([a-zA-Z0-9]+(" + Join(result, "|") + ")).*(@.+)" End If If .test(str) Then Select Case n Case 1 tach = .Execute(str)(0).submatches(0) Case 2 tach = .Execute(str)(0).submatches(2) Case 3 tach = .Execute(str)(0).submatches(1) End Select End If End With End Function
Tôi chỉnh cho bạn thêm lần này nữa thôi nhe, bạn sửa code lại như vầy:dạ em chạy thử thì thấy còn lỗi như sau ạ
- ở sheet1 còn lỗi như sau
vd dữ liệu: anhvietvn@gmail.com thì kết quả là anhvietvn
vd dữ liệu: letuan_com@yahoo.com ra kết quả là letuan_com
2 dạng này em ko cần ra kết quả, nhờ anh chỉnh code loại bỏ 2 dạng này với ạ
- ở sheet2 còn lỗi như sau
vd dữ liệu: anh Tuấn <anhtuan@gmail.com> ra kết quả là n , cái này nếu đúng sẽ ko có kết quả
vd dữ liệu: "Phương -www.lephuong.com" <lephuong@gmail.com> ra kết quả là -www.lephuong.com, em cần kết quả đúng là lephuong.com
vd dữ liệu: Phú -phamphu.com <phamphu@gmail.com> ra kết quả là -phamphu.com , em cần kết quả đúng là phamphu.com
em cảm ơn anh nhiều ạ !
Function tach(str As String, Optional n As Long = 1) As String
Dim result()
result = Array(".com.vn", ".org.vn", ".net.vn", ".com", ".net", ".org", ".info", ".biz", ".vn")
With CreateObject("vbscript.regexp")
.Global = True
If n = 3 Then
.Pattern = "(.*www\.)?\-?([a-zA-Z0-9.-]+(" + Replace(Join(result, "|"), ".", "\.") + ")).*<"
Else
.Pattern = "([a-zA-Z0-9]+(" + Replace(Join(result, "|"), ".", "\.") + ")).*(@.+)"
End If
If .test(str) Then
Select Case n
Case 1
tach = .Execute(str)(0).submatches(0)
Case 2
tach = .Execute(str)(0).submatches(2)
Case 3
tach = .Execute(str)(0).submatches(1)
End Select
End If
End With
End Function
dạ ok hết rùi, em cảm ơn anh nhiều ạ !Tôi chỉnh cho bạn thêm lần này nữa thôi nhe, bạn sửa code lại như vầy:
PHP:Function tach(str As String, Optional n As Long = 1) As String Dim result() result = Array(".com.vn", ".org.vn", ".net.vn", ".com", ".net", ".org", ".info", ".biz", ".vn") With CreateObject("vbscript.regexp") .Global = True If n = 3 Then .Pattern = "(.*www\.)?\-?([a-zA-Z0-9.-]+(" + Replace(Join(result, "|"), ".", "\.") + ")).*<" Else .Pattern = "([a-zA-Z0-9]+(" + Replace(Join(result, "|"), ".", "\.") + ")).*(@.+)" End If If .test(str) Then Select Case n Case 1 tach = .Execute(str)(0).submatches(0) Case 2 tach = .Execute(str)(0).submatches(2) Case 3 tach = .Execute(str)(0).submatches(1) End Select End If End With End Function
Bạn xem nhé.Em có file này nhờ anh/ chị giúp em công thức lọc ra tỉnh, quận huyện và phường/ thị xã với~
Em cám ơn!
Sub locten()
Dim arr, arr1, lr As Long, i As Long, a As Long, T, j As Integer, b As Integer, k As Byte
lr = Range("B" & Rows.Count).End(xlUp).Row
arr = Range("B2:B" & lr).Value
ReDim arr1(1 To UBound(arr, 1), 1 To 4)
For i = 1 To UBound(arr, 1)
T = Split("," & arr(i, 1), ",")
b = UBound(T)
a = a + 1
k = 0
For j = b To 1 Step -1
k = k + 1
If k > 4 Then arr1(a, 4) = arr1(a, 4) & "," & T(j)
arr1(a, k) = T(j)
Next j
Next i
Range("C2:F" & lr).ClearContents
Range("C2:F" & lr).Value = arr1
End Sub
Dùng thử hàm tự tạoEm có file này nhờ anh/ chị giúp em công thức lọc ra tỉnh, quận huyện và phường/ thị xã với~
Em cám ơn!
Function Tach(Nguon, STT)
Dim Mang
Mang = Split(StrReverse(Nguon), ",")
If STT <= UBound(Mang) + 1 Then
Tach = StrReverse(Mang(STT - 1))
End If
End Function
Dùng 2 cái nàyDùng thử hàm tự tạo
Mã:Function Tach(Nguon, STT) Dim Mang Mang = Split(StrReverse(Nguon), ",") If STT <= UBound(Mang) + 1 Then Tach = StrReverse(Mang(STT - 1)) End If End Function
Quen tay ý màDùng 2 cái này
StrReverse
sao không dùng.Ubound(mang)-stt