Sắp xếp dữ liệu theo ngày sinh bằng VBA trong Microsoft Excel
Trong bài viết này, chúng tôi sẽ tạo macro để sắp xếp dữ liệu trong trang tính theo ngày sinh và chúng tôi sẽ không xem xét năm khi sắp xếp dữ liệu.
Dữ liệu thô bao gồm hai cột, một cột chứa tên và cột thứ hai chứa ngày sinh.
Giải thích logic
Chúng tôi đã tạo một macro, “sorting_names_by_birthday” sẽ sắp xếp dữ liệu.
Trong macro này, trước tiên chúng ta chèn các công thức vào cột C nơi chúng ta tìm thấy sự khác biệt giữa ngày sinh và ngày đầu tiên trong năm sinh của họ. Sau đó, chúng tôi sắp xếp dữ liệu theo Tên để sắp xếp dữ liệu theo thứ tự bảng chữ cái để nếu hai ứng cử viên có cùng ngày sinh thì tên của họ sẽ xuất hiện theo thứ tự bảng chữ cái. Sau đó, chúng tôi sắp xếp dữ liệu bằng cách tính toán sự khác biệt theo thứ tự tăng dần để sắp xếp dữ liệu theo ngày sinh.
Sau khi sắp xếp dữ liệu, để xóa công thức khỏi cột C, hãy xóa toàn bộ cột C.
Để chạy macro, Nhấn Alt + F8 hoặc Chuyển đến tab Nhà phát triển> nhấp vào Macro.
Vui lòng theo dõi bên dưới để biết mã
Option Explicit Sub sorting_names_by_birthday() 'Disabling screen update Application.ScreenUpdating = False Dim Last_Row As Long 'Finding the last row Last_Row = ActiveCell.SpecialCells(xlCellTypeLastCell).Row Range("C16").Select 'Getting the days of the year 'Subtracting first date of the year from date of birthday ActiveCell.FormulaR1C1 = "=RC[-1]-DATE(YEAR(RC[-1]),1,1)" 'Dragging the formula Range("C16:C" & Last_Row).Select Selection.FillDown 'Sorting the data first by column A then by column C Range("A15").CurrentRegion.Sort _ key1:=Range("C15"), order1:=xlAscending, _ key2:=Range("A15"), order2:=xlAscending, _ Header:=xlYes 'Deleting the column C Columns("C").Delete Range("A15").Select End Sub
Nếu bạn thích blog này, hãy chia sẻ nó với bạn bè của bạn trên Facebook và Facebook.
Chúng tôi rất muốn nghe ý kiến từ bạn, hãy cho chúng tôi biết cách chúng tôi có thể cải thiện công việc của mình và làm cho nó tốt hơn cho bạn. Viết thư cho chúng tôi [email protected]