In diesem Artikel erstellen wir ein Makro zum Sortieren der Daten im Blatt nach Geburtstag und berücksichtigen das Jahr beim Sortieren der Daten nicht.
Rohdaten bestehen aus zwei Spalten, eine enthält den Namen und die zweite Spalte enthält das Geburtsdatum.
Logikerklärung
Wir haben ein Makro „sorting_names_by_birthday“ erstellt, das die Daten sortiert.
In diesem Makro fügen wir zunächst Formeln in die Spalte C ein, in denen wir die Differenz zwischen dem Geburtsdatum und dem ersten Datum ihres Geburtsjahres finden. Dann sortieren wir die Daten nach Name, um die Daten in alphabetischer Reihenfolge zu sortieren, sodass, wenn zwei Kandidaten das gleiche Geburtsdatum haben, ihre Namen in alphabetischer Reihenfolge erscheinen sollten. 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 Spalte C die gesamte Spalte C.
Um das Makro auszuführen, drücken Sie Alt + F8 oder gehen Sie zur Registerkarte Entwickler > klicken Sie auf Makro.
Bitte folgen Sie unten für den Code
Option Explicit Sub sorting_names_by_birthday() 'Bildschirmaktualisierung deaktivieren Application.ScreenUpdating = False Dim Last_Row As Long 'Finden der letzten Zeile Last_Row = ActiveCell.SpecialCells(xlCellTypeLastCell).Row Range("C16").Select 'Tage des Jahres abrufen' Subtrahieren des ersten Datums des Jahres vom Geburtstagsdatum ActiveCell.FormulaR1C1 = "=RC[-1]-DATE(YEAR(RC[-1]),1,1)" 'Ziehen der Formel Range("C16:C" & Last_Row).Select Selection.FillDown 'Sortieren der Daten zuerst nach Spalte A, dann nach Spalte C Range("A15").CurrentRegion.Sort _ key1:=Range("C15"), order1:=xlAscending, _ key2:=Range ("A15"), order2:=xlAscending, _ Header:=xlYes 'Löschen der Spalte C Columns("C").Delete Range("A15").Select End Sub
Wenn Ihnen dieser Blog gefallen hat, teilen Sie ihn mit Ihren Freunden auf Facebook. Außerdem können Sie uns auf Twitter und Facebook folgen.
Wir würden uns freuen, von Ihnen zu hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern und für Sie verbessern können. Schreiben Sie uns auf der E-Mail-Site