Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zwei Tabellen mit Datum vergleichen

Zwei Tabellen mit Datum vergleichen
31.07.2017 08:08:19
Peter
Hallo zusammen,
ich benötige bitte Hilfe bei einem Thema, das mich viel Zeit kostet:
Ich habe eine Tabelle1 = Dienstplan hier steht immer Datum von und Datum Bis (A2&B2) sowie die Personalnummer in Spalte D2
Dann kommt die Tabelle2 = Abrechnung hier steht nur ein Datum (J2)sowie die Personalnummer in F2
Jetzt muss ich diese zwei Tabellen gegeneinander prüfen ob die Personalnummer und das Datum der Abrechnung in dem Zeitraum des Dienstplanes liegt.
Die Einträge haben unterschiedliche Zellenlänge also im Dienstplan habe ich 50.000 Einträge und die der Abrechnung 300.000. Mit dem Sverweis komme ich so nur sehr schlecht weiter, da ich immer nur Beginn und Endedatum einzel prüfen kann?
Weis hier jemand zufällig eine Lösung per VBA? wo ich das also in einem "Rutsch" durchlaufen lassen kann und dann in der Tabelle2 (Abrechnung)bei Spalte O einen Eintrag bekomme OK oder nicht OK?
Vielen Dank, viele Grüße
Peter
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zwei Tabellen mit Datum vergleichen
31.07.2017 08:13:30
SF
Hola,
nimm Zählenwenns().
=WENN(ZÄHLENWENNS(Tabelle1!A:A;"="&J2;Tabelle1!D:D;F2);"ok";"nicht ok")

Gruß,
steve1da
AW: Zwei Tabellen mit Datum vergleichen
31.07.2017 08:31:18
Peter
Moin Steve1da,
aber du vergleichst nur Tabelle1? Ich habe ja zwei verschiedene Tabellen die ich gegeneinander prüfen muss, den Plan und die Abrechnung.... und bei der Abrechnung (Tabelle2) muss ich wissen ob das Datum im Dienstplan liegt, vielen Dank, Grüße
Peter
Anzeige
AW: Zwei Tabellen mit Datum vergleichen
31.07.2017 08:33:23
SF
Hola,
die Formel kommt in Tabelle2.
Gruß,
steve1da
AW: Zwei Tabellen mit Datum vergleichen
31.07.2017 11:18:51
Peter
Hallo Steve1da,
vielen herzlichen Dank, läuft aber dauert ewig? hab das ganze in ein Makro gepackt in der Hoffnung das es schneller geht aber :-(
Sub Abrechung()
' Abrechnung Makro
'Füge neben die Spalte L eine neue Spalte ein
Columns("L:L").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("M1").Select
'Gebe der Spalte eine Überschrift
ActiveCell.FormulaR1C1 = "Prüfung_DPP"
Range("M2").Select
'Formel eingeben
ActiveCell.FormulaR1C1 = _
"=IF(COUNTIFS(Tabelle1!C[-12],""=""&RC[-3],Tabelle1!C[-9] _
,RC[-7]),""OK"",""nicht OK"")"
Dim lngLast As Long
lngLast = Cells(Rows.Count, 1).End(xlUp).Row
'Kopiere die Formel bis zur letzen befüllten Zelle
Range("M2").AutoFill Destination:=Range("M2:M" & lngLast)
'Kopieren und einfügen, damit nur die Werte aber nicht die Formeln stehen bleiben
Columns("M:M").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A1").Select
ActiveWorkbook.Save
End Sub

Anzeige
AW: Zwei Tabellen mit Datum vergleichen
31.07.2017 12:17:17
Werner
Hallo Peter,
wenn ich dich richtig verstanden habe dann versuch mal so:
Sub Abrechung()
Dim lngLast As Long
Dim strFormel As String
strFormel = _
"=IF(COUNTIFS(Tabelle1!C[-12],""=""&RC[-3],Tabelle1!C[-9],RC[-7]),""OK"",""nicht OK"")"
Application.ScreenUpdating = False 'Bildschirmaktualiesierung aus
Application.Calculation = xlCalculationManual 'Automatische Bereichnung aus
'Füge neben die Spalte L eine neue Spalte ein
With Worksheets("Tabelle1") 'anpassen
'Letzte belegte Zeile ermitteln
lngLast = .Cells(.Rows.Count, 1).End(xlUp).Row
'neue Spalte zwischen L und M
.Columns(13).Insert Shift:=xlToRight
'Überschrift für neue Spalte
.Range("M1") = "Prüfung_DPP"
'Formel in M2 bis M letzte belegte Zeile
.Range("M2:M" & lngLast).FormulaR1C1 = strFormel
'Formel durch Werte ersetzen
.Range("M2:M" & lngLast).Value = .Range("M2:M" & lngLast).Value
.Range("A1").Select
End With
Application.Calculation = xlCalculationAutomatic 'Automatische Berechnung an
Application.ScreenUpdating = True 'Bildschirmaktualisierung an
'ActiveWorkbook.Save
End Sub
Der Code ist ohne die ganzen Select, zudem wird am Anfang die Bildschirmaktualisierung und die automatische Berechnung ausgeschaltet und am Ende wieder eingeschaltet.
Gruß Werner
Anzeige
AW: Zwei Tabellen mit Datum vergleichen
31.07.2017 12:36:07
Peter
Hallo Werner,
erst mal vielen Dank, funktioniert auch, zwar etwas schneller aber dennoch dauert es eben bis 350.000 Datensätze gegenseitig geprüft sind (kein Problem, ist ja bekannt)
Frage: gibt es hier noch eine Möglichkeit so eine Arzt "Warteschleife" anzuzeigen? Also evtl. MSG Box bitte warten Auswertung läuft oder % Angabe, sodass der User später weis wie lange er warten muss und nicht sinnlos in Excel rum klickt?, Vielen Dank vorab und Grüße
Peter
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Zwei Tabellen mit Datum vergleichen


Schritt-für-Schritt-Anleitung

Um in Excel zwei Tabellen zu vergleichen und zu prüfen, ob ein Datum in einem bestimmten Zeitraum liegt, kannst du folgende Schritte befolgen:

  1. Tabellenstruktur vorbereiten: Stelle sicher, dass du zwei Tabellen hast:

    • Tabelle1 (Dienstplan) mit den Spalten für "Datum von" (A) und "Datum bis" (B) sowie "Personalnummer" (D).
    • Tabelle2 (Abrechnung) mit einem Datum (J) und einer Personalnummer (F).
  2. Spalte für die Prüfung einfügen: Füge in Tabelle2 eine neue Spalte ein, zum Beispiel in Spalte O, um die Ergebnisse ("OK" oder "nicht OK") anzuzeigen.

  3. Formel eingeben: Verwende die folgende Formel in Zelle O2 von Tabelle2:

    =WENN(ZÄHLENWENNS(Tabelle1!A:A;"<="&J2;Tabelle1!B:B;">="&J2;Tabelle1!D:D;F2);"OK";"nicht OK")

    Diese Formel prüft, ob das Datum in Tabelle2 (J2) innerhalb des Zeitraums von Tabelle1 liegt und ob die Personalnummer übereinstimmt.

  4. Formel nach unten kopieren: Ziehe die Formel von O2 nach unten, um alle Einträge in Tabelle2 zu prüfen.


Häufige Fehler und Lösungen

  • Fehler: "Nicht OK" wird angezeigt, obwohl es einen Treffer geben sollte.

    • Lösung: Überprüfe die Datumsformate in beiden Tabellen. Diese müssen identisch sein, damit die Prüfung funktioniert.
  • Fehler: Die Berechnung dauert zu lange.

    • Lösung: Stelle sicher, dass du die automatische Berechnung in Excel vorübergehend deaktivierst, während das Makro läuft. Verwende dazu:
      Application.Calculation = xlCalculationManual

Alternative Methoden

Wenn du Excel VBA verwenden möchtest, um den Vergleich zu automatisieren, kannst du folgenden Code nutzen:

Sub Abrechnung()
    Dim lngLast As Long
    Dim strFormel As String
    strFormel = "=IF(COUNTIFS(Tabelle1!A:A,""<=""&RC[-6],Tabelle1!B:B,"">=""&RC[-6],Tabelle1!D:D,RC[-4]),""OK"",""nicht OK"")"

    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual

    With Worksheets("Tabelle2")
        lngLast = .Cells(.Rows.Count, 1).End(xlUp).Row
        .Range("O2:O" & lngLast).FormulaR1C1 = strFormel
        .Range("O2:O" & lngLast).Value = .Range("O2:O" & lngLast).Value
    End With

    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
End Sub

Praktische Beispiele

  1. Beispiel 1: Du hast in Tabelle1 folgende Daten:

    • A2: 01.01.2023
    • B2: 10.01.2023
    • D2: 12345

    Und in Tabelle2:

    • J2: 05.01.2023
    • F2: 12345

    Die Formel gibt "OK" zurück, da das Datum in dem Zeitraum liegt.

  2. Beispiel 2: In Tabelle1:

    • A3: 15.01.2023
    • B3: 20.01.2023
    • D3: 54321

    In Tabelle2:

    • J3: 14.01.2023
    • F3: 54321

    Die Formel gibt "nicht OK" zurück, da das Datum außerhalb des Zeitraums liegt.


Tipps für Profis

  • Nutze Datenüberprüfung, um sicherzustellen, dass nur gültige Daten in die Spalten eingegeben werden.
  • Überlege, ob es sinnvoll ist, die Daten in einem PivotTable zusammenzufassen, um weitere Analysen durchzuführen.
  • Verwende Conditional Formatting, um schnell visuelle Hinweise zu erhalten, wenn ein Datum in einem bestimmten Zeitraum liegt.

FAQ: Häufige Fragen

1. Wie kann ich prüfen, ob ein Datum in einem bestimmten Zeitraum liegt?
Du kannst die ZÄHLENWENNS()-Funktion verwenden, um zu überprüfen, ob das Datum zwischen zwei anderen Daten liegt.

2. Was mache ich, wenn die Formel zu langsam ist?
Versuche, die Berechnung auf manuell zu setzen, während die Daten bearbeitet werden, und aktiviere sie danach wieder.

3. Kann ich die Prüfung auch mit VBA durchführen?
Ja, du kannst ein VBA-Makro nutzen, um die Datensätze effizienter zu vergleichen und die Ergebnisse automatisch auszugeben.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige