Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
536to540
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
536to540
536to540
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datum Abfragen

Datum Abfragen
29.12.2004 08:25:54
Werner
Hallo Leute!
Mein Problem ist folgendes. Ich habe einen Datums Bereich in zwei Feldern stehen, also z.b. vom 1.10.2003 in A1 bis zum 31.3.2004 in A2. Ich möchte dann in verschiedenen anderen Feldern abfragen können, ob in diesem Datumsbereich etwa der August dabei ist, in einem anderen Feld interessiert mich der Januar usw. Ist der entsprechende Monat enthalten soll die Funktion die entsprechende Anzahl der Tage dieses Monats liefern, nicht nur 30 oder 31, sondern auch die Vorgabe berücksichtigt (es könnte ja in A1 auch der 20.10.2003 stehen), ist der Monat nicht dabei soll die Funktion den Wert Null liefern. Das passt dann zu meinen weiteren Berechnungen. Im Fall des Februar dürfte dann wohl das Schaltjahr von selbst berücksichtigt sein, wenn mit der Funktion Tag() gearbeitet wird.
ich hoffe es hat jeder verstanden was ich will, und es wäre super wenn mir jemand helfen kann. danke schon mal im voraus!
Viele Grüße!

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum Abfragen
29.12.2004 12:22:33
Matthias
Hallo Werner,
folgende Funktion hilft da weiter:
Public Function AnzTage(Start As Date, Ende As Date, Monat As Integer, jahr As Integer) As Integer Dim sM As Date Dim eM As Date sM = DateSerial(jahr, Monat, 1) eM = DateSerial(jahr, Monat + 1, 1) - 1 If Ende < Start Then AnzTage = 0: Exit Function End If If sM < Start Then If eM < Start Then AnzTage = 0: Exit Function ElseIf eM <= Ende Then AnzTage = eM - Start + 1: Exit Function Else AnzTage = Ende - Start + 1: Exit Function End If ElseIf sM >= Start And sM <= Ende Then If eM <= Ende Then AnzTage = eM - sM + 1: Exit Function Else AnzTage = Ende - sM + 1: Exit Function End If Else AnzTage = 0: Exit Function End If End Function Die Anwendung geht dann so:
z.B. Startdatum in A1, Enddatum in A2
=AnzTage(A1;A2;2;2004)
gibt die Tage zurück, die der Zeitraum [A1]-[A2] vom Monat Februar 2004 enthält.
Ich hoffe, es ist kein Fehler drin!
Grüße,
Matthias
Anzeige
AW: Datum Abfragen
29.12.2004 22:28:15
Werner
Hallo Matthias,
danke für deine Antwort. Du scheinst dich ja gut auszukennen.
Mein Problem ist jetzt, daß ich bisher mit mehr oder weniger einfachen Formeln ausgekommen bin, und mit komplizierteren Funktionen wie deine noch keine Berührung hatte. Daher weiß ich jetzt gar nicht, wo ich die Funktion hin schreiben muß. Vielleicht kannst das noch kurz erklären.
Ich will meine Anwendung noch etwas konkreter erklären:
Einen Abrechnungszeitraum habe ich vorgegeben, z.b. den 1.8.02 bis 31.7.03 (immer ein ganzes Jahr). Ein Mitarbeiter, der aber erst am 15.12.02 z.b. angefangen hat, soll natürlich seine Prämie nur anteilig bekommen. Dazu will ich in einer Spalte die Monate Januar bis Dezember runter schreiben und daneben die abzurechnenden Tage, die ich dann nur noch mit der Tagesprämie multiplizieren muß. Im Beispiel muß dann für November die Null stehen und für Dezember die 17. In deinem Aufruf der Funktion mit
=AnzTage(A1;A2;2;2004) sollte richtiger Monat und Jahr aus der Vorgabe des Abrechnungsjahres direkt entnommen werden.
Ich hoffe jetzt habe ich es nicht noch komplizierter gemacht.
Vielen Dank nochmal für die Hilfe!
Anzeige
AW: Datum Abfragen
30.12.2004 00:08:27
Matthias
Hallo Werner,
also, so kriegst du die Funktion in die Arbeitsmappe:
in Excel Alt-F11, damit startest du den VB-Editor
dann im dortigen Menü Einfügen - Modul, dann erscheint im großen Fenster ein leeres Blatt. Dahinein den Code kopieren.
Und die Formel kannst du dann wie beschrieben anwenden.
Ich muss jetzt ins Bett, morgen um 5 Uhr raus, wenn du noch Fragen hast, melde dich hier nochmal.
Gruß und Gute Nacht,
Matthias
AW: Datum Abfragen
30.12.2004 09:03:27
Werner
Hallo Matthias,
vielleicht kannst bitte noch kurz helfen, wie ich in deiner Formel
=AnzTage(A1;A2;2;2004) das Jahr dynamisch aus meinem vorgegebenen Abrechnungszeitraum einsetzen kann, also nicht daß wie in meinem Beispiel aus der vorigen Nachricht für den Februar 02 genommen wird, sondern 03?
Anzeige
AW: Datum Abfragen
30.12.2004 11:21:56
Matthias
Hallo Werner,
ich denke, du meinst so:
=AnzTage(A1;A2;2;JAHR(A1)) oder?
Grüße,
Matthias
AW: Datum Abfragen
30.12.2004 17:05:46
Werner
Hallo Matthias,
nein so stimmt es noch nicht ganz. Denn ich habe ja in A1 und A2 einen gewissen Tätigkeitszeitraum stehen, z.b den 15.12.02 bis 31.7.03, zusätzlich habe ich einen Abrechnungszeitraum vorgegeben, z.b. den 1.8.02 bis 31.7.03, diese Daten stehen etwa in B1 und B2.
Mit =AnzTage(A1;A2;2;JAHR(A1)) würde das Jahr 2002 benutzt werden, was falsch ist, denn der Februar 2002 liegt ja nicht in meinem Abrechnungszeitraum (B1 und B2), hier müßte dann 2003 benutzt werden. Im Fall des November wäre 2002 wieder richtig.
Scheint kompliziert zu sein was ich mir da vorgenommen hab ;-)
Grüße von Werner...
Anzeige
AW: Datum Abfragen
30.12.2004 17:40:41
Matthias
Hallo Werner,
vielleicht lädst du mal eine Beispielmappe hoch, mit ein paar Erläuterungen, das würde mir (und hoffentlich dann auch dir) weiterhelfen.
Vor allem interessiert mich, wie du die einzelnen Monate des Abrechnungszeitraumes in die Spalte schreibst.
Grüße,
Matthias
AW: Datum Abfragen
31.12.2004 10:55:33
werner
Hallo Matthias,
ich habe das Jahr selbst ermitteln können aus meinem Abrechnungszeitraum, der z.b. in B1 und B2 steht, und zwar mit der Formel
=AnzTage(A1;A2;1;WENN(1&lt=MONAT(B1);JAHR(B2);JAHR(B1)))
wobei die 1 den Januar darstellt, in der Zeile für den Februar steht dann die 2 usw.
Das funktioniert super, solange der Abrechnungszeitraum zum 1. eines Monats beginnt. Sobald der Abrechnungszeitraum mitten im Monat beginnt ist das Ergenbis falsch, weil dann der Monat zwei mal vorkommt und die Tage vom einen Jahr und die vom nächsten Jahr des entsprechenden Monats addiert werden müßten. Vielleicht kann ich das einfach mit einer Abfrage machen ob der Tag in B1 der 1. ist, wenn nicht deine Formal 2 mal aufrufen mit beiden Jahrangaben und addieren. Aber da fehlt mir grad der Kopf dazu.
Sollte vielleicht noch etwas einkaufen für Silvester ;-))
Viele Grüße und einen guten Rutsch und danke für deine Hilfe!
Anzeige
AW: Datum Abfragen
Hübi
Hi Werner,
meinst du es so
Werner
 ABCD
102.10.200329.03.2004  
2    
3    
4MonatenthaltenMonat hatanteilig
512ja31 Tage31 Tage
64nein0 Tage0 Tage
73ja31 Tage29 Tage
82ja29 Tage29 Tage
910ja31 Tage30 Tage
Formeln der Tabelle
B5 : =WENN(UND(JAHR(A$1)<JAHR(B$1);ODER(A5>=MONAT(A$1);A5<=MONAT(B$1)));"ja";WENN(UND(JAHR(A$1)=JAHR(B$1);UND(A5>=MONAT(A$1);A5<=MONAT(B$1)));"ja";"nein"))
C5 : =WENN(B5="ja";TAG(EDATUM(DATUM(WENN(A5>=MONAT(A$1);JAHR(A$1);JAHR(B$1));A5;1);1)-1);0)
D5 : =WENN(A5<=MONAT(B$1);WENN(A5=MONAT(B$1);TAG(B$1);C5);WENN(A5=MONAT(A$1);C5-TAG(A$1)+1;C5))
B6 : =WENN(UND(JAHR(A$1)<JAHR(B$1);ODER(A6>=MONAT(A$1);A6<=MONAT(B$1)));"ja";WENN(UND(JAHR(A$1)=JAHR(B$1);UND(A6>=MONAT(A$1);A6<=MONAT(B$1)));"ja";"nein"))
C6 : =WENN(B6="ja";TAG(EDATUM(DATUM(WENN(A6>=MONAT(A$1);JAHR(A$1);JAHR(B$1));A6;1);1)-1);0)
D6 : =WENN(A6<=MONAT(B$1);WENN(A6=MONAT(B$1);TAG(B$1);C6);WENN(A6=MONAT(A$1);C6-TAG(A$1)+1;C6))
B7 : =WENN(UND(JAHR(A$1)<JAHR(B$1);ODER(A7>=MONAT(A$1);A7<=MONAT(B$1)));"ja";WENN(UND(JAHR(A$1)=JAHR(B$1);UND(A7>=MONAT(A$1);A7<=MONAT(B$1)));"ja";"nein"))
C7 : =WENN(B7="ja";TAG(EDATUM(DATUM(WENN(A7>=MONAT(A$1);JAHR(A$1);JAHR(B$1));A7;1);1)-1);0)
D7 : =WENN(A7<=MONAT(B$1);WENN(A7=MONAT(B$1);TAG(B$1);C7);WENN(A7=MONAT(A$1);C7-TAG(A$1)+1;C7))
B8 : =WENN(UND(JAHR(A$1)<JAHR(B$1);ODER(A8>=MONAT(A$1);A8<=MONAT(B$1)));"ja";WENN(UND(JAHR(A$1)=JAHR(B$1);UND(A8>=MONAT(A$1);A8<=MONAT(B$1)));"ja";"nein"))
C8 : =WENN(B8="ja";TAG(EDATUM(DATUM(WENN(A8>=MONAT(A$1);JAHR(A$1);JAHR(B$1));A8;1);1)-1);0)
D8 : =WENN(A8<=MONAT(B$1);WENN(A8=MONAT(B$1);TAG(B$1);C8);WENN(A8=MONAT(A$1);C8-TAG(A$1)+1;C8))
B9 : =WENN(UND(JAHR(A$1)<JAHR(B$1);ODER(A9>=MONAT(A$1);A9<=MONAT(B$1)));"ja";WENN(UND(JAHR(A$1)=JAHR(B$1);UND(A9>=MONAT(A$1);A9<=MONAT(B$1)));"ja";"nein"))
C9 : =WENN(B9="ja";TAG(EDATUM(DATUM(WENN(A9>=MONAT(A$1);JAHR(A$1);JAHR(B$1));A9;1);1)-1);0)
D9 : =WENN(A9<=MONAT(B$1);WENN(A9=MONAT(B$1);TAG(B$1);C9);WENN(A9=MONAT(A$1);C9-TAG(A$1)+1;C9))
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Wenn diese Ergebnisse (hier noch in Einzelschritten) so gewollt sind, kannst du ja die Formeln zusammenführen.
Guten Rutsch und Gruß Hübi
Anzeige
AW: Datum Abfragen
01.01.2005 12:02:25
werner
Hallo Hübi!
Erst mal eine gesundes neues Jahr wünsche ich dir.
Danke für deine Lösung. Leider gibt es Datumsbereiche, wo es mit deiner Lösung ein falsches Ergebnis gibt, z.b. wenn das Datum vom 12.5.03 bis 11.5.04 geht, dann muß der Mai 2 mal gerechnet werden, einmal für 03 und einmal für 04.
Aber brauchst dir keine Gedanken dazu weiter machen. Ich habe die Lösung von Matthias genommen und die aufrufende Funktion noch entsprechend angepasst. Trotzdem herzlichen Dank für deine Mühe, es ist super Hilfe zu bekommen wenn etwas nicht so funktioniert wie es soll.
Viele Grüße von Werner...
Anzeige
AW: Datum Abfragen
01.01.2005 12:12:40
werner
Hallo Matthias!
Auch dir erst mal ein gesundes neues Jahr!
Ich denke ich kann das Problem nun als gelöst ansehen. Ich habe deine aufrufende Funktion noch etwas angepasst, die nun einige Spezialfälle berücksichtigt. Hoffe es kommen bei der Arbeit mit der Tabelle keine neuen dazu ;-)
Dies nur soweit zu deiner Rückmeldung.
Ich muß mich auch noch entschuldigen, daß ich das Ziel meiner Tabelle zu Beginn nicht präzise genug formuliert habe und es so zu Verwirrungen kam. Mußte mir vermutlich selbst erst über das Problem klar werden. Werde mich bei folgenden Anfragen bemühen.
Alles Gute und nochmals herzlichsten Dank für deine Hilfe!
Viele Grüße von Werner...
Anzeige
AW: Danke für die Rückmeldung...
01.01.2005 14:05:08
Matthias
Hallo Werner,
...und dir ebenfalls ein gesundes neues Jahr!
Grüße,
Matthias

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige