| home |  
  

   © 2005 by Friedel Schmidt •  E-Mail  •                      Top  

   | impressum | feedback | home |  


Inhaltsverzeichnis

Suchen

Links
  

Geburtstagssortierung
Versionen: Alle

Manchmal steht man vor dem Problem, eine Geburtstagsliste zu erstellen, aber keine Sortierung passt. Da Datumsangaben in Excel als serielle Zahl verarbeitet werden wird zwar eine Liste korrekt nach den darin enthaltenen Datumsangaben sortiert, also nach dem Alter - für eine Geburtstagsliste taugt das aber nichts. Abhilfe kann eine selbst gestrickte Sortierprozedur in VBA schaffen, die aber für Anfänger nicht so einfach zu realisieren ist. Leichter geht es mit einer oder mehreren Hilfsspalten - die man ja ausblenden oder nachher wieder löschen kann (letzteres sehe ich aber als wenig sinnvoll an…)

Die erste Abbildung dient nur zur Veranschaulichung. Hier sind lediglich die Zellen in Spalte C mit dem benutzerdefinierten Zahlenformat "MM.TT" versehen. Da dadurch außer der Optik nichts an den ursprünglichen Daten verändert wird ist dies für die gewünschte Sortierung unbrauchbar - also nicht von der Optik verwirren lassen…
 
  A B C
1      
2 Claudia 16.09.63 09.16.
3 Karl 21.02.77 02.21.
4 Helmut 19.11.85 11.19.
5 Else 22.05.90 05.22.
Formeln der Tabelle
C2 : =B2
C3 : =B3
C4 : =B4
C5 : =B5
 

Mit der Formel des nächsten Beispiels lässt sich die Geburtstagsliste einwandfrei sortieren. Das Datum wird in Text umgewandelt, dabei wird das Geburtsjahr einfach weggelassen und die Monatsangabe vor die Tagesangabe gestellt. Einer korrekten Sortierung nach dem Geburtstag steht nichts mehr im Weg:
 
  A B C
1      
2 Karl 21.02.77 02.21.
3 Else 22.05.90 05.22.
4 Claudia 16.09.63 09.16.
5 Helmut 19.11.85 11.19.
Formeln der Tabelle
C2 : =TEXT(B2;"MM.TT.")
C3 : =TEXT(B3;"MM.TT.")
C4 : =TEXT(B4;"MM.TT.")
C5 : =TEXT(B5;"MM.TT.")
 

Im nächsten Beispiel funktioniert die Sortierung genau so einwandfrei mit etwas anderen Formeln in der Hilfsspalte:
 
  A B C
1      
2 Karl 21.02.77 2,21
3 Else 22.05.90 5,22
4 Claudia 16.09.63 9,16
5 Helmut 19.11.85 11,19
Formeln der Tabelle
C2 : =MONAT(B2)+TAG(B2)/100
C3 : =MONAT(B3)+TAG(B3)/100
C4 : =MONAT(B4)&","&TAG(B4)
C5 : =MONAT(B5)&","&TAG(B5)
 

Zum Schluss noch eine Lösung zum Anzeigen des nächsten anstehenden Geburtstages:
(die Berechnung des Beispiels fand im September 2007 statt)
 
  A B C
1      
2 Helmut 19.11.85 19.11.07
3 Karl 21.02.77 21.02.08
4 Else 22.05.90 22.05.08
5 Claudia 16.09.63 16.09.08
Formeln der Tabelle
C2 : =WENN(DATUM(JAHR(HEUTE());MONAT(B2);TAG(B2))<HEUTE();DATUM(JAHR(HEUTE())+1;MONAT(B2);TAG(B2));
DATUM(JAHR(HEUTE());MONAT(B2);TAG(B2)))
C3 : =WENN(DATUM(JAHR(HEUTE());MONAT(B3);TAG(B3))<HEUTE();DATUM(JAHR(HEUTE())+1;MONAT(B3);TAG(B3));
DATUM(JAHR(HEUTE());MONAT(B3);TAG(B3)))
C4 : =WENN(DATUM(JAHR(HEUTE());MONAT(B4);TAG(B4))<HEUTE();DATUM(JAHR(HEUTE())+1;MONAT(B4);TAG(B4));
DATUM(JAHR(HEUTE());MONAT(B4);TAG(B4)))
C5 : =WENN(DATUM(JAHR(HEUTE());MONAT(B5);TAG(B5))<HEUTE();DATUM(JAHR(HEUTE())+1;MONAT(B5);TAG(B5));
DATUM(JAHR(HEUTE());MONAT(B5);TAG(B5)))
 

Zunächst wird geprüft ob der Geburtstag im aktuellen Jahr vor dem heutigen Datum liegt:
=WENN(DATUM(JAHR(HEUTE());MONAT(B2);TAG(B2))<HEUTE();

Ist das der Fall liegt der nächste Geburtstag im kommenden Jahr, zum Jahr des heutigen Tages wird 1 hinzuaddiert, Monat und Tag werden vom Original übernommen:
DATUM(JAHR(HEUTE())+1;MONAT(B2);TAG(B2));

Anderenfalls liegt der nächste Geburtstag im gleichen Jahr, das Jahr des heutigen Tages wird mit Monat und Tag der Originaldaten kombiniert:
DATUM(JAHR(HEUTE());MONAT(B2);TAG(B2)))




Die Darstellung der Excel Tabellen auf dieser Seite erfolgte mit    Excel Jeanie HTML  3.0    Download  


Geburtstage sortieren - mit VBA
Beispiele zur Altersberechnungen