Alter berechnen (bezogen auf Kalenderjahr)
Eine häufige Anforderung in Exceltabellen ist die Berechnung des Alters, oder die Berechnung der Dauer
einer Mitgliedschaft.
Hierzu habe ich ein kleines Makro geschrieben. Näheres zu der hier verwendeten Funktion DateDiff.
Sub jahre()
Dim r%
' Berechnet das Alter oder die Dauer einer Mitgliedschaft in vollen Jahren
' Klaus-Dieter Oppermann
For r = 2 To Range("A65536").End(xlUp).Row
Cells(r, 2) = DateDiff("yyyy", Format(Cells(r, 1), "DD.MM.YYYY"), Now)
Next r
End Sub
|
Geburtsdatum |
Alter |
01.01.1983 |
20 |
01.01.1990 |
13 |
01.01.2000 |
3 |
02.07.1905 |
98 |
02.12.1991 |
12 |
03.06.1994 |
9 |
03.11.1992 |
11 |
04.04.1989 |
14 |
04.09.1987 |
16 |
Alter berechnen (bezogen auf Stichtag)
Für den Fall, dass die Berechnung auf der Basis des Kalenderjahres zu ungenau ist, hier
ein Lösungsansatz, der diese Berechnung, bezogen auf den aktuellen Tag als Stichtag, genau ausführt.
Sub jahre_genau()
Dim z%, r%, sj%
' Berechnet einen Zeitraum, zum Beispiel das Alter
' bezogen auf den aktuellen Tag als Stichtag
' Klaus-Dieter Oppermann
On Error Resume Next ' Fehler durch leere Zellen überspringen
z = Range("A65536").End(xlUp).Row ' Letzte Zeile ermitteln
For r = 2 To z ' Schleifenstart für Berechnung
sj = 0 ' Variable für Schaltage auf Null
' Anzahl der Schalttage ermitteln
For s = Format(Cells(r, 1), "yyyy") To _
Format(Now(), "yyyy") ' Schleifenstart
If s Mod 4 = 0 Then ' wenn Jahreszahl durch vier teilbar ...
sj = sj + 1 ' ... dann Variable hochzählen
End If ' Ende der Bedingung
Next s ' Ende der Schleife (s)
' Anzahl der Jahre berechnen und ausgeben
Cells(r, 2) = Int((DateDiff("d", Format(Cells(r, 1), _
"DD.MM.YYYY"), Now) - sj) / 365) ' Anzahl der Tage minus Schalttage durch 365
Next r ' Ende der Schleife (r)
End Sub
Code eingefügt mit: Excel Code Jeanie
Geburtsdatum |
Alter |
01.01.1983 |
20 |
01.01.1990 |
13 |
01.01.2000 |
3 |
02.07.1905 |
97 |
02.12.1991 |
11 |
03.06.1994 |
8 |
03.11.1992 |
10 |
04.04.1989 |
13 |
04.09.1987 |
15 |
25.02.1981 |
22 |
26.02.1981 |
22 |
27.02.1981 |
21 |
|
|
|
= Stichtag |
|