Bạn chạy thử với functionVí dụ tại ô A1 chứa các giá trị sau:
M5; I6; M8; M6; M8; M6; M5; I6. Mình muốn chỉ giữ lại những giá trị xuất hiện duy nhất trong ô.
Mong các bạn giúp mình.
Function uniquefunc(chuoi As String, delimeter As String) As String
Dim mang, i
mang = Split(chuoi, delimeter)
For i = 0 To UBound(mang)
If InStr(1, delimeter & uniquefunc & delimeter, delimeter & Trim(mang(i)) & delimeter) = 0 Then uniquefunc = uniquefunc & delimeter & Trim(mang(i))
Next
If Left(uniquefunc, Len(delimeter)) = delimeter Then uniquefunc = Right(uniquefunc, Len(uniquefunc) - Len(delimeter))
End Function
Function UniqueString(ByVal Delimiter As String, ByVal str As String) As String
Dim dic As Object, aTmp
Set dic = CreateObject("Scripting.Dictionary")
For Each aTmp In Split(str, Delimiter)
dic.Item(aTmp) = 1
Next
If dic.Count Then UniqueString = Join(dic.Keys, Delimiter)
End Function
Gặp chuỗi này sao ta?Bạn chạy thử với function
Áp dụng: B1 = =uniquefunc(A1,";")
Trường hợp dưới xem ra chưa ổn?Bạn chạy thử với function
Áp dụng: B1 = =uniquefunc(A1,";")
Mã:Function uniquefunc(chuoi As String, delimeter As String) As String Dim mang, i mang = Split(chuoi, delimeter) For i = 0 To UBound(mang) If InStr(1, uniquefunc, Trim(mang(i))) = 0 Then uniquefunc = uniquefunc & delimeter & Trim(mang(i)) Next If Left(uniquefunc, Len(delimeter)) = delimeter Then uniquefunc = Right(uniquefunc, Len(uniquefunc) - Len(delimeter)) End Function
Mình cập nhật lại function, không biết là còn trường hợp nào nữa không.Gặp chuỗi này sao ta?
M50; I61; M82; M63; M8; M6; M5; I6
Mình cập nhật lại function, không biết là còn trường hợp nào nữa không.
Bài này tốt nhất là dùng dic
Xin lỗi mình nhầm.dic.Item(aTmp) = 1
Hiện tại mình dùng thấy ổn. Cảm ơn bạn rất nhiều!Mình cập nhật lại function, không biết là còn trường hợp nào nữa không.
Bài này tốt nhất là dùng dic