Chức năng sort của Excel bị giới hạn với sort trong phạm vi 3 cột. Trong hầu hết các trường hợp, sort theo 3 cột là đủ nhưng đôi khi bạn cần sort nhiều hơn 3 cột dữ liệu. Chiêu này sẽ giúp bạn vượt qua hạn chế này.
Với ví dụ sau, chúng tôi giả sử bạn có các cột dữ liệu liên quan với nhau A, B, C, D và E, và bạn muốn sort dữ liệu này đầu tiên theo cột A, tiếp theo là cột B, kế đến là cột C, tiếp nữa là cột D và cuối cùng là cột E.
Để làm điều này, bạn sort lần lượt theo thứ tự ngược: sort theo cột cuối cùng trước và tiếp theo tuần tự ngược đến cột đầu tiên. Chọn các cột từ A đến E, sau đó chọn Data ➝ Sort. Chọn để sort theo thứ tự cột C đầu tiên, tiếp theo là đến cột D và sau đó đến cột E. Nhấn vào sort. Bây giờ chọn các cột từ A đến E và chọn Data ➝ Sort. Lúc này, sort theo thứ tự cột A trước rồi mới đến cột B. Click sort và mọi thứ sẽ được sắp xếp theo thứ tự.
Excel đã sort theo 5 cột thay vì 3 cột. Nếu bạn muốn Excel tự động làm điều này, bạn có thể sử dụng một macro mà sẽ sort theo vùng chọn và giả định rằng dữ liệu của bạn có các tiêu đề cột được xác định và định dạng ở hàng đầu tiên của vùng chọn. Nếu các tiêu đề được in đậm, Excel sẽ cho biết chúng là các tiêu đề và sẽ không sort chúng. Thay vào đó, nó sẽ sort cột đầu tiên bên trái trước rồi mới tới cột bên phải cho đến tối đa là 256 cột.
Đoạn code macro bạn cần sử dụng phải được đặt trong một module chuẩn. Để làm điều này, bạn chọn Tools ➝ Macro ➝ Visual Basic Editor (Hoặc nhấn Alt+F11), sau đó chọn Insert ➝ Module và gõ đoạn code sau vào:
PHP Code:
Sub SortByX( )
Dim i As Long
For i = Selection.Columns.Count To 1 Step –1
Selection.Sort Key1:=Selection.Cells(2, i), _
Order1:=xlAscending, Header:=xlGuess, Orientation:=xlTopToBottom
Next i
End Sub
Để quay lại excel, bạn đóng cửa sổ code này lại hoặc nhấn Alt+ Q. Ngay khi bạn dán đoạn code này vào, bạn đã có thể thực hiện được việc sort này: Tô chọn vùng cần sort, kể cả tiêu đề, rồi chạy code.