Trong Excel, tính năng Sort có thể giúp bạn sắp xếp thứ tự tăng dần hoặc giảm dần của dữ liệu. Nhưng nếu sau đó thêm dữ liệu mới vào bảng, bạn sẽ cần phải sắp xếp lại toàn bộ. Vậy có cách nào hiệu quả hơn không?
Hôm nay, cùng Gitiho khám phá cách tự động sắp xếp trong Excel bằng công thức và VBA đơn giản, nhé!
Ví dụ: Chúng ta cần sắp xếp ngày tháng trong cột A theo thứ tự tăng dần.
1. Bạn điền công thức sau vào ô C2:
=INDEX($A$2:$A$15, MATCH(ROWS($A$2:A2), COUNTIF($A$2:$A$15, "<=" & $A$2:$A$15), 0))
Sau khi điền xong công thức, hãy nhấn tổ hợp phím Ctrl + Shift + Enter và bạn sẽ nhận được một dãy số, sau đó kéo công thức xuống các ô bạn muốn sử dụng.
Lưu ý : Trong công thức trên: A2: A15 là phạm vi ngày ban đầu của bạn mà bạn muốn tự động sắp xếp theo thứ tự tăng dần.
2. Sau đó, định dạng các số dưới dạng định dạng ngày tháng bằng cách nhấp vào Short Date từ danh sách thả xuống General trong tab Home.
3. Sau đó, các số thứ tự đã được chuyển đổi sang định dạng ngày, đồng thời chúng cũng được sắp xếp theo thứ tự tăng dần.
4. Từ bây giờ, khi bạn nhập ngày mới hoặc thay đổi ngày trong cột A, ngày trong cột C sẽ tự động được sắp xếp theo thứ tự tăng dần, xem ảnh chụp màn hình:
Xem thêm: Cách tạo ngày tháng tăng dần trong Excel cực nhanh chóng
Mã VBA sau có thể giúp bạn tự động xếp ngày trong cột ban đầu khi bạn nhập ngày mới hoặc thay đổi ngày khi bạn cần.
1. Chuyển đến trang tính mà bạn muốn tự động sắp xếp ngày khi bạn nhập hoặc thay đổi ngày.
2. Nhấp chuột phải vào tab trang tính và chọn View Code xem từ trình đơn ngữ cảnh. Trong cửa sổ Microsoft Visual Basic for Applications hiện ra, vui lòng sao chép và dán mã đoạn mã bên dưới vào cửa sổ Module trống:
Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice 20160606
On Error Resume Next
If Not Application.Intersect(Target, Me.Columns(1)) Is Nothing Then
If Target.Count = 1 Then
Me.Range("A1").Sort Key1:=Me.Range("A2"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End If
End If
End Sub
Lưu ý: Trong đoạn mã trên, ngày đã nhập sẽ được tự động sắp xếp trong cột A, bạn có thể thay đổi ô A1 và A2 thành các ô khác tùy theo bảng dữ liệu của bạn.
3. Từ bây giờ, khi bạn nhập ngày vào cột A, ngày sẽ tự động được sắp xếp theo thứ tự tăng dần.
Nếu có một số thay đổi hoặc dữ liệu mới được thêm vào trong Cột A, dữ liệu sẽ được sắp xếp tự động như hình minh họa sau. Làm thế nào bạn có thể đạt được công việc này?
Để tự động sắp xếp dữ liệu theo thứ tự bảng chữ cái trong một cột, vui lòng thực hiện như sau:
1. Nhập công thức này vào ô D2:
=SORT(A2:B, 1, TRUE)
Sau đó nhấn phím Enter , dữ liệu cụ thể đã được sắp xếp theo thứ tự tăng dần, xem ảnh chụp màn hình:
Lưu ý:
2. Từ bây giờ, khi bạn nhập dữ liệu mới hoặc thay đổi dữ liệu trong cột, dữ liệu sẽ được sắp xếp tự động, hãy xem ảnh chụp màn hình:
Ví dụ: Bạn có một bảng mua hàng như ảnh chụp màn hình bên trái được hiển thị. Bây giờ bạn muốn cột Giá được sắp xếp tự động khi bạn nhập giá mới vào cột này. Và macro VBA có thể giúp bạn.
Macro VBA này sẽ tự động sắp xếp tất cả dữ liệu trong một cột cụ thể ngay sau khi bạn nhập dữ liệu mới hoặc thay đổi giá trị trong cột trong Excel.
1. Bấm chuột phải vào tên trang tính hiện tại, sau đó bấm View Code từ menu chuột phải.
2. Trong hộp thoại mở Microsoft Visual Basic for Application, hãy dán mã macro VBA sau vào cửa sổ đang mở.
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Me.Range("B:B")) Is Nothing Then
Me.Range("B1").Sort Key1:=Me.Range("B2"), _
Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
End If
End Sub
Lưu ý: Trong đoạn mã VBA trên, B:B có nghĩa là mã sẽ tự động sắp xếp dữ liệu của Cột B, B1 là ô đầu tiên trong Cột B, B2 là ô thứ hai trong Cột B và bạn có thể thay đổi chúng dựa trên nhu cầu của mình.
3. Sau đó quay trở lại trang tính, khi bạn nhập một số mới vào cột Giá hoặc sửa đổi bất kỳ giá hiện có nào, cột Giá sẽ tự động được sắp xếp theo thứ tự tăng dần.
Lưu ý: Khi bạn nhập một số mới vào cột Price, hãy chắc chắn rằng bạn nhập nó vào ô trống ngay dưới số cuối cùng của bảng dữ liệu. Nếu có bất kỳ ô trống nào giữa số mới và số cũ, cột sẽ không được tự động sắp xếp.
Hy vọng qua bài viết này, bạn đã biết cách tự động sắp xếp trong Excel theo giá trị, ngày tháng và bảng chữ cái. Chúc bạn học tốt!
Khóa học phù hợp với bất kỳ ai đang muốn tìm hiểu lại Excel từ con số 0. Giáo án được Gitiho cùng giảng viên thiết kế phù hợp với công việc thực tế tại doanh nghiệp, bài tập thực hành xuyên suốt khóa kèm đáp án và hướng dẫn giải chi tiết. Tham khảo ngay bên dưới!