Hàm Tự động sắp xếp bổ trợ Chế độ Sort linh hoạt cho Excel

Blue Softs Liên hệ QC

HeSanbi

0 + Giao động -> Vũ Trụ
Tham gia
24/2/13
Bài viết
1,752
Được thích
2,218
Giới tính
Nam
Hôm nay tôi lại chia sẻ cho các bạn các Hàm UDF được viết bằng VBA, nhằm mục đích để sắp xếp tự động thay vì phải điều chỉnh bằng tay ở chế độ sắp xếp.

Có phải các bạn rất khó khăn trong việc thực hiện sắp xếp với chế độ sort của Excel, hay bạn phải dùng tay thực hiện sắp xếp quá nhiều lần, đừng lo lắng, chính vì đó hôm nay tôi đã viết hàm sắp xếp tự động bổ trợ cho chế độ Sort này. Giúp các bạn đỡ nhọc hơn rất nhiều.
Khi các bạn điều chỉnh bằng tay chế độ sort quá phức tạp thì các bạn hãy yên tâm đã có hàm dưới đây giúp các bạn tự động hóa hoàn toàn mà không cần phải thực hiện thao tác tay lần nào nữa.

Ảnh minh họa cho chế độ Sort tay:


Annotation 2021-05-15 193111.jpg



HÀM UDF S_SortA SẮP XẾP TỰ ĐỘNG

Mục tiêu đạt được:

  1. Tự động hoàn toàn. Không phải thực hiện bằng tay. Gõ một hàm duy nhất.
  2. Tự động loại bỏ vùng trống không cần sắp xếp khi chọn mảng.
  3. Dùng hàm nên cài đặt thông số sắp xếp rất nhanh.
  4. Code đã được tối ưu, nên không chiếm dụng tài nguyên máy tính.

Hướng dẫn sử dụng hàm:

=S_SortA(Cells,Lines,SortLeftToRight,MatchCase,Header,color,NaturalStarting,NaturalFactor,DefaultFontColor,DefaultBackColor,title)

Vị tríTham sốKiểuChức năng
1​
CellsVùng ôNhận vùng cần sắp xếp
2​
LinesSố cột hoặc Mảng các cộtNếu nhập số âm thì sắp xếp giảm dần, bằng 0 sx tất cả
3​
SortLeftToRightCó/KhôngSắp xếp từ trái sang phải
4​
MatchCaseCó/KhôngSắp xếp có phân biệt hoa thường
5​
HeaderCó/KhôngVùng có đầu đề
6​
colorSốMàu, Nếu đặt màu nhỏ hơn 0 thì không tô màu
7​
NaturalStartingSốVị trí bắt đầu phân màu
8​
NaturalFactorSốTỉ lệ phân màu
9​
DefaultFontColorSốMàu phông chữ mặc định
10​
DefaultBackColorSốMàu nền mặc đinh

*** Phần chưa phát triển:
  1. Hiện tại phần làm nổi bật phần đã Sắp xếp bằng cách tô màu chưa được phát triển, vì vậy tham số thứ 6 đến 10 không cần nhập.
  2. Sắp xếp màu phông, ....


Ví dụ viết hàm vào bảng tính:

1. Sắp xếp mảng A2:Z10000 với các phân tầng là tất cả cột, lớn dần
=S_SortA(A2:Z10000, 0, FALSE)
2. Sắp xếp mảng A2:Z10000 với các phân tầng là tất cả cột, từ sau ra trước
=S_SortA(A2:Z10000, -99999, FALSE)
3. Sắp xếp mảng A2:Z10000 với cột thứ 3, lớn dần thì để 3, nhỏ dần thì để -3
=S_SortA(A2:Z10000, 3, FALSE)
4. Sắp xếp mảng A2:Z10000 với các phân tầng là 1, 3, 5, 7 (thứ tự cột), lớn dần
=S_SortA(A2:Z10000, {1, 3, 5, 7}, FALSE)
5. Sắp xếp mảng A2:Z10000 với các phân tầng là 8, 3, 5, 4 (thứ tự cột), lớn dần
=S_SortA(A2:Z10000, {8, 3, 5, 4}, FALSE)
6. Sắp xếp mảng A2:Z10000 với các phân tầng là -8, -3, -5, -4 (thứ tự cột), giảm dần
=S_SortA(A2:Z10000, {-8, -3, -5, -4}, FALSE)

Nếu Sắp xếp Custom Orders thì gõ Order ngăn cách bởi dấu bằng (=) vào trong dấu ngoặc kép:
=S_SortA(A2:Z10000, {-8, -3, -5, "-4=Mon,Tue,Wed,...."}, FALSE)

Chắc rằng các bạn chưa biết custom orders là gì?
Nó dùng để định nghĩa lại thứ tự sắp xếp.
Như Thứ trong tiếng anh, nếu các bạn không định nghĩa thứ tự các thứ thì nó sẽ sắp xếp sai.
Thứ trong tiếng Việt cũng vậy, ví dụ custom order: Hai,Ba,Tư,Năm,Sáu,Bảy,Chủ Nhật
Phương thức sort của excel không thể sắp xếp tiếng Việt chính vì vậy hãy sử dụng custom orders
.


Hàm còn được chỉnh sửa và nâng cấp, nếu các bạn quan tâm hãy ấn theo dõi bài viết.

Các bạn có thể tham khảo thêm hàm sắp xếp mảng khác:

Các bạn muốn học VBA nhanh nhất có thể hãy tham khảo tool hỗ trợ lập trình VBA:

Sau khi tham khảo các bạn hãy để lại lời bình, có thể là “rất hữu ích” hoặc “không hữu ích”.
 

File đính kèm

  • S_ESort_Color.xlsm
    264 KB · Đọc: 18
Lần chỉnh sửa cuối:
Top Bottom