Mình không sắp xếp được file này. Các bạn chỉ giúp mình với.
Cô bé này, lại chỉ tầm bậy rồi. Ý người ta muốn làm sao cho 123hv13/5-3 được sắp xếp trước 123hv13/5-10, chứ nếu chỉ đơn giản như thế thì hỏi làm gì?! Cô bé đã thử chưa? Mấy cái có phần đầu giống nhau (123hv13/5-) sẽ được sắp xếp theo thứ tự phần đuôi là 10, 11, 13, 14 rồi mới đến 3, 4, 6, 9.bạn làm theo hướng dẫn nha
Bạn bôi đen vùng cần sắp xếp sau đó vào Data/ Sort/ hiện ra thẻ sort , trong mục Order bạn chọn A tới Z là xong
Cô bé này, lại chỉ tầm bậy rồi. Ý người ta muốn làm sao cho 123hv13/5-3 được sắp xếp trước 123hv13/5-10, chứ nếu chỉ đơn giản như thế thì hỏi làm gì?! Cô bé đã thử chưa? Mấy cái có phần đầu giống nhau (123hv13/5-) sẽ được sắp xếp theo thứ tự phần đuôi là 10, 11, 13, 14 rồi mới đến 3, 4, 6, 9.
Bài này dùng cột phụ nhéthì em nhìn mấy số đầu mà, suy nghĩ thực sự em không tìm ra hướng giải.
=LEFT(A4,FIND("-",A4))&REPT(1,RIGHT(A4,LEN(A4)-FIND("-",A4)))
Bài này dùng cột phụ nhé
Công thức trong cột phụ
Giờ Data > Sort bảng theo cột phụ bình thườngMã:=LEFT(A4,FIND("-",A4))&REPT(1,RIGHT(A4,LEN(A4)-FIND("-",A4)))
p/s để em tìm công thức, em sẽ làm ra, cảm ơn Anh DHN46 trợ giúp.
Đã dùng cột phụ thì dùng một cột hay hai cột cũng tốt; Cần làm một cột có đây.
1. Tại ô D4: =VALUE((LEFT(A4;3))&IF(VALUE(MID(A4;FIND("-";A4)+1;3))<=9;"0"&MID(A4;FIND("-";A4)+1;3);MID(A4;FIND("-";A4)+1;3)))
2. Sao chép kết quả Ô D4 xuống
3. Bôi đen vùng sắp xếp \ Data\sort\sort by\ColumnD\Ascending\OK
Ghi chú: Dù sao vẫn thích xếp số tự nhiên tăng dần, Dị ứng với xếp ký tự, không biết xếp ký tự có bị lỗi không nhỉ?
Có cách nào không dùng cột phụ không?
Để đơn giản người nhập nên quy ước nhập 123hv13/5-3 thành 123hv13/5-03; nhập cùng một định dạng: ssshv13/5-SS với S là số tự nhiên
File dung 1 cot phu
http://www.mediafire.com/?jls9r9vzdiweoh8
Nếu dữ liệu lớnMình không sắp xếp được file này. Các bạn chỉ giúp mình với.
Sub sort()
Dim i As Long, j As Long, mycell As Range
Dim tmparr(), item, arr(), TG
tmparr = Selection.Value
ReDim arr(1 To UBound(tmparr, 1), 1 To 2)
If Not IsArray(tmparr) Then Exit Sub
For Each item In tmparr
If Len(item) Then
i = i + 1
arr(i, 1) = Left(item, InStr(item, "-") - 1)
arr(i, 2) = Val(Right(item, Len(item) - InStr(item, "-")))
End If
Next
For i = 1 To UBound(arr, 1)
For j = i + 1 To UBound(arr, 1)
If arr(j, 2) < arr(i, 2) Then
TG = arr(i, 2): arr(i, 2) = arr(j, 2): arr(j, 2) = TG
TG = arr(i, 1): arr(i, 1) = arr(j, 1): arr(j, 1) = TG
End If
Next
Next
i = 0
Selection.ClearContents
For Each mycell In Selection
i = i + 1
mycell = arr(i, 1) & "-" & arr(i, 2)
Next
End Sub
hix nhìn phức tạp quá bạn oi, sao không dùng macro như bài #10hi hi, đã xong rồi, đúng yêu cầu đề bài
hix nhìn phức tạp quá bạn oi, sao không dùng macro như bài #10
thì do em hổng biết code nên với khổ vầy đó, thực ra không phức tạp cho lắm, chẳng qua nhìn vào bảng tính thì thao tác hơi nhiều thôi, dùng code thì cho chạy là được, nhưng em không hiểu bản chất code viết ý nghĩa như thế nào...!
Công thức cho cột phụ có thể là thế này cũng được (nếu cần thiết thì điều chỉnh số 2 và định dạng "00" cho phù hợp với thực tế):Bài này dùng cột phụ nhé
Công thức trong cột phụ
Giờ Data > Sort bảng theo cột phụ bình thườngMã:=LEFT(A4,FIND("-",A4))&REPT(1,RIGHT(A4,LEN(A4)-FIND("-",A4)))
=LEFT(A4,FIND("-",A4))&TEXT(MID(A4,FIND("-",A4)+1,[COLOR=#ff0000]2[/COLOR]),[COLOR=#0000cd]"00"[/COLOR])
Với bài này, ban đầu Dhn46 cũng khá bỡ ngỡ nhưng xin chia sẽ 1 chút: khi tìm hiểu dhn46 thấy nếu dùng Coutif(...,">"...) thì thấy ngay ra vấn đề => nếu biến đổi phần sau dấu "-" để có kết quả countif(..) hiểu thì việc sắp xếp sẽ thỏa, cái này cũng rất hay khi kết hợp trích lọc duy nhất có sắp xếp
Không hiểu sao bé nguyencanh160890 làm không ra?
Bài này theo mình thì dùng 2 cột phụthì do em hổng biết code nên với khổ vầy đó, thực ra không phức tạp cho lắm, chẳng qua nhìn vào bảng tính thì thao tác hơi nhiều thôi, dùng code thì cho chạy là được, nhưng em không hiểu bản chất code viết ý nghĩa như thế nào...!
Bài này theo mình thì dùng 2 cột phụ
Côt thứ nhất tách lấy 3 ký tự đầu
Cột thứ 2 lấy số nằm sau dấu "-"
Sau đó Sort 1 phát là xong
Giả sử A1 là 111241, công thức sẽ là:em làm ra rồi theo gợi ý của anh à,(ra rồi mà) à còn vụ này có người đố em , em loay hoay suốt 2 tiếng buổi trưa mà chưa ra, nhưng dùng hàm không ra mà phải làm 2 cột phụ mới ra, ví dụ 123hv13/5-111241 kết quả bằng 4
p/s đếm số 1 sau dấu "-". đau đầu quá...em làm công thức báo lỗi tùm lum.
=LEN(A1)-LEN(SUBSTITUTE(A1,1,REPT("",100)))