In diesem Artikel erstellen wir ein Makro zum Sortieren der Daten im Blatt nach Geburtstag und berücksichtigen beim Sortieren der Daten nicht das Jahr.

Rohdaten bestehen aus zwei Spalten, eine enthält den Namen und die zweite Spalte enthält das Geburtsdatum.

RawData

Logische Erklärung

Wir haben ein Makro erstellt, „sorting_names_by_birthday“, das die Daten sortiert.

In diesem Makro fügen wir zuerst Formeln in die Spalte C ein, in denen wir den Unterschied zwischen dem Geburtsdatum und dem ersten Datum ihres Geburtsjahres finden. Anschließend sortieren wir die Daten nach Name, um die Daten in alphabetischer Reihenfolge zu sortieren. Wenn also zwei Kandidaten dasselbe Geburtsdatum haben, sollten ihre Namen in alphabetischer Reihenfolge angezeigt werden. Dann sortieren wir die Daten, indem wir die Differenz in aufsteigender Reihenfolge berechnen, um die Daten nach Geburtstag zu sortieren.

Löschen Sie nach dem Sortieren der Daten zum Löschen der Formeln aus der Spalte C die gesamte Spalte C.

Drücken Sie zum Ausführen des Makros Alt + F8 oder gehen Sie zur Registerkarte Entwickler und klicken Sie auf Makro.

ArrowAfterRunningMacro

Bitte folgen Sie unten für den Code

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

Wenn dir dieser Blog gefallen hat, teile ihn mit deinen Freunden auf Facebook und Facebook.

Wir würden gerne von Ihnen hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern und für Sie verbessern können. Schreiben Sie uns unter [email protected]