=SORT(A2:C7,3,-1) trả về bảng A2:C7 được sắp xếp theo cột thứ ba, doanh số, từ lớn đến nhỏ. Bảng gốc giữ nguyên; bản sao đã sắp xếp trả tràn từ ô chứa công thức và tự sắp xếp lại khi một con số thay đổi. Đổi C7 thành 300 và Finn sẽ lên đầu.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Name | Region | Sales | Name | Region | Sales | |
| 2 | Ann | North | 120 | Cara | North | 200 | |
| 3 | Ben | South | 80 | Dan | East | 150 | |
| 4 | Cara | North | 200 | Ann | North | 120 | |
| 5 | Dan | East | 150 | Eve | South | 95 | |
| 6 | Eve | South | 95 | Ben | South | 80 | |
| 7 | Finn | North | 60 | Finn | North | 60 |
Cú pháp hàm SORT
=SORT(array, [sort_index], [sort_order], [by_col])
arraylà vùng cần sắp xếp và trả về.sort_indexlà số thứ tự của cột trongarraydùng để sắp xếp. Mặc định là 1.sort_orderlà 1 để sắp xếp tăng dần (mặc định) hoặc -1 để giảm dần.by_collà FALSE (mặc định) để sắp xếp các hàng, TRUE để sắp xếp các cột từ trái sang phải.
SORT và SORTBY cần Excel 2021, Excel 2024 hoặc Microsoft 365; các phiên bản cũ hơn hiện #NAME?. Google Sheets có cả hai hàm, dù hàm SORT ở đó nhận số cột và TRUE hoặc FALSE theo từng cặp.
Thứ tự tăng dần đặt số lên trước, rồi đến văn bản từ A đến Z, rồi FALSE và TRUE. Văn bản được so sánh không phân biệt chữ hoa chữ thường. Ô trống trong array trả về 0 trong kết quả.
Cách sắp xếp theo ABC trong Excel
Để sắp xếp lại một danh sách ngay tại chỗ, bấm vào ô bất kỳ trong đó rồi chọn Data > Sort A to Z (hoặc Z to A). Nếu danh sách có các cột liền kề, Excel sắp xếp cả bảng để mỗi hàng vẫn đi cùng nhau. Dùng Data > Sort khi cần sắp xếp theo nhiều cột hoặc theo một danh sách tùy chỉnh.
Để giữ thứ tự gốc và có một bản sao theo ABC tự cập nhật, dùng SORT mà không cần đối số nào khác:
| A | B | C | |
|---|---|---|---|
| 1 | Name | A to Z | |
| 2 | Mia | Ann | |
| 3 | Ben | Ben | |
| 4 | Zoe | Cara | |
| 5 | Ann | Dan | |
| 6 | Leo | Leo | |
| 7 | Cara | Mia | |
| 8 | Dan | Zoe |
Gõ Abe vào A3 và tên này hiện lên đầu. =SORT(A2:A8,,-1) cho thứ tự từ Z đến A; hai dấu phẩy để bỏ qua sort_index. Để sắp xếp theo ABC một danh sách không lặp, hãy sắp xếp kết quả của UNIQUE: =SORT(UNIQUE(A2:A8)) (xem UNIQUE).
SORTBY: sắp xếp theo một cột không được trả về
SORT chỉ sắp xếp được theo một cột của chính vùng mà nó trả về. SORTBY nhận khóa sắp xếp là một vùng riêng, nên bạn có thể chỉ trả về tên, xếp theo doanh số:
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Name | Region | Sales | By sales | |
| 2 | Ann | North | 120 | Cara | |
| 3 | Ben | South | 80 | Dan | |
| 4 | Cara | North | 200 | Ann | |
| 5 | Dan | East | 150 | Eve | |
| 6 | Eve | South | 95 | Ben | |
| 7 | Finn | North | 60 | Finn |
Kết quả là Cara, Dan, Ann, Eve, Ben, Finn. Cú pháp là =SORTBY(array, by_array1, [sort_order1], [by_array2, sort_order2], ...). Mỗi by_array phải có số hàng bằng array, nếu không SORTBY trả về #VALUE!.
Để lấy top 3, hãy lấy các hàng đầu tiên của kết quả: =TAKE(SORTBY(A2:A7,C2:C7,-1),3) trả về Cara, Dan và Ann. TAKE cần Microsoft 365 hoặc Excel 2024; trong Excel 2021 dùng =INDEX(SORTBY(A2:A7,C2:C7,-1),SEQUENCE(3)).
Sắp xếp theo nhiều cột
Đưa cho SORTBY một cặp khóa và thứ tự cho mỗi cấp. Công thức này sắp xếp theo khu vực từ A đến Z, rồi trong mỗi khu vực theo doanh số từ cao xuống thấp:
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Name | Region | Sales | Name | Region | Sales | |
| 2 | Ann | North | 120 | Dan | East | 150 | |
| 3 | Ben | South | 80 | Cara | North | 200 | |
| 4 | Cara | North | 200 | Ann | North | 120 | |
| 5 | Dan | East | 150 | Finn | North | 60 | |
| 6 | Eve | South | 95 | Eve | South | 95 | |
| 7 | Finn | North | 60 | Ben | South | 80 |
East đứng đầu, rồi đến ba hàng North theo thứ tự Cara (200), Ann (120) và Finn (60), rồi đến South. SORT cũng làm được như vậy với mảng số cột và mảng thứ tự, dù SORTBY dễ đọc hơn:
=SORT(A2:C7,{2,3},{1,-1})
Sắp xếp theo thứ tự tùy chỉnh
Thứ tự ABC không phải lúc nào cũng là thứ tự bạn muốn. Để sắp xếp các khu vực theo North, East, South, hãy đổi mỗi khu vực thành vị trí của nó trong danh sách đó bằng MATCH rồi sắp xếp theo các vị trí:
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Name | Region | Sales | Name | Region | Sales | |
| 2 | Ann | North | 120 | Ann | North | 120 | |
| 3 | Ben | South | 80 | Cara | North | 200 | |
| 4 | Cara | North | 200 | Finn | North | 60 | |
| 5 | Dan | East | 150 | Dan | East | 150 | |
| 6 | Eve | South | 95 | Ben | South | 80 | |
| 7 | Finn | North | 60 | Eve | South | 95 |
MATCH trả về 1 cho North, 2 cho East và 3 cho South, và SORTBY sắp xếp theo các số đó. Các hàng có cùng khóa giữ nguyên thứ tự ban đầu, nên các hàng North vẫn là Ann, Cara, Finn. Cùng mẹo này giúp sắp xếp tháng hoặc thứ trong tuần theo tên: liệt kê chúng theo thứ tự lịch bên trong MATCH. Khu vực không có trong danh sách sẽ nhận #N/A từ MATCH; hãy dùng IFERROR(MATCH(B2:B7,{"North","East","South"},0),99) làm khóa để đưa những hàng đó xuống cuối.
Luyện tập: tên xếp theo doanh số
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Name | Region | Sales | By sales | |
| 2 | Ann | North | 120 | ||
| 3 | Ben | South | 80 | ||
| 4 | Cara | North | 200 | ||
| 5 | Dan | East | 150 | ||
| 6 | Eve | South | 95 | ||
| 7 | Finn | North | 60 |
Đến lượt bạn: Ở E2, chỉ trả về tên, xếp theo doanh số từ cao xuống thấp.
Hàm SORT hay nút Sort
Cả hai đều sắp xếp, nhưng làm những việc khác nhau:
| Data > Sort | SORT và SORTBY | |
|---|---|---|
| Thay đổi bảng gốc | Có | Không, kết quả nằm ở các ô mới |
| Cập nhật khi dữ liệu thay đổi | Không, phải sắp xếp lại | Có |
| Dùng được trong Excel 2019 trở về trước | Có | Không |
| Sửa được từng ô trong kết quả | Có | Không, đó là một công thức |
| Bọc được trong công thức khác | Không | Có, ví dụ =TAKE(SORT(A2:C7,3,-1),3) |
Dùng nút bấm để sắp xếp gọn một bảng một lần. Dùng hàm cho báo cáo hoặc dashboard phải luôn được sắp xếp khi dữ liệu thay đổi. Nếu các ô bên dưới hoặc bên phải công thức không trống, hàm hiện #SPILL! thay vì danh sách đã sắp xếp; xóa các ô đó là danh sách xuất hiện (xem lỗi #SPILL!).
Câu hỏi thường gặp
Làm sao để sắp xếp dữ liệu bằng công thức trong Excel?
Dùng SORT: =SORT(A2:C7,3,-1) trả về A2:C7 được sắp xếp theo cột thứ ba, giá trị lớn nhất lên đầu. Bỏ hai đối số cuối, =SORT(A2:A8), để sắp xếp theo cột đầu tiên từ nhỏ đến lớn, hoặc từ A đến Z với văn bản.
SORT và SORTBY khác nhau thế nào?
SORT sắp xếp theo một cột của chính vùng mà nó trả về, chọn bằng số thứ tự cột. SORTBY sắp xếp theo vùng bất kỳ bạn đưa vào, kể cả vùng không được trả về: =SORTBY(A2:A7,C2:C7,-1) chỉ trả về tên, xếp theo doanh số. SORTBY cũng nhận trực tiếp nhiều khóa sắp xếp.
Làm sao để sắp xếp danh sách theo ABC trong Excel?
Chọn một ô trong danh sách rồi bấm Data > Sort A to Z để sắp xếp lại ngay tại chỗ. Để giữ bản gốc và có một bản sao đã sắp xếp tự cập nhật, gõ =SORT(A2:A8) vào một ô trống; dùng =SORT(A2:A8,,-1) để xếp từ Z đến A.
Làm sao để sắp xếp theo hai cột bằng công thức?
Đưa cho SORTBY hai cặp khóa và thứ tự: =SORTBY(A2:C7,B2:B7,1,C2:C7,-1) sắp xếp theo khu vực từ A đến Z và, trong mỗi khu vực, theo doanh số từ cao xuống thấp.
Những phiên bản Excel nào có SORT và SORTBY?
Excel 2021, Excel 2024 và Microsoft 365. Trong Excel 2019 trở về trước, chúng hiện #NAME?, và bạn sắp xếp bằng nút Sort ở thẻ Data.