ndhmoney686
Thành viên thường trực




- Tham gia
- 25/4/12
- Bài viết
- 376
- Được thích
- 104





toàn chuỗi ký tự ko à thì large gì đc chứMình đang dùng một hàm sắp xếp theo vần. Tự nhiên bây giờ phát hiện nó bị lỗi. Sau khi sắp xếp thường thì sẽ bị thiếu mất một mặt hàng. Mình có file mình họa đính kèm. Các bạn xem và giúp mình nhé.





toàn chuỗi ký tự ko à thì large gì đc chứ
sao đã dùng code ko dùng code hết luôn đi, nữa nạt nữa mỡ![]()
Mình đang dùng một hàm sắp xếp theo vần. Tự nhiên bây giờ phát hiện nó bị lỗi. Sau khi sắp xếp thường thì sẽ bị thiếu mất một mặt hàng. Mình có file mình họa đính kèm. Các bạn xem và giúp mình nhé.

thử cho đoạn này vào xem[GPECODE=vb]Dạ đúng là Em đang dùng code hàm tự tạo đó để lọc danh sách duy nhất. Hàm tự tạo đó rất tuyệt lọc rất nhanh. Nhưng kết quả còn thiếu 1 chút nữa là nó ko sắp xếp được theo thứ tự.
Cho nên Em làm thủ công 1 chút là đang dùng thêm cột phụ và dùng hàm để lọc sắp xếp thêm lần nữa cho ra kết quả theo vần Anh ạ




Dùng công thức này đi cho C2, ngắn gọn và chuẩn hơn và chỉ cần bấm Enter thui nhé
=IF(ROW(1:1)<COUNTA(Data)+1,INDEX(Data,MATCH(LARGE(INDEX(COUNTIF(Data,">="&Data),0),ROW(1:1)),INDEX(COUNTIF(Data,">="&Data),0),0)),"")
Nhưng lưu ý rằng công thức mảng kiểu này sẽ làm bảng tính rất chậm khi dữ liệu nhiều và chỉ sắp xếp tốt cho Tiếng Anh hoặc Tiếng Việt không dấu thui (Tiếng Việt có dấu - bạn sẽ thấy nó sắp xếp sai vần D và Đ ...vv)
Muốn khắc phục chắc chỉ có thể VBA
Anh ơi nếu chỉ sort cho khoảng 300 dòng thì chắc ko ảnh hưởng đến tốc độ file nhiều a nhỉ
công thức này nếu mà bị một dòng trống ở giữa thì ko sort đc hết dữ liệu a nhỉ.




thử cho đoạn này vào xem[GPECODE=vb]
Option Explicit
Sub GPE()
Dim Sarr(), Darr(), X%, Y%, Rarr%
With Sheets(1)
Rarr = .[a65000].End(xlUp).Row
Sarr = .Range("a2:A" & Rarr).Value
ReDim Darr(1 To Rarr - 1, 1 To 1)
For X = 1 To Rarr - 1
If Sarr(X, 1) <> "" Then
If Sarr(X, 1) <> 0 Then
Y = Y + 1
Darr(Y, 1) = Sarr(X, 1)
End If
End If
Next
.Range("c2:c" & Rarr).ClearContents
.Range("c2").Resize(Y, 1) = Darr()
End With
With Sheets(1).Sort
.SortFields.Clear
.SortFields.Add Key:=Range("c2:c" & Y), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SetRange Range("c2:c" & Y)
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
[/GPECODE]

xem mẫu củ thể mới biết, em định sort thế nàoNếu một file mà cần sort cho 3 vùng liệu có được ko Anh?




xem mẫu củ thể mới biết, em định sort thế nào
Mình đang dùng một hàm sắp xếp theo vần. Tự nhiên bây giờ phát hiện nó bị lỗi. Sau khi sắp xếp thường thì sẽ bị thiếu mất một mặt hàng. Mình có file mình họa đính kèm. Các bạn xem và giúp mình nhé.
=INDEX(Data;MATCH(SMALL(COUNTIF(Data;"<"&Data);ROWS($1:1));COUNTIF(Data;"<"&Data);0))
=IFERROR(INDEX(Data;MATCH(SMALL(COUNTIF(Data;"<"&Data);ROWS($1:1));COUNTIF(Data;"<"&Data);0));"")