Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datumsvergleich nur Monat und Tag

Forumthread: Datumsvergleich nur Monat und Tag

Datumsvergleich nur Monat und Tag
13.11.2007 12:50:53
Thomas
Hallo
Ich brauch mal wieder Hilfe. Ist sicherlich nur ne Kleinigkeit. Also ich habe das Anfangs- und Enddatum einer KW und ich habe eine Liste mit Geburtstagen. Ich möchte nun prüfen, ob ein oder mehrere Geburtstage in diese KW fallen und dann die Namen die neben dem Geburtsdatum stehen ausgeben. Wie kann ich das anstellen?
Gruß Thomas

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Datumsvergleich nur Monat und Tag
13.11.2007 12:59:00
Thomas
Sorry ich hatte vergessen, das ich das in VBA brauche.
Aber ansonsten ist es genau das.
Gruß Thomas

Anzeige
AW: Datumsvergleich nur Monat und Tag
13.11.2007 13:00:59
Peter
Hallo Thomas,
dann gib die Formel doch ein per Makro-Recorder ein, dann kannst Du das in Deinen Code übernehmen.
Gruß, Peter

AW: Datumsvergleich nur Monat und Tag
13.11.2007 13:04:48
Thomas
Hm, ich probier es mal. Hab aber gerade gesehen, das du das selbe Jahr verwendet hast. Bei den Geburtstagen die ich verwende, ist das Geburtsjahr hinterlegt und ich will eigentlich nur den Tag und den Monat vergleichen.
mfg Thomas

Anzeige
AW: Datumsvergleich nur Monat und Tag
13.11.2007 14:18:27
Erich
Hallo Thomas,
vermutlich gehts auch einfacher als dies:
Tabelle1

 ABC
1Anfang der KW28.12.2007 
2Ende der KW04.01.2008 
3   
4Geburtstage  
5Anna13.11.2007 
6Beate24.12.2007 
7Chris30.12.2007Diese Woche
8Dieter01.01.2001Diese Woche

Formeln der Tabelle
ZelleFormel
B2=+B1+7
C5=WENN(ODER(UND(B5-DATUM(JAHR(B5); 1;0)>=$B$1-DATUM(JAHR($B$1); 1;0); B5-DATUM(JAHR(B5); 1;0)<=$B$1-DATUM(JAHR($B$1); 1;0)+7); UND(B5-DATUM(JAHR(B5); 1;0)>=$B$2-DATUM(JAHR($B$2); 1;0)-7; B5-DATUM(JAHR(B5); 1;0)<=$B$2-DATUM(JAHR($B$2); 1;0))); "Diese Woche";"")
C6=WENN(ODER(UND(B6-DATUM(JAHR(B6); 1;0)>=$B$1-DATUM(JAHR($B$1); 1;0); B6-DATUM(JAHR(B6); 1;0)<=$B$1-DATUM(JAHR($B$1); 1;0)+7); UND(B6-DATUM(JAHR(B6); 1;0)>=$B$2-DATUM(JAHR($B$2); 1;0)-7; B6-DATUM(JAHR(B6); 1;0)<=$B$2-DATUM(JAHR($B$2); 1;0))); "Diese Woche";"")
C7=WENN(ODER(UND(B7-DATUM(JAHR(B7); 1;0)>=$B$1-DATUM(JAHR($B$1); 1;0); B7-DATUM(JAHR(B7); 1;0)<=$B$1-DATUM(JAHR($B$1); 1;0)+7); UND(B7-DATUM(JAHR(B7); 1;0)>=$B$2-DATUM(JAHR($B$2); 1;0)-7; B7-DATUM(JAHR(B7); 1;0)<=$B$2-DATUM(JAHR($B$2); 1;0))); "Diese Woche";"")
C8=WENN(ODER(UND(B8-DATUM(JAHR(B8); 1;0)>=$B$1-DATUM(JAHR($B$1); 1;0); B8-DATUM(JAHR(B8); 1;0)<=$B$1-DATUM(JAHR($B$1); 1;0)+7); UND(B8-DATUM(JAHR(B8); 1;0)>=$B$2-DATUM(JAHR($B$2); 1;0)-7; B8-DATUM(JAHR(B8); 1;0)<=$B$2-DATUM(JAHR($B$2); 1;0))); "Diese Woche";"")

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Datumsvergleich nur Monat und Tag
13.11.2007 21:08:00
Erich
Hallo Thomas,
probier das mal:
 ABCD
1Anfang der KW29.12.2008WoBeg29.12.2008
2Ende der KW04.01.2009  
3   
4    
5Geburtstage   
6Anna28.12.2003  
7Beate29.12.1955Diese Woche 
8Chris30.12.1997Diese Woche 
9Dieter01.01.2001Diese Woche 
10Otto03.01.1948Diese Woche 
11Waldi05.01.1977  

Formeln der Tabelle
ZelleFormel
D1=B1-WOCHENTAG(B1;2)+1
B2=B1+6
C6=GebInKw(B$1;B6)
C7=GebInKw(B$1;B7)
C8=GebInKw(B$1;B8)
C9=GebInKw(B$1;B9)
C10=GebInKw(B$1;B10)
C11=GebInKw(B$1;B11)

Die VBA-Funktion dazu ist

Function GebInKw(datAnf As Date, datGeb As Date) As String
Dim ii As Integer
For ii = 0 To 6
If DateSerial(Year(datAnf + ii), Month(datGeb), Day(datGeb)) = datAnf + ii Then
GebInKw = "Diese Woche"
Exit For
End If
Next ii
End Function

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Datumsvergleich nur Monat und Tag
13.11.2007 13:00:32
Thomas
Die Anfrage bezieht sich auf VBA.
Thomas
;
Anzeige

Infobox / Tutorial

Datumsvergleich nur Monat und Tag


Schritt-für-Schritt-Anleitung

Um einen Datumsvergleich in Excel durchzuführen, bei dem nur der Monat und der Tag berücksichtigt werden, kannst Du eine benutzerdefinierte VBA-Funktion verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke auf „Einfügen“ und wähle „Modul“.

  3. Füge die folgende Funktion ein:

    Function GebInKw(datAnf As Date, datGeb As Date) As String
       Dim ii As Integer
       For ii = 0 To 6
           If DateSerial(Year(datAnf + ii), Month(datGeb), Day(datGeb)) = datAnf + ii Then
               GebInKw = "Diese Woche"
               Exit For
           End If
       Next ii
    End Function
  4. Verwende die Funktion in Deinem Excel-Blatt: Gehe zurück zu Deinem Excel-Blatt und gib die Formel ein, indem Du =GebInKw(Startdatum, Geburtsdatum) verwendest, wobei Startdatum das Anfangsdatum der KW ist.


Häufige Fehler und Lösungen

  • Fehler: „Typ nicht übereinstimmend“

    • Lösung: Stelle sicher, dass die Datumsangaben in den Zellen korrekt formatiert sind (z.B. als Datum und nicht als Text).
  • Fehler: Funktion gibt keine Werte zurück

    • Lösung: Überprüfe, ob das Anfangsdatum der KW korrekt eingegeben wurde und dass die Geburtstage in der richtigen Formatierung vorliegen.

Alternative Methoden

Falls Du keine VBA-Funktion verwenden möchtest, kannst Du folgende Excel-Formel nutzen:

=WENN(UND(MONAT(Geburtstag)=MONAT(Anfangsdatum); TAG(Geburtstag)=TAG(Anfangsdatum)); "Diese Woche"; "")

Diese Formel prüft, ob der Monat und der Tag des Geburtstags mit dem Anfangsdatum übereinstimmen. Diese Methode ist besonders nützlich, wenn Du keine Makros aktivieren möchtest.


Praktische Beispiele

Hier sind einige Beispiele, wie Du die Funktion verwenden kannst:

  • Beispiel 1: Wenn das Anfangsdatum der KW der 29.12.2008 ist und Du das Geburtsdatum von Anna (28.12.2003) vergleichst:

    • =GebInKw("29.12.2008", "28.12.2003") gibt kein Ergebnis zurück, da der Geburtstag nicht in der KW liegt.
  • Beispiel 2: Bei einem Geburtstag am 30.12.1997:

    • =GebInKw("29.12.2008", "30.12.1997") gibt „Diese Woche“ zurück, weil der Geburtstag in der KW liegt.

Tipps für Profis

  • Verwende die VBA-Entwicklertools: Nutze den Makro-Recorder, um komplexe Formeln in VBA umzuwandeln. Dies kann dir viel Zeit sparen.
  • Fehlerbehebung: Teste die Funktion zuerst mit einfachen Datumswerten, bevor Du sie mit umfangreichen Daten verwendest.

FAQ: Häufige Fragen

1. Frage Wie kann ich die Funktion anpassen, um mehrere Geburtstage zu überprüfen?

Antwort Du kannst die Funktion in einer Schleife aufrufen oder eine Matrix verwenden, um alle Geburtstage zu durchlaufen.

2. Frage Welche Excel-Version benötige ich für die VBA-Funktion?

Antwort Die VBA-Funktion ist in Excel 2010 und höher verfügbar. Stelle sicher, dass die Makros aktiviert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige