Note: The other languages of the website are Google-translated. Back to English

Làm cách nào để tự động sắp xếp ngày khi ngày được nhập hoặc thay đổi trong Excel? 

Trong Excel, Sắp xếp chức năng 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ó không động, nếu bạn đã sắp xếp ngày và sau đó thêm ngày mới vào đó, bạn sẽ cần phải sắp xếp lại. Có cách nào tốt và nhanh chóng để bạn tự động sắp xếp ngày khi nhập ngày mới mỗi lần trong trang tính không?

Tự động sắp xếp ngày khi ngày được nhập hoặc thay đổi bằng công thức

Tự động sắp xếp ngày khi ngày được nhập hoặc thay đổi bằng mã VBA


mũi tên màu xanh bong bóng bên phải Tự động sắp xếp ngày khi ngày được nhập hoặc thay đổi bằng công thức

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 bạn muốn sắp xếp, vui lòng thực hiện như sau:

1. Nhập công thức này:

=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 của bạn, C2, ví dụ, rồi nhấn Ctrl + Shift + Enter các phím với nhau 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:

Chú thích: 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.

doc tự động sắp xếp theo ngày 1

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 Ngày ngắn hạn từ Tổng Quát danh sách thả xuống dưới Trang chủ tab, xem ảnh chụp màn hình:

doc tự động sắp xếp theo ngày 2

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, xem ảnh chụp màn hình:

doc tự động sắp xếp theo ngày 3

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:

doc tự động sắp xếp theo ngày 4


mũi tên màu xanh bong bóng bên phải Tự động sắp xếp ngày khi ngày được nhập hoặc thay đổi bằng mã VBA

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 Mã Chế độ xem từ menu ngữ cảnh, trong cửa sổ bật ra Microsoft Visual Basic cho các ứng dụng cửa sổ, vui lòng sao chép và dán đoạn mã sau vào chỗ trống Mô-đun cửa sổ, xem ảnh chụp màn hình:

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
    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

doc tự động sắp xếp theo ngày 6

Chú thích: 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 A1A2 đến các ô của riêng bạn khi bạn 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 tăng dần.


Các công cụ năng suất văn phòng tốt nhất

Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn

  • Tái sử dụng: Chèn nhanh công thức phức tạp, biểu đồ và bất cứ thứ gì bạn đã sử dụng trước đây; Mã hóa ô với mật khẩu; Tạo danh sách gửi thư và gửi email ...
  • Thanh siêu công thức (dễ dàng chỉnh sửa nhiều dòng văn bản và công thức); Bố cục đọc (dễ dàng đọc và chỉnh sửa số lượng ô lớn); Dán vào Dải ô đã Lọchữu ích. Cảm ơn !
  • Hợp nhất các ô / hàng / cột mà không làm mất dữ liệu; Nội dung phân chia ô; Kết hợp các hàng / cột trùng lặp... Ngăn chặn các ô trùng lặp; So sánh các dãyhữu ích. Cảm ơn !
  • Chọn trùng lặp hoặc duy nhất Hàng; Chọn hàng trống (tất cả các ô đều trống); Tìm siêu và Tìm mờ trong Nhiều Sổ làm việc; Chọn ngẫu nhiên ...
  • Bản sao chính xác Nhiều ô mà không thay đổi tham chiếu công thức; Tự động tạo tài liệu tham khảo sang Nhiều Trang tính; Chèn Bullets, Hộp kiểm và hơn thế nữa ...
  • Trích xuất văn bản, Thêm Văn bản, Xóa theo Vị trí, Xóa không gian; Tạo và In Tổng số phân trang; Chuyển đổi giữa nội dung ô và nhận xéthữu ích. Cảm ơn !
  • Siêu lọc (lưu và áp dụng các lược đồ lọc cho các trang tính khác); Sắp xếp nâng cao theo tháng / tuần / ngày, tần suất và hơn thế nữa; Bộ lọc đặc biệt bằng cách in đậm, in nghiêng ...
  • Kết hợp Workbook và WorkSheets; Hợp nhất các bảng dựa trên các cột chính; Chia dữ liệu thành nhiều trang tính; Chuyển đổi hàng loạt xls, xlsx và PDFhữu ích. Cảm ơn !
  • Hơn 300 tính năng mạnh mẽ. Hỗ trợ Office / Excel 2007-2021 và 365. Hỗ trợ tất cả các ngôn ngữ. Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn. Đầy đủ tính năng Dùng thử miễn phí 30 ngày. Bảo đảm hoàn lại tiền trong 60 ngày.
tab kte 201905

Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
officetab dưới cùng
Nhận xét (15)
Chưa có xếp hạng. Hãy là người đầu tiên xếp hạng!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Bạn đã quên đề cập đến công thức là mảng và bạn cần phải nhấn Ctrl + Shift + enter. May mắn thay, bạn đã có một ảnh chụp màn hình, nếu không trang của bạn sẽ rất lãng phí không gian mạng
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Điều gì sẽ xảy ra nếu có một ngày trùng lặp trong danh sách? Và tôi muốn cả hai số đều hiển thị.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào ryan,

Để sắp xếp ngày với những ngày trùng lặp, bạn nên áp dụng công thức sau:

=IFERROR(INDEX($A$2:$A$11,MATCH(ROWS($A$2:A2),COUNTIF($A$2:$A$11,"<="&$A$2:$A$11),0)),IF(ROWS($A$2:A2)<ROWS($A$2:$A$11),B3,""))

Hãy nhớ nhấn tổ hợp phím Shift + Ctrl + Enter.

Hy vọng nó có thể giúp bạn, cảm ơn bạn!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tuyệt vời :) Làm việc tốt
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Làm thế nào tôi có thể thực hiện cùng một phép tính sắp xếp này nhưng từ ngày mới nhất đến ngày cũ nhất? Hiện tại nó là Cũ nhất đến Mới nhất. Lật dấu <là không đủ và hơn thế nữa, tôi không đủ hiểu rõ về những gì nó đang làm. Ngoài ra, tôi nghĩ rằng những gì có thể đang xảy ra là excel tự động hoạt động từ đầu đến cuối gây khó khăn.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, Bo,

Để tự động sắp xếp ngày từ mới nhất đến cũ nhất, bạn chỉ cần thay đổi dấu <= thành> = trong công thức trên như sau:
=INDEX($A$2:$A$15,MATCH(ROWS($A$2:A2),COUNTIF($A$2:$A$15,">="&$A$2:$A$15),0))
Sau khi chèn công thức này, hãy nhớ nhấn tổ hợp phím Ctrl + Shift + Enter để có kết quả chính xác.
Hãy thử nó.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Ngoài các ngày trùng lặp, có cách nào để bao gồm nhiều cột dữ liệu khi nó sắp xếp không? Tôi cần nó bao gồm nhiều cột và sắp xếp tất cả chúng cùng với ngày hết hạn.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi phát điên một cuốn sổ đăng ký séc và nó hoạt động nhưng tôi muốn tìm cách làm cho mục nhập của tôi đi vào thứ tự ngày tháng. Bất kỳ trợ giúp sẽ được đánh giá cao. Tôi vẫn đang học excel.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Có công thức cụ thể nào để giữ cho các ô tuân theo ngày được sắp xếp không? Sẽ rất tốt nếu bạn sắp xếp theo ngày nhưng vẫn giữ được toàn bộ thông tin. Bất kì sự trợ giúp nào đều được đánh giá cao.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Với mã VBA, tôi đã sao chép và dán ở trên nhưng muốn các ngày trong cột F là các giá trị mà dữ liệu được sắp xếp. Tôi đã thay đổi các giá trị phạm vi thành F2 và F3500 (kích thước của bảng tính trong đó hàng 1 là tiêu đề), nhưng nó vẫn sắp xếp theo ngày trong cột A. Ai đó có thể giúp tôi không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, Ross,
Khi áp dụng mã cho cột F, bạn nên thay đổi một số tham chiếu theo nhu cầu của mình như mã dưới đây:
Private Sub Worksheet_Change (ByVal Target As Range)
'Cập nhật bởi Extendoffice 20160606
On Error Resume Next
Nếu Application.Intersect (Target, Application.Columns (6)) không có gì thì thoát Sub
If Target.Count> 1 Then Exit Sub
Range ("F1"). Sắp xếp Key1: = Range ("F2"), Order1: = xlAscending, Header: = xlYes, _
OrderCustom: = 1, MatchCase: = False, Orientation: = xlTopToBottom
End Sub

Hãy cố gắng, hy vọng nó có thể giúp bạn!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Mã VBA đó là vàng nguyên khối! Cảm ơn bạn! :-)
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, Điều gì sẽ xảy ra nếu tôi muốn thực hiện việc này với nhiều cột hoặc thậm chí có điểm bắt đầu mới trong cùng một cột? Tôi có thực hiện ngắt và sao chép lại mã VBA trong cùng một cửa sổ không?
Cảm ơn bạn.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, Đây là một công cụ tuyệt vời. Cảm ơn. Làm cách nào để áp dụng điều này cho nhiều cột trong cùng một tab? Tôi có thể áp dụng nó để bắt đầu lại sắp xếp theo ngày trong một ô mới của cùng một cột không? Tôi có chỉ cần dán lại mã VBA vào cùng một cửa sổ không?
Cảm ơn bạn.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Noname9, Bạn có khỏe không? Để đạt được mục tiêu của bạn bằng cách sử dụng mã VBA nằm ngoài khả năng của tôi. Nhưng tôi biết cách sử dụng các công thức để thực hiện thủ thuật Giả sử chúng ta có hai cột ngày tháng, giả sử A2: B7. Làm thế nào để sắp xếp những ngày này vào một cột mới? Hãy làm như sau.
Đầu tiên, chúng ta cần kết hợp hai cột ngày tháng thành một cột. Sao chép và dán công thức = INDEX ($ A $ 2: $ B $ 7, INT ((ROWS (D $ 2: D2) -1) / 2) + 1, MOD (ROWS (D $ 2: D2) -1,2) + 1) vào ô D2. Và kéo chốt điền xuống để kết hợp tất cả các ngày. Vui lòng xem ảnh chụp màn hình 1.
Sau đó, chúng tôi sẽ sắp xếp các ngày kết hợp. Sao chép và dán công thức = INDEX ($ D $ 2: $ D $ 13, MATCH (ROWS ($ D $ 2: D2), COUNTIF ($ D $ 2: $ D $ 13, "<=" & $ D $ 2: $ D $ 13) , 0)) thành F2. Và kéo chốt điền xuống để sắp xếp tất cả các ngày. Vui lòng xem ảnh chụp màn hình 2.
Hy vọng nó sẽ giúp ích. Chúc một ngày tốt lành. Trân trọng, Mandy
Không có bình luận nào được đăng ở đây
Để lại ý kiến ​​của bạn
Đăng với tư cách khách
×
Đánh giá bài viết này:
0   Nhân vật
Các vị trí được đề xuất

Kết nối với chúng tôi

Bản quyền © 2009 - www.extendoffice.com. | Đã đăng ký Bản quyền. cung cấp bởi ExtendOffice. | BẢN ĐỒ CHI NHÁNH
Microsoft và logo Office là các nhãn hiệu hoặc nhãn hiệu đã đăng ký của Microsoft Corporation tại Hoa Kỳ và / hoặc các quốc gia khác.
Được bảo vệ bởi Sectigo SSL