Sắp xếp chuỗi kí tự

Liên hệ QC

syquyen1987

Thành viên hoạt động
Tham gia
8/7/18
Bài viết
188
Được thích
43
Xin chào mọi người,
Mình có một vấn đề mà chưa giải quyết được mong mọi người giúp với.
Mình có các ô B2: B16 theo thứ tự có giá trị chuỗi từ HT1 đến HT15. Nhưng khi dùng code sau sắp xếp ngược lại (theo thứ tự từ Z đến A) để muốn có kết quả trả về từ HT15 đến HT1 như sau Range("B2:B16").Sort [B2], xlDescending, Header:=xlNo
Kết quả lại không được như mong muốn như sau:
HT9 , HT8 , HT7 , HT6 , HT5 , HT4 , HT3 , HT2 , HT14 , HT13 , HT12 , HT11 , HT10 , HT1

Có cách nào để sắp xếp như mong muốn không ạ (từ H15 đến H1), mong mọi người chỉ giúp với

Xin chân thành cám ơn
 
Xin chào mọi người,
Mình có một vấn đề mà chưa giải quyết được mong mọi người giúp với.
Mình có các ô B2: B16 theo thứ tự có giá trị chuỗi từ HT1 đến HT15. Nhưng khi dùng code sau sắp xếp ngược lại (theo thứ tự từ Z đến A) để muốn có kết quả trả về từ HT15 đến HT1 như sau Range("B2:B16").Sort [B2], xlDescending, Header:=xlNo
Kết quả lại không được như mong muốn như sau:
HT9 , HT8 , HT7 , HT6 , HT5 , HT4 , HT3 , HT2 , HT14 , HT13 , HT12 , HT11 , HT10 , HT1

Có cách nào để sắp xếp như mong muốn không ạ (từ H15 đến H1), mong mọi người chỉ giúp với

Xin chân thành cám ơn
Thì đánh số thứ tự cột A từ 1:15 rồi Sort cột A.
 
Xin chào mọi người,

Có cách nào để sắp xếp như mong muốn không ạ (từ H15 đến H1), mong mọi người chỉ giúp với

Xin chân thành cám ơn
Có thể làm "thô" như thế này, dùng cột phụ, sử dụng hàm =VALUE(MID(B2,3,4)) để chuyển HT1 thành 1, ..., HT15 thành 15, rồi sắp xếp theo cột phụ.
 
Xin chào mọi người,
Mình có một vấn đề mà chưa giải quyết được mong mọi người giúp với.
Mình có các ô B2: B16 theo thứ tự có giá trị chuỗi từ HT1 đến HT15. Nhưng khi dùng code sau sắp xếp ngược lại (theo thứ tự từ Z đến A) để muốn có kết quả trả về từ HT15 đến HT1 như sau Range("B2:B16").Sort [B2], xlDescending, Header:=xlNo
Kết quả lại không được như mong muốn như sau:
HT9 , HT8 , HT7 , HT6 , HT5 , HT4 , HT3 , HT2 , HT14 , HT13 , HT12 , HT11 , HT10 , HT1

Có cách nào để sắp xếp như mong muốn không ạ (từ H15 đến H1), mong mọi người chỉ giúp với

Xin chân thành cám ơn
Bạn thử:
PHP:
Sub abc()
    Dim i%
    With ActiveSheet
        For i = 2 To Cells(Rows.Count, 2).End(3).Row
            Cells(i, 3).FormulaR1C1 = "=RIGHT(RC[-1],LEN(RC[-1])-2)"
            Cells(i, 3).Value = Cells(i, 3).Value
        Next
        Range("B2:C16").Sort [C2], 2    'Z--->A
    End With
    Range("C2:C" & Range("B" & Rows.Count).End(xlUp).Row).ClearContents
End Sub
 
Lần chỉnh sửa cuối:
Xin chào mọi người,
Mình có một vấn đề mà chưa giải quyết được mong mọi người giúp với.
Mình có các ô B2: B16 theo thứ tự có giá trị chuỗi từ HT1 đến HT15. Nhưng khi dùng code sau sắp xếp ngược lại (theo thứ tự từ Z đến A) để muốn có kết quả trả về từ HT15 đến HT1 như sau Range("B2:B16").Sort [B2], xlDescending, Header:=xlNo
Kết quả lại không được như mong muốn như sau:
HT9 , HT8 , HT7 , HT6 , HT5 , HT4 , HT3 , HT2 , HT14 , HT13 , HT12 , HT11 , HT10 , HT1

Có cách nào để sắp xếp như mong muốn không ạ (từ H15 đến H1), mong mọi người chỉ giúp với

Xin chân thành cám ơn
Thay vì gõ HT1, HT2,...,HT9, HT10.... sao bạn không sửa thành HT01, HT02,..., HT09, HT10 <---- Đó mới là cách giải quyết tận gốc vấn đề
 
Xin chào mọi người,
Mình có một vấn đề mà chưa giải quyết được mong mọi người giúp với.
Mình có các ô B2: B16 theo thứ tự có giá trị chuỗi từ HT1 đến HT15. Nhưng khi dùng code sau sắp xếp ngược lại (theo thứ tự từ Z đến A) để muốn có kết quả trả về từ HT15 đến HT1 như sau Range("B2:B16").Sort [B2], xlDescending, Header:=xlNo
Kết quả lại không được như mong muốn như sau:
HT9 , HT8 , HT7 , HT6 , HT5 , HT4 , HT3 , HT2 , HT14 , HT13 , HT12 , HT11 , HT10 , HT1

Có cách nào để sắp xếp như mong muốn không ạ (từ H15 đến H1), mong mọi người chỉ giúp với

Xin chân thành cám ơn
Thử 1 cách khác:
Chọn B2, Format Cells ..................Chọn Custom, trong khung Type gán cái này vào "HT"000 >OK.
Fill B2 xuống, gõ 1 vào B2, gõ 2 vào B3, Chọn B2:B3 Fill B2 xuống, được kết quả HT001, HT002...v...v.....
Bây giờ Sort thoải mái.

Còn muốn 2 số sau thì bỏ bớt 1 số 0.
 
Thay vì gõ HT1, HT2,...,HT9, HT10.... sao bạn không sửa thành HT01, HT02,..., HT09, HT10 <---- Đó mới là cách giải quyết tận gốc vấn đề
Cám ơn bạn nhiều nhé, như cách bạn nói thì đã giải quyết được tận gốc vấn đề
Bài đã được tự động gộp:

Thì đánh số thứ tự cột A từ 1:15 rồi Sort cột A.
Không được bạn ạ, vì mình có nhiều chuỗi kí tự khác nữa như HT, NHT...
Mình đã giải quyết được vấn đề nhờ bạn ndu96081631 đã viết:

Thay vì gõ HT1, HT2,...,HT9, HT10.... sao bạn không sửa thành HT01, HT02,..., HT09, HT10 <---- Đó mới là cách giải quyết tận gốc vấn đề
Bài đã được tự động gộp:

Bạn thử:
PHP:
Sub abc()
    Dim i%
    With ActiveSheet
        For i = 2 To Cells(Rows.Count, 2).End(3).Row
            Cells(i, 3).FormulaR1C1 = "=RIGHT(RC[-1],LEN(RC[-1])-2)"
            Cells(i, 3).Value = Cells(i, 3).Value
        Next
        Range("B2:C16").Sort [C2], 2    'Z--->A
    End With
    Range("C2:C" & Range("B" & Rows.Count).End(xlUp).Row).ClearContents
End Sub

Không được bạn ạ, vì mình có nhiều chuỗi kí tự khác nữa như HT, NHT...
Mình đã giải quyết được vấn đề nhờ bạn ndu96081631 đã viết:

Thay vì gõ HT1, HT2,...,HT9, HT10.... sao bạn không sửa thành HT01, HT02,..., HT09, HT10 <---- Đó mới là cách giải quyết tận gốc vấn đề
 
Cám ơn bạn nhiều nhé, như cách bạn nói thì đã giải quyết được tận gốc vấn đề
Không được bạn ạ, vì mình có nhiều chuỗi kí tự khác nữa như HT, NHT...
Mình đã giải quyết được vấn đề nhờ bạn ndu96081631 đã viết:
......................................................................................
Đó mới là cách giải quyết tận gốc vấn đề
1/ Bạn không nên trách người giúp, bài 1 bạn nêu vầy "Mình có các ô B2: B16 theo thứ tự có giá trị chuỗi từ HT1 đến HT15", bạn hỏi vấn đề nào thì người giúp chỉ trả lời vấn đề đó, còn phát sinh là do bạn nêu không đầy đủ.

2/ Bạn nên rút kinh nghiệm cho lần hỏi sau để lường trước những thứ phát sinh và đưa ra đầy đủ các trường hợp xảy ra.
 
Lần chỉnh sửa cuối:
1/ Bạn không nên trách người giúp, bài 1 bạn nêu vầy "Mình có các ô B2: B16 theo thứ tự có giá trị chuỗi từ HT1 đến HT15", bạn hỏi vấn đề nào thì người giúp chỉ trả lời vấn đề đó, còn phát sinh là do bạn nêu không đầy đủ.

2/ Bạn nên rút kinh nghiệm cho lần hỏi sau để lường trước những thứ phát sinh và đưa ra đầy đủ các trường hợp sảy ra.
Mình xin lỗi nhé, mình không có ý đó. Lần sau mình sẽ cẩn thận hơn
 
Web KT
Back
Top Bottom