Trong Excel, chức năng Sort có thể giúp bạn sắp xếp ngày theo thứ tự tăng dần hoặc giảm dần khi bạn cần. Nhưng nếu bạn đã sắp xếp ngày và sau đó thêm ngày mới vào bảng, bạn sẽ cần phải sắp xếp lại toàn bộ. Có cách nào hiệu quả và nhanh chóng hơn để bạn tự động sắp xếp ngày khi nhập ngày mới vào trang tính hay không?
Trong bài viết ngày, chúng tôi sẽ hướng dẫn bạn cách tự động sắp xếp trang tính của bạn theo giá trị, ngày tháng và thứ tự bảng chữ cái với các công thức và mã VBA đơn giản.
Nội dung chính
Ví dụ: ngày gốc trong Cột A, công thức sau có thể giúp bạn tự động sắp xếp ngày hoặc bất kỳ chuỗi văn bản nào khác trong cột trợ giúp mới dựa trên cột mà bạn muốn sắp xếp, bạn có thể thực hiện theo các bước sau:
1. Nhập công thức bên dưới
= INDEX ($ A $ 2: $ A $ 15, MATCH (ROWS ($ A $ 2: A2), COUNTIF ($ A $ 2: $ A $ 15, "<=" & $ A $ 2: $ A $ 15), 0)) vào một ô trống bên cạnh cột ngày tháng của bạn, chẳng hạn như C2, sau đó 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 chốt điền xuống các ô bạn muốn sử dụng, xem ảnh chụp màn hình:
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.
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 và ngày ban đầu cũng đã được sắp xếp.
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:
Mã VBA sau có thể giúp bạn tự động sắp 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
Mã VBA: tự động sắp xếp khi ngày được nhập hoặc thay đổi:
Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice 20160606
On Error Resume Next
If Application.Intersect(Target, Application.Columns(1)) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
Range("A1").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
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 ô của riêng mình khi cầ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.
Thông thường, trong excel, bạn có thể áp dụng tính năng Sort để sắp xếp dữ liệu theo thứ tự bảng chữ cái theo cách thủ công, nhưng đôi khi, bạn có thể muốn tự động sắp xếp dữ liệu trong một cột. Ví dụ: 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 trong trang tính?
Để 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: = sort (A2: B, 1, TRUE) vào một ô trống nơi bạn muốn xác định kết quả sắp xếp, 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 số / giá mới vào cột này, bạn có thể giải quyết nó như thế nào? Ở đây tôi giới thiệu một macro VBA để giúp bạn tự động sắp xếp một cột cụ thể theo giá trị trong Excel.
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ở.
VBA: Tự động sắp xếp cột trong Excel
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("B:B")) Is Nothing Then
Range("B1").Sort Key1:=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à nó sẽ tự động sắp xếp 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 nhập số mới vào cột Price, bạn phải nhập số vào ô trống đầu tiên bên dưới số gốc. Nếu có các ô trống giữa số mới nhập và số gốc cũng như các ô trống giữa các số gốc, cột này sẽ không được sắp xếp tự động.
Hy vọng qua bài viết này, bạn đã biết cách tự động sắp sếp các dữ liệu trong bảng tính excel theo giá trị, ngày tháng và bảng chữ cái. Dưới đây là link đăng ký tham gia khóa học Tuyệt đỉnh Excel cho các bạn muốn nắm trọn kiến thức Excel từ A - Z:
Sau khóa học, các bạn sẽ có thể sử dụng Excel thành thạo, nắm vững 150+ hàm thông dụng, ứng dụng được kiến thức đã học vào việc xử lý, định dạng dữ liệu và làm báo cáo trên Excel. Khóa học được giảng dạy bởi chuyên gia tin học hàng đầu đã từng đào tạo cho nhân viên tại các tập đoàn lớn như Samsung, Cốc Cốc, TH True Milk, Vietinbank,… Hiện có 24000+ học viên đã đăng ký khóa học này tại Gitiho và gửi về hàng loạt đánh giá tích cực. Các bạn hãy đăng ký ngay để vừa được ưu đãi học phí, vừa được nhận quà tặng là ebook Excel cực hay nhé. Sau khi đăng ký các bạn có thể học không giới hạn, học mọi lúc mọi nơi vì khóa học có giá trị sử dụng trọn đời. Chúc các bạn thành công!
Ngoài ra, để không bỏ lỡ những mẹo và thủ thuật tin học văn phòng hữu ích khác, hãy theo dõi Gitiho thường xuyên để đón đọc các bài viết mới hàng tuần nhé.
Khóa học liên quan