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.

RawData

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.

ArrowAfterRunningMacro

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]