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

Forumthread: Zeile übernehmen wenn Datum zwischen zwei Werten

Zeile übernehmen wenn Datum zwischen zwei Werten
02.08.2016 13:01:38
onkelbobby
Hallo zusammen,
ich habe ein Datei mit zwei Tabellen.
In Tabelle 2 gibt es mehrere Spalten in Spalte A Anfangsdatum, in Spalte B, Enddatum (kann leer sein) in den Spalten F - L zunächst "Alle Tage" und dann jeden Wochentag (z. B. "Montag", "Dienstag", ... "Sonntag"
In Tabelle 1 möchte ich die Daten der Tabelle 2 auswerten.
In A1 kann ich ein beliebiges Datum eintragen.
Ab Zeile 3 sollen dann Daten aus Tabelle 2 in Abhängigkeit zum eingetragenen Datum eingefügt werden. In Spalte A kommt immer das Datum aus A1, in den folgenden Spalten sollen die Einträge aus Tabelle 2 ab Spalte C nach folgender Regel eingetragen werden:
1. Alle Zeilen aus Tabelle 2 prüfen ob das Datum aus Tabelle 1, A1 zwischen dem Datum aus Tabelle 2 Spalte A und B liegt.
2. Wenn ja, zweite Prüfung ob in "alle Tage" ein "x" vermerkt ist, dann die Zeile eintragen.
3. Wenn Bedingung 1 erfüllt ist und Bedingung 2 nicht erfüllt ist, dann prüfen ob bei den Wocheneinträgen ("Montag", "Dienstag", ...) ein "x" zu finden ist und der entsprechende Eintrag (z. B. Mittwoch) mit dem hinterlegten Datum aus A1 übereinstimmt. Wenn ja: Zeile eintragen
Es geht also darum, dass die Möglichkeit besteht Zeiträume und entweder alle Tage oder einen oder mehrere Wochentage hinterlegen zu können, die mit dem eingetragenen Datum abgeglichen werden müssen. Das Datum müsste also auch immer mit dem Wochentag verglichen werden.
Gibt es hier irgendwelche Ansätze Eurerseits?
Hier eine Beispieldatei.
https://www.herber.de/bbs/user/107368.xlsx
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile übernehmen wenn Datum zwischen zwei Werten
02.08.2016 13:34:43
ChrisL
Hi Robert
https://www.herber.de/bbs/user/107369.xlsm
Private Sub Worksheet_Activate()
Call AuswertungErstellen
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A1" Then Call AuswertungErstellen
End Sub

Sub AuswertungErstellen()
Dim WS1 As Worksheet, WS2 As Worksheet
Dim iZeile As Long, letzteZeile As Long
Dim bWTag As Byte
Set WS1 = Worksheets("Tabelle1")
Set WS2 = Worksheets("Tabelle2")
Application.ScreenUpdating = False
WS1.Rows("3:65536").EntireRow.Delete
If WS1.Range("A1") = "" Or IsDate(WS1.Range("A1")) = False Then
MsgBox "Kein gültiges Datum in A1"
Exit Sub
End If
bWTag = WorksheetFunction.Weekday(WS1.Range("A1"))
If bWTag = 1 Then
MsgBox "Datum ist ein Sonntag"
Exit Sub
End If
For iZeile = 2 To WS2.Cells(WS2.Rows.Count, 1).End(xlUp).Row
If WS1.Range("A1") >= WS2.Cells(iZeile, 1) Then
If WS1.Range("A1") 
cu
Chris
Anzeige
AW: Zeile übernehmen wenn Datum zwischen zwei Werten
03.08.2016 11:22:29
onkelbobby
Hi Chris.
Sorry für die späte Rückmeldung!
Auf Anhieb genauso wie ich das wollte.
Super, Danke!

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeile übernehmen, wenn Datum zwischen zwei Werten


Schritt-für-Schritt-Anleitung

  1. Vorbereitung: Stelle sicher, dass Du zwei Tabellen in Deiner Excel-Datei hast. In Tabelle 1 soll das Datum, das Du prüfen möchtest, in Zelle A1 stehen. In Tabelle 2 müssen die Spalten A und B die Anfangs- und Enddaten enthalten.

  2. Formel einfügen: Um zu überprüfen, ob das Datum in A1 zwischen den Werten der Spalten A und B in Tabelle 2 liegt, kannst Du folgende Formel verwenden:

    =WENN(UND(A1>=Tabelle2!A2; A1<=Tabelle2!B2); "Ja"; "Nein")
  3. Bedingungen hinzufügen: Füge in der Formel weitere Bedingungen hinzu, um zu prüfen, ob in den Spalten für Wochentage (z. B. "Montag", "Dienstag") ein "x" steht. Wenn ja, soll das Ergebnis in der entsprechenden Zeile angezeigt werden.

  4. VBA-Option: Alternativ kannst Du auch den VBA-Code verwenden, den ChrisL bereitgestellt hat, um die Auswertung zu automatisieren. Füge den Code in das VBA-Fenster ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(0, 0) = "A1" Then Call AuswertungErstellen
    End Sub
    
    Sub AuswertungErstellen()
    ' Dein Code hier
    End Sub
  5. Aktivierung der Funktion: Achte darauf, dass die Funktion bei einer Änderung in Zelle A1 automatisch ausgeführt wird.


Häufige Fehler und Lösungen

  • Fehler: Ungültiges Datum: Wenn in Zelle A1 kein gültiges Datum steht, wird eine Fehlermeldung angezeigt. Stelle sicher, dass Du ein Datum im richtigen Format eingibst.

  • Fehler: Leere Zellen: Wenn die Zellen in Tabelle 2 leer sind, kann es zu Fehlern kommen. Überprüfe, ob alle erforderlichen Daten vorhanden sind.

  • Fehler: Falsches Wochentagsformat: Achte darauf, dass die Wochentage in Tabelle 2 korrekt geschrieben sind (z. B. "Montag", "Dienstag").


Alternative Methoden

  • Pivot-Tabellen: Du kannst auch Pivot-Tabellen verwenden, um Daten zu aggregieren und analysieren. Dies kann hilfreich sein, wenn Du mit großen Datenmengen arbeitest.

  • FILTER-Funktion: In neueren Excel-Versionen kannst Du die FILTER-Funktion verwenden, um nur die relevanten Zeilen anzuzeigen. Hier ein Beispiel:

    =FILTER(Tabelle2!A:L; (Tabelle2!A:A <= A1) * (Tabelle2!B:B >= A1))

Praktische Beispiele

  • Beispiel 1: Wenn Du in Zelle A1 den 01.01.2023 eingibst und Tabelle 2 die Werte 01.01.2023 und 10.01.2023 enthält, sollte die Formel "Ja" ausgeben, wenn die Bedingungen erfüllt sind.

  • Beispiel 2: Wenn in Tabelle 2 unter "Alle Tage" ein "x" steht und das Datum in A1 ein Montag ist, dann sollte die Zeile ebenfalls angezeigt werden.


Tipps für Profis

  • Verwende Bedingte Formatierung, um die Zeilen hervorzuheben, die den Kriterien entsprechen. Dies macht die Datenanalyse übersichtlicher.

  • Du kannst auch Datenvalidierung in Zelle A1 einrichten, um sicherzustellen, dass nur gültige Daten eingegeben werden.

  • Nutze Namen für Bereiche in Excel, um die Formeln einfacher und verständlicher zu gestalten.


FAQ: Häufige Fragen

1. Wie prüfe ich, ob ein Datum zwischen zwei Daten liegt?
Verwende die WENN-Funktion in Kombination mit der UND-Funktion, um festzustellen, ob das Datum in A1 zwischen den Werten in Tabelle 2 liegt.

2. Was mache ich, wenn ich mehrere Wochentage berücksichtigen möchte?
Du kannst die Bedingungen in der WENN-Funktion erweitern oder den VBA-Code anpassen, um mehrere Wochentage zu prüfen.

3. Ist das Vorgehen auch für Excel 365 geeignet?
Ja, die beschriebenen Methoden sind in Excel 365 sowie in älteren Versionen anwendbar. Achte jedoch darauf, dass einige Funktionen, wie die FILTER-Funktion, nur in neueren Versionen verfügbar sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige