Mục lục
Hướng dẫn cho biết cách sử dụng hàm SORT để sắp xếp các mảng dữ liệu một cách linh hoạt. Bạn sẽ học một công thức để sắp xếp theo thứ tự bảng chữ cái trong Excel, sắp xếp các số theo thứ tự tăng dần hoặc giảm dần, sắp xếp theo nhiều cột, v.v.
Chức năng Sắp xếp đã có từ lâu. Nhưng với sự ra đời của mảng động trong Excel 365, đã xuất hiện một cách đơn giản đến kinh ngạc để sắp xếp theo công thức. Cái hay của phương pháp này là kết quả tự động cập nhật khi dữ liệu nguồn thay đổi.
Hàm SORT trong Excel
Hàm SORT trong Excel sắp xếp nội dung của một mảng hoặc phạm vi theo cột hoặc hàng, theo thứ tự tăng dần hoặc giảm dần.
SORT thuộc nhóm Hàm mảng động. Kết quả là một mảng động tự động tràn sang các ô lân cận theo chiều dọc hoặc chiều ngang, tùy thuộc vào hình dạng của mảng nguồn.
Cú pháp của hàm SORT như sau:
SORT(mảng, [sort_index ], [thứ_tự_sắp_xếp], [theo_col])Trong đó:
Mảng (bắt buộc) - là một mảng các giá trị hoặc một dải ô cần sắp xếp. Đây có thể là bất kỳ giá trị nào bao gồm văn bản, số, ngày tháng, thời gian, v.v.
Chỉ_số_sắp_xếp (tùy chọn) - một số nguyên cho biết cần sắp xếp theo cột hoặc hàng nào. Nếu bỏ qua, chỉ mục mặc định 1 sẽ được sử dụng.
Sắp_xếp (tùy chọn) - xác định thứ tự sắp xếp:
- 1 hoặc bỏ qua (mặc định) - thứ tự tăng dần , tức là từcông thức (tệp .xlsx) nhỏ nhất đến lớn nhất
- -1 - thứ tự giảm dần, tức là từ lớn nhất đến nhỏ nhất
By_col (tùy chọn) - một giá trị logic cho biết hướng sắp xếp:
- SAI hoặc bị bỏ qua (mặc định) - sắp xếp theo hàng. Bạn sẽ sử dụng tùy chọn này hầu hết thời gian.
- TRUE - sắp xếp theo cột. Sử dụng tùy chọn này nếu dữ liệu của bạn được sắp xếp theo chiều ngang trong các cột như trong ví dụ này.
Hàm SORT Excel - mẹo và lưu ý
SORT là một hàm mảng động mới và do đó nó có một số điểm cụ thể mà bạn cần lưu ý:
- Hiện tại, hàm SORT chỉ khả dụng trong Microsoft 365 và Excel 2021. Excel 2019, Excel 2016 không hỗ trợ công thức mảng động nên hàm SORT không có sẵn trong các phiên bản này.
- Nếu mảng được trả về bởi công thức SORT là kết quả cuối cùng (nghĩa là không được chuyển sang hàm khác), Excel sẽ tự động tạo một phạm vi có kích thước phù hợp và điền vào đó các giá trị đã sắp xếp. Vì vậy, hãy chắc chắn rằng bạn luôn có đủ các ô trống phía dưới hoặc/và bên phải của ô mà bạn nhập công thức, nếu không sẽ xảy ra lỗi #SPILL.
- Kết quả cập nhật động khi dữ liệu nguồn thay đổi. Tuy nhiên, mảng được cung cấp cho công thức không tự động mở rộng để bao gồm các mục nhập mới được thêm bên ngoài mảng được tham chiếu. Để bao gồm các mục như vậy, bạn cần cập nhật tham chiếu mảng trong công thức của mình hoặcchuyển đổi phạm vi nguồn thành một bảng như minh họa trong ví dụ này hoặc tạo một phạm vi được đặt tên động.
Công thức Sắp xếp Excel cơ bản
Ví dụ này hiển thị một công thức cơ bản để sắp xếp dữ liệu trong Excel theo thứ tự tăng dần và giảm dần.
Giả sử dữ liệu của bạn được sắp xếp theo thứ tự abc như trong ảnh chụp màn hình bên dưới. Bạn đang muốn sắp xếp các số trong cột B mà không phá vỡ hoặc trộn lẫn dữ liệu.
Công thức sắp xếp theo thứ tự tăng dần
Để sắp xếp các giá trị trong cột B từ nhỏ nhất đến lớn nhất, đây là công thức nên sử dụng:
=SORT(A2:B8, 2, 1)
Trong đó:
- A2:B8 là mảng nguồn
- 2 là số cột cần sắp xếp theo
- 1 là thứ tự sắp xếp tăng dần
Vì dữ liệu của chúng ta được sắp xếp theo hàng, đối số cuối cùng có thể được bỏ qua để mặc định là FALSE - sắp xếp theo hàng.
Chỉ cần nhập công thức vào bất kỳ ô trống nào (trong trường hợp của chúng tôi là D2), nhấn Enter và kết quả sẽ tự động tràn vào D2:E8.
Công thức sắp xếp theo thứ tự giảm dần
Để sắp xếp dữ liệu giảm dần, tức là từ lớn nhất đến nhỏ nhất, hãy đặt đối số sort_order thành -1 như sau:
=SORT(A2:B8, 2, -1)
Nhập công thức vào ô trên cùng bên trái của phạm vi đích và bạn sẽ nhận được kết quả sau:
Theo cách tương tự, bạn có thể sắp xếp các giá trị văn bản theo thứ tự bảng chữ cái từ A đến Z hoặc từ Z đến A.
Cách sắp xếp dữ liệu trong Excel bằng f ormula
Các ví dụ dưới đây cho thấy một vài cách sử dụng điển hình của hàm SORT trong Excelvà một vài thứ không tầm thường.
SẮP XẾP Excel theo cột
Khi bạn sắp xếp dữ liệu trong Excel, phần lớn bạn thay đổi thứ tự các hàng. Nhưng khi dữ liệu của bạn được sắp xếp theo chiều ngang với các hàng chứa nhãn và các cột chứa bản ghi, bạn có thể cần sắp xếp từ trái sang phải thay vì từ trên xuống dưới.
Để sắp xếp theo cột trong Excel, hãy đặt by_col đối số thành TRUE. Trong trường hợp này, sort_index sẽ đại diện cho một hàng, không phải cột.
Ví dụ: để sắp xếp dữ liệu bên dưới theo Số lượng. từ cao nhất đến thấp nhất, sử dụng công thức sau:
=SORT(B1:H2, 2, 1, TRUE)
Trong đó:
- B1:H2 là dữ liệu nguồn cần sắp xếp
- 2 là chỉ số sắp xếp, vì chúng tôi đang sắp xếp các số ở hàng thứ hai
- -1 biểu thị thứ tự sắp xếp giảm dần
- TRUE có nghĩa là sắp xếp cột, không phải hàng
Sắp xếp theo nhiều cột theo thứ tự khác nhau (sắp xếp đa cấp)
Khi làm việc với các mô hình dữ liệu phức tạp, bạn có thể thường cần sắp xếp theo nhiều cấp. Điều đó có thể được thực hiện với một công thức? Vâng, dễ dàng! Việc bạn làm là cung cấp các hằng số mảng cho các đối số sort_index và sort_order .
Ví dụ: để sắp xếp dữ liệu dưới đây trước theo Vùng (cột A) từ A đến Z, rồi theo Số lượng . (cột C) từ nhỏ nhất đến lớn nhất, đặt các đối số sau:
- Mảng là dữ liệu trong A2:C13.
- Sort_index là hằng số mảng {1,3}, vì đầu tiên chúng ta sắp xếp theo Vùng (thứ nhấtcột), rồi theo Số lượng . (Cột thứ 3).
- Thứ_tự_sắp_xếp là hằng số mảng {1,-1}, vì cột đầu tiên sẽ được sắp xếp theo thứ tự tăng dần và cột thứ 3 theo thứ tự giảm dần.
- By_col bị bỏ qua vì chúng tôi sắp xếp các hàng, đây là mặc định.
Kết hợp các đối số lại với nhau, chúng tôi nhận được công thức sau:
=SORT(A2:C13, {1,3}, {1,-1})
Và nó hoạt động hoàn hảo! Các giá trị văn bản trong cột đầu tiên được sắp xếp theo thứ tự bảng chữ cái và các số trong cột thứ ba từ lớn nhất đến nhỏ nhất:
Sắp xếp và lọc trong Excel
Trong trường hợp khi bạn muốn lọc dữ liệu theo một số tiêu chí và sắp xếp đầu ra theo thứ tự, hãy sử dụng đồng thời các hàm SORT và FILTER:
SORT(FILTER(array, criteria_range= criteria) , [sort_index], [sort_order], [by_col])Hàm FILTER nhận một mảng các giá trị dựa trên tiêu chí bạn xác định và chuyển mảng đó tới đối số đầu tiên của SORT.
Điều tuyệt vời nhất về công thức này là nó cũng đưa ra kết quả dưới dạng phạm vi tràn động mà bạn không cần phải nhấn Ctrl + Shift + Enter hoặc đoán xem có bao nhiêu ô để sao chép nó vào. Như thường lệ, bạn nhập công thức vào ô trên cùng và nhấn phím Enter.
Ví dụ: chúng tôi sẽ trích xuất các mục có số lượng bằng hoặc lớn hơn 30 (>=30) từ nguồn dữ liệu trong A2:B9 và sắp xếp kết quả theo thứ tự tăng dần.
Đối với điều này, trước tiên chúng tôi thiết lập điều kiện, chẳng hạn như trongô E2 như trong hình bên dưới. Sau đó, xây dựng công thức SẮP XẾP trong Excel của chúng ta theo cách này:
=SORT(FILTER(A2:B9, B2:B9>=E2), 2)
Ngoài mảng do hàm FILTER tạo ra, chúng ta chỉ xác định sort_index lập luận (cột 2). Hai đối số còn lại được bỏ qua vì các giá trị mặc định hoạt động chính xác như chúng ta cần (sắp xếp tăng dần, theo hàng).
Lấy N giá trị lớn nhất hoặc nhỏ nhất và sắp xếp kết quả
Khi phân tích số lượng lớn thông tin nếu có, thường cần phải trích xuất một số giá trị hàng đầu nhất định. Có thể không chỉ giải nén mà còn sắp xếp chúng theo thứ tự mong muốn. Và lý tưởng nhất là chọn cột nào để đưa vào kết quả. Nghe có vẻ phức tạp? Không phải với các hàm mảng động mới!
Đây là công thức chung:
INDEX(SORT(…), SEQUENCE( n), { column1_to_return, column2_to_return, …})Trong đó n là số giá trị bạn muốn trả về.
Từ tập dữ liệu bên dưới, giả sử bạn muốn nhận danh sách top 3 dựa trên các số trong cột C.
Để hoàn thành, trước tiên bạn sắp xếp mảng A2:C13 theo cột thứ 3 theo thứ tự giảm dần:
SORT(A2:C13, 3, -1)
Sau đó, lồng công thức trên vào đối số ( mảng ) đầu tiên của hàm INDEX để mảng được sắp xếp từ cao nhất đến nhỏ nhất.
Đối với ( row_num) thứ hai ), cho biết có bao nhiêu hàng cần trả về, hãy tạo các số tuần tự được yêu cầu bằng cách sử dụng hàm SEQUENCE. Nhưchúng tôi cần 3 giá trị hàng đầu, chúng tôi sử dụng SEQUENCE(3), giống như cung cấp hằng số mảng dọc {1;2;3} trực tiếp trong công thức.
Đối với giá trị thứ ba ( col_num ), xác định số lượng cột sẽ trả về, cung cấp số cột ở dạng hằng số mảng ngang. Chúng tôi muốn trả về cột B và C, vì vậy chúng tôi sử dụng mảng {2,3}.
Cuối cùng, chúng tôi nhận được công thức sau:
=INDEX(SORT(A2:C13, 3, -1), SEQUENCE(3), {2,3})
Và kết quả là chính xác kết quả chúng tôi muốn:
Để trả về 3 giá trị dưới cùng , chỉ cần sắp xếp dữ liệu gốc từ nhỏ nhất đến lớn nhất. Đối với điều này, hãy thay đổi đối số sort_order từ -1 thành 1:
=INDEX(SORT(A2:C13, 3, 1), SEQUENCE(3), {2,3})
Trả về một giá trị được sắp xếp ở một vị trí cụ thể
Nhìn từ một góc độ khác, nếu bạn chỉ muốn trả về một vị trí sắp xếp cụ thể thì sao? Giả sử, chỉ bản ghi thứ 1, chỉ bản ghi thứ 2 hoặc chỉ bản ghi thứ 3 trong danh sách được sắp xếp? Để hoàn thành, hãy sử dụng phiên bản đơn giản hóa của công thức INDEX SORT đã thảo luận ở trên:
INDEX(SORT(…), n, { column1_to_return, column2_to_return, …})Trong đó n là vị trí quan tâm.
Ví dụ: để lấy một vị trí cụ thể từ trên cùng (nghĩa là từ dữ liệu được sắp xếp giảm dần), hãy sử dụng công thức này :
=INDEX(SORT(A2:C13, 3, -1), F1, {2,3})
Để lấy một vị trí cụ thể từ dưới cùng (tức là từ dữ liệu được sắp xếp tăng dần), hãy sử dụng vị trí này:
=INDEX(SORT(A2:C13, 3, 1), I1, {2,3})
Trong đó A2: C13 là dữ liệu nguồn, F1 là vị trí từ trên xuống, I1 là vị trí từdưới cùng và {2,3} là các cột được trả về.
Sử dụng bảng Excel để lấy mảng sắp xếp để tự động mở rộng
Như bạn đã biết , mảng đã sắp xếp sẽ tự động cập nhật khi bạn thực hiện bất kỳ thay đổi nào đối với dữ liệu gốc. Đây là hành vi tiêu chuẩn của tất cả các hàm mảng động, bao gồm SORT. Tuy nhiên, khi bạn thêm các mục mới bên ngoài mảng được tham chiếu, chúng sẽ không tự động được đưa vào công thức. Nếu bạn muốn công thức của mình đáp ứng với những thay đổi như vậy, hãy chuyển đổi phạm vi nguồn thành bảng Excel có đầy đủ chức năng và sử dụng các tham chiếu có cấu trúc trong công thức của bạn.
Để xem cách hoạt động của công thức này trong thực tế, vui lòng xem xét những điều sau ví dụ.
Giả sử bạn sử dụng công thức Excel SORT bên dưới để sắp xếp các giá trị trong phạm vi A2:B8 theo thứ tự bảng chữ cái:
=SORT(A2:B8, 1, 1)
Sau đó, bạn nhập một mục mới vào hàng 9… và thất vọng khi thấy rằng mục nhập mới được thêm nằm ngoài phạm vi tràn:
Bây giờ, hãy chuyển đổi phạm vi nguồn thành một bảng. Đối với điều này, chỉ cần chọn phạm vi của bạn bao gồm các tiêu đề cột (A1:B8) và nhấn Ctrl + T . Khi xây dựng công thức của bạn, hãy chọn phạm vi nguồn bằng chuột và tên bảng sẽ tự động được chèn vào công thức (điều này được gọi là tham chiếu có cấu trúc):
=SORT(Table1, 1, 1)
Khi bạn nhập một mục mới ngay bên dưới hàng cuối cùng, bảng sẽ tự động mở rộng và dữ liệu mới sẽ được đưa vào phạm vi tràncủa công thức SORT:
Hàm SORT của Excel không hoạt động
Nếu công thức SORT của bạn dẫn đến lỗi, rất có thể là do các nguyên nhân sau.
Lỗi #NAME: phiên bản Excel cũ hơn
SORT là một chức năng mới và chỉ hoạt động trong Excel 365 và Excel 2021. Trong các phiên bản cũ hơn không hỗ trợ chức năng này, lỗi #NAME? xảy ra lỗi.
Lỗi #SPILL: thứ gì đó chặn phạm vi tràn
Nếu một hoặc nhiều ô trong phạm vi tràn không hoàn toàn trống hoặc được hợp nhất, lỗi #SPILL! lỗi được hiển thị. Để khắc phục, chỉ cần loại bỏ tắc nghẽn. Để biết thêm thông tin, vui lòng xem Excel #SPILL! lỗi - ý nghĩa và cách khắc phục.
Lỗi #VALUE: đối số không hợp lệ
Bất cứ khi nào bạn gặp lỗi #VALUE! lỗi, hãy kiểm tra các đối số sort_index và sort_order . Sort_index không được vượt quá số lượng cột là mảng và sort_order phải là 1 (tăng dần) hoặc -1 (giảm dần).
Lỗi #REF: sổ làm việc nguồn bị đóng
Vì các mảng động hỗ trợ hạn chế tham chiếu giữa các sổ làm việc nên hàm SORT yêu cầu cả hai tập tin được mở. Nếu sổ làm việc nguồn bị đóng, một công thức sẽ đưa ra lỗi #REF! lỗi. Để khắc phục, chỉ cần mở tệp được tham chiếu.
Đó là cách sắp xếp dữ liệu trong Excel bằng công thức. Tôi cảm ơn bạn đã đọc và hy vọng sẽ gặp bạn trên blog của chúng tôi vào tuần tới!
Sách bài tập thực hành để tải xuống
Sắp xếp trong Excel với