Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
784to788
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
784to788
784to788
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Teilweise unzutreffende Zellformatierung mit Einhe

Teilweise unzutreffende Zellformatierung mit Einhe
25.07.2006 22:55:23
reiner
Hallo Leute,
mit Hilfe einer Funktion „GetAlterInJahren(C54;$A$1)“ wird die Anzahl der vergangenen Jahre zwischen einem Startdatum und einem Enddatum ermittelt. In diesem Beispiel steht C54 für das Startdatum und ;$A$1 für das Enddatum. Die Einheit „Jahre“ wird über die Formatierung der Zelle hinzugefügt.
Hier können 3 Arten von Ergebnissen ermittelt werden: „0 Jahre“; „1 Jahre“; jede Zahl > „2 Jahre“. Mich stört hier das die Einheit immer „Jahre“ lautet selbst wenn es sich nur um 1 Jahr handelt.
Da die Einheit „Jahre“ automatisch hinzugefügt wird wäre eine Korrektur auf „Jahr“ unpraktisch.
Hat jemand einen Vorschlag wie mit einer WENN-Funktion und der eingefügten Funktion „GetAlterInJahren(C54;$A$1)“ bei einem Ergebnis von „0“ die Ergebniszelle leer bleibt, bei einem Ergebnis von „1“ die Einheit „Jahr“ und bei einem Ergebnis von „2“ (oder größer) die Einheit „Jahre“ eingefügt wird und somit auf die Zellformatierung mit „Jahre“ verzichtet werden kann?
Function GetAlterInJahren(ByVal datVon As Date, ByVal datBis As Date) As Integer '======von Sabine Konschak Softwarelösungen======================================= Dim intJahre As Integer Dim dat2 As Date Dim bolJahrestagVorbei As Boolean '---- Schaltjahre berücksichtigen-------------------------------- If Month(datVon) = 2 And Day(datVon) = 29 Then datVon = DateSerial(Year(datVon), 2, 28) End If If Month(datBis) = 2 And Day(datBis) = 29 Then datBis = DateSerial(Year(datBis), 2, 28) End If ' ---- Jahrestag bestimmen---------------------------------------- dat2 = DateSerial(Year(datBis), Month(datVon), Day(datVon)) '------ feststellen, ob der Jahrestag schon vorbei ist------------ bolJahrestagVorbei = dat2 <= datBis intJahre = DateDiff("yyyy", datVon, datBis) '------ Leider achtet DateDiff nicht darauf, ob die Jahre schon komplett vergangen sind If Not bolJahrestagVorbei Then intJahre = intJahre - 1 GetAlterInJahren = intJahre End Function
mfg
reiner

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Alter in Jahren
25.07.2006 23:02:22
{Boris}
Hi Reiner,
zunächst mal hast Du das Rad ein 2. mal erfunden, denn es gibt die Excelfunktion DATEDIF (bei xl 2000 noch nicht kommentiert), die exakt das Selbe macht wie Deine UDF.
Wenn Du mit dem Alter nicht weiterrechnen musst, kannst Du diese einfach Verkettung verwenden:
=DATEDIF(A1;A2;"Y")&" Jahr"&WENN(DATEDIF(A1;A2;"Y")1;"e";"")
Dabei gilt: Früheres Datum in A1, späteres in A2. Der Parameter "Y" gibt die Differenz in Jahren an. Es gibt auch noch mehr davon.
Grüße Boris
AW: Teilweise unzutreffende Zellformatierung mit E
25.07.2006 23:03:41
Josef
Hallo Reiner!
Geht doch.
Tabelle2
 ABCDE
114.03.198525.07.200621 Jahre  
202.05.200625.07.20060  
306.04.200525.07.20061 Jahr  
4     
5     
6Format:=[=1]#" Jahr";[>1]#" Jahre";Standard 
7     
Formeln der Tabelle
C1 : =GetAlterInJahren(A1;B1)
C2 : =GetAlterInJahren(A2;B2)
C3 : =GetAlterInJahren(A3;B3)
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Gruß Sepp
Anzeige
Dann aber auch noch die Null ...
25.07.2006 23:06:33
{Boris}
Hi Sepp,
[=1]#" Jahr";[&gt1]#" Jahre";0" Jahre"
;-)
Grüße Boris
AW: Dann aber auch noch die Null ...
25.07.2006 23:49:46
Josef
Hi Boris,
Die "Null" wollte Reiner gar nicht angezeigt haben.
[=0]"";[<>1]#" Jahre";#" Jahr"
Gruß Sepp

AW: Teilweise unzutreffende Zellformatierung mit Einhe
25.07.2006 23:05:38
Leo
Hi,
Zahlenformat:
[=1]Standard" Jahr";Standard" Jahre"
mfg Leo
Hallo Boris, Leo und Josef ich danke Euch
26.07.2006 11:09:24
reiner
vielen Dank für die zahlreichen Rückmeldungen.
mfg
reiner
Hallo Boris, Leo und Josef ich danke Euch
26.07.2006 11:09:44
reiner
vielen Dank für die zahlreichen Rückmeldungen.
mfg
reiner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige