linhmuc_kt
Thành viên mới
- Tham gia
- 6/5/14
- Bài viết
- 3
- Được thích
- 0
không được bạn ah. Mà sao lại thêm GPE vào, mình muốn để y nguyên như vậy và sắp xếp thôi
Nếu các mã chỉ có dạng mCn trong đó m là số, C là ký tự từ A đến E hoặc "", n là 1 chữ số hoặc "" thì ta có thể convert mã thành số = m*100 + (ASC(C)-ASC("A")+1) *10 + n (trường hợp C hay n="" coi là 0). Copy các số này vào cột Y để sort, cuối cùng xóa cột Y đi.Không phải sếp như vậy bạn ơi, làm như của bạn thì 11A lại sếp sau 119, 30A lại sếp sau số 300 mấy chục rồi. ý mình muốn 11A sếp ngay sau 11 luôn kìa, 30A sếp sau 30, 30B sếp sau 30A.
Function cn(s As String) As Long
Dim i As Integer
Dim c As String
Dim k As Integer
Dim s1 As String, s2 As String, s3 As String
s1 = s
s2 = ""
s3 = ""
For i = 65 To 69
c = Chr(i)
k = InStr(s, c)
If k > 0 Then
s1 = Left(s, k - 1)
s2 = c
s3 = Right(s, Len(s) - k)
GoTo a
End If
Next
a:
kq = CLng(s1) * 100
If s2 <> "" Then kq = kq + (Asc(s2) - 64) * 10
If s3 <> "" Then kq = kq + CLng(s3)
cn = kq
End Function
Sub sapxep()
n = Range("A10000").End(xlUp).Row
For i = 2 To n
Range("Y" & i) = cn(Range("C" & i))
Next
Range("A2:Y" & n).Sort key1:=Range("Y2:Y" & n), order1:=xlAscending, header:=xlNo
Range("Y:Y").ClearContents
End Sub
Lọc số cần đưa vào để Sort, hình như anh chưa xem kỹ dữ liệu, còn có số sau alpha nữa, ví dụ 244A1, 47B1, ...Cách tạo giá trị để sort:
- Xét ký tự cuối cùng, nếu là alpha thì tách nó ra. Nếu là numeric thì giữ trọn chuỗi. Như vậy thì chỉ còn lại số
- Đem số cộng cho một số rất lớn (1000000). Mục đích là để cho chúng thẳng hàng (dùng hàm text cũng được)
- Nối trở lại vào ký tự cuối.
=(1000000+IF(ISNUMBER(VALUE(RIGHT(A1,1))),A1,LEFT(A1,LEN(A1)-1))) & RIGHT(A1,1)
Thế này chắc là được:Lọc số cần đưa vào để Sort, hình như anh chưa xem kỹ dữ liệu, còn có số sau alpha nữa, ví dụ 244A1, 47B1, ...
Có lẽ cần thêm 1 bước xử lý nữa.
=IF(ISERROR(VALUE(MID(C2,LEN(C2)-1,1))),IF(LEN(C2)>1,RIGHT("000000"&C2,5),RIGHT("000000"&C2&"00",5)),IF(ISERROR(VALUE(RIGHT(C2))),RIGHT("000000"&C2&"0",5),RIGHT("000000"&C2&"00",5)))
Lọc số cần đưa vào để Sort, hình như anh chưa xem kỹ dữ liệu, còn có số sau alpha nữa, ví dụ 244A1, 47B1, ...
Có lẽ cần thêm 1 bước xử lý nữa.
Hơn nữa chủ thớt này cũng "biến" đâu mất rồi. Còn lại "ta với ta".Đúng vậy, có thêm thắt gì nữa thì hoàn toàn trật lất. Dữ liệu phức tạp thì dùng hàm tự chế cho xong.
Tôi lười xem file lắm (thật sự là tôi tránh vi rút, máy tôi có rất nhiều dữ liệu mật, bị chôm thì tôi mất việc).
Chủ thớt diễn tả như thế nào tôi làm thế ấy (cả 2 bài #1 và #5 đề diễn tả như vậy). Chơi cho vui thôi chứ theo kinh nghiệm diễn đàn này, 95% các chủ thớt không diễn tả đúng yêu cầu. Hơn 3/4 chủ thớt xem kết quả xong mới biết mình chưa nắm vững yêu cầu.