Microsoft Excel

Das Portal zum Thema Excel-Formeln

Gruppe: Datum/Zeit

Beitrag: Sortierung einer Liste nach Geburtstagen

Aufgabe
Eine Datumsliste soll unabhängig vom Jahr nach Geburtstagen sortiert werden.
Außerdem soll die Liste mit dem aktuellen Datum beginnen.

Lösung
Datumsspalte: A

in Spalte B steht

=DATUM(DATUM(;MONAT(A1);TAG(A1))< DATUM(;MONAT(HEUTE());TAG(HEUTE()));MONAT(A1);TAG(A1))

Diese Formel nach unten kopieren.
Nach dieser Hilfsspalte kann nun sortiert werden

Falls die Liste mit dem 01.01. anfangen soll, genügt
=MONAT(A1)+TAG(A1)/50
oder
=TEXT(A1;"MTT")

Auf Anregung von Otto: das Geburtstags-Alter erhältst Du mit
=DATEDIF(A1;HEUTE()-1;"y")+1

Obiger Sortiervorgang hat den Nachteil, dass er bei Erweiterungen der Liste jedesmal aufs Neue durchgeführt werden muß.
Nachfolgend wird die Geburtstagsliste ab 01.01. automatisch generiert.
Geburtstage in Spalte A / Namen in Spalte B

in Zelle C2:
{=WENN(ANZAHL(C$1:C1)=ANZAHL(A:A);"";INDEX(A:A;VERGLEICH(KKLEINSTE(WENN(A$1:A$100<>"";MONAT(A$1:A$100)+TAG(A$1:A$100)/50+ZEILE($1:$100)/1000);ZEILE(A1));MONAT(A$1:A$100)+TAG(A$1:A$100)/50+ZEILE($1:$100)/1000;0)))}

in Zelle D2:
{=INDEX(B:B;KKLEINSTE(WENN(A$1:A$100=C2;ZEILE($1:$100));ZÄHLENWENN(C$2:C2;C2)))}

beide runterkopieren

..... und beginnend mit dem aktuellen Datum (Franz Pölt) in C2:
{=WENN(ANZAHL(C$1:C1)=ANZAHL(A:A);"";INDEX(A:A;VERGLEICH(KKLEINSTE(WENN(A$1:A$100<>"";REST((TEXT(A$1:A$100;"TT.MM.")&0)-(TEXT(HEUTE();"TT.MM.")&0)+0;366)*1000+JAHR(HEUTE())-JAHR(A$1:A$100));ZEILE(A1));WENN(A$1:A$100<>"";REST((TEXT(A$1:A$100;"TT.MM.")&0)-(TEXT(HEUTE();"TT.MM.")&0)+0;366)*1000+JAHR(HEUTE())-JAHR(A$1:A$100));0)))}