Tabellen zusammenführen
#1
Hallo Experten,

ich habe folgendes Problem. Ich bekomme wöchentlich Auswertungen von zwei verschiedenen Firmen zugeschickt. Diese zwei Excel Tabellen muss ich zusammenführen. Dies möchte anhand von zwei Spalten machen die in beiden Tabellen vorhanden sind. In der ersten Spalte steht ein Datum mit Uhrzeit ( dd.mm.yyyy ; h:m -> keine Sekunden) und in der zweiten Spalte der Name der bei beiden Tabellen identisch ist aber mehrmals vorkommt zu unterschiedlichen Zeiten. Das Problem ist, da diese Auswertungen von zwei Firmen kommen ist des öfteren die Uhrzeit oft um 1-2 Minuten unterschiedlich und somit kann ich mit meinem Kenntnisstand diese Tabellen nicht mehr zusammenführen. Ich suche also nach einer Lösung das Excel von beiden Tabellen die Uhrzeit und den Namen vergleicht und die zusammenführt welche von der Uhrzeit her am geringsten auseinander sind und den identische Namen haben. Wichtig dabei manchmal fehlen auch Daten bei einer Firma und somit darf der zeitliche Unterschied maximal 5 Minuten betragen. 


Ich hoffe ihr versteht das Problem.


LG
Top
#2
Hi Knut,


Zitat:Ich hoffe ihr versteht das Problem.

einigermaßen, sicher bin ich mir aber (noch) nicht. Poste doch bitte einmal einen relevanten Tabellenausschnitt mit den beiden Tabellen. So 10 - 15 Datensätze sind ausreichend. In einer Nachbarspalte trage bitte händisch dein Wunschergebnis ein.

So kannst du einen Tabellenausschnitt posten: http://www.clever-excel-forum.de/thread-47.html

Bitte keine ScrShots!
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#3
Hab ich mir schon gedacht. Ich versuche es erstmal an einem kleinen Beispiel. Aus Datenschutzgründen kann ich keine direkten Auszüge posten.


Tabelle 1: 

Uhrzeit - Name - Preis - ( hier sind weitere Spalten aber erstmal nicht relevant)

01.01.2016 13:01 - Wasser- "fehlender Wert aus Tabelle 2" - 
01.01.2016 13:05 - Bier - "fehlender Wert aus Tabelle 2" - 
01.01.2016 13:50 - Sekt- "fehlender Wert aus Tabelle 2" - 
01.01.2016 15:12 - Bier - "fehlender Wert aus Tabelle 2" - 
01.01.2016 16:15 - Wasser- "fehlender Wert aus Tabelle 2" - 
01.01.2016 18:05 - Bier - "fehlender Wert aus Tabelle 2" - 

Tabelle 2: 

Uhrzeit - Name - Preis - ( hier sind weitere Spalten aber erstmal nicht relevant)


01.01.2016 13:04 - Wasser- 5 - 
01.01.2016 13:05 - Bier - 7 - 
01.01.2016 14:15 - Sekt- 8 - 
01.01.2016 15:14 - Bier - 5 - 
01.01.2016 16:16 - Wasser- 8 - 
01.01.2016 18:07 - Bier - 4 - 

Gewünschtes Ergebnis in Tabelle 1 nach dem Zusammenführen:

Uhrzeit - Name - Preis - ( hier sind weitere Spalten aber erstmal nicht relevant)

01.01.2016 13:01 - Wasser- 5 - 
01.01.2016 13:05 - Bier - 7 - 
01.01.2016 13:50 - Sekt- hier soll kein Wert auftauchen da die Differenz größer 5 Minuten ist 
01.01.2016 15:12 - Bier - 5 - 
01.01.2016 16:15 - Wasser- 8 - 
01.01.2016 18:05 - Bier - 4 - 


So ich hoffe nun versteht man es :)
Top
#4
Hallo,

also ich würde das mit einem Makrodurchlauf organisieren.

1. Beide Tabellen in eine neue Tabelle untereinander kopieren
2. dann die Zeilen nach folgenden Kriterien in dieser Reihenfolge sortieren: Datum, Name, Uhrzeit
3. nun eine Schleife rückwärts über die Zeilen laufen lassen, die die Gleichheit des Namens untereinander liegender Zeilen und die Zeitdifferenz prüft
4. sind die Bedingungen erfüllt, wird die untere Zeile in die obere Zeile addiert und die untere Zeile gelöscht.

Soweit verstanden?
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Top
#5
(11.12.2016, 14:40)Glausius schrieb: Hallo,

also ich würde das mit einem Makrodurchlauf organisieren.

1. Beide Tabellen in eine neue Tabelle untereinander kopieren
2. dann die Zeilen nach folgenden Kriterien in dieser Reihenfolge sortieren: Datum, Name, Uhrzeit
3. nun eine Schleife rückwärts über die Zeilen laufen lassen, die die Gleichheit des Namens untereinander liegender Zeilen und die Zeitdifferenz prüft
4. sind die Bedingungen erfüllt, wird die untere Zeile in die obere Zeile addiert und die untere Zeile gelöscht.

Soweit verstanden?
danke Glausius,
also wie es theoretisch funktionieren soll verstehe ich. Schritt 1 und 2 habe ich bereits ausgeführt. Bei Punkt 3 fehlt mir das Wissen wie man so ein Makro schreiben muss. Über eine konkretere Antwort würde ich sehr freuen.


lg
Top
#6
Hallo Knut,

eigentlich ist das Makro recht schnell geschrieben, wenn die entsprechenden Spalten bekannt wären ( Huh  ), im Prinzip so:

Code:
For i = letzte_belegte_Zeile to erste_Zeile_nach_Überschrift Step - 1
       If Cells(i, Datumspalte) = Cells(i - 1, Datumsspalte) and Cells(i - 1, Namensspalte) = Cells(i, Namenspalte) then
            If Cells(i - 1, Uhrzeitspalte) - Cells(i, Uhrzeitsspalte <= gewählte_Zeitdifferenz then
                 Cells(i - 1, Wertespalte) = Cells(i - 1, Wertespalte) + Cells(i, Wertespalte)
                 Rows(i).Delete Shift:=xlUp
            End If
       End If
Next

Wenn es einen Tabellenausschnitt gäbe, könnten die Zellen-/Spaltennamen richtig angepasst werden...

ACHTUNG! Bei der Berechnung der Zeitdifferenz die Zeitenanzeige und -berechnung von Excel beachten!
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Top
#7
Hi Knut,

erläuternd zu dem, was Günter schrieb:
(13.12.2016, 14:46)Glausius schrieb: Wenn es einen Tabellenausschnitt gäbe, könnten die Zellen-/Spaltennamen richtig angepasst werden...

Auch wenn die Originaldaten nicht veröffentlichbar sind, kann das, was in Deinem früheren Beitrag steht auch in eine Tabelle an die richtige Position eingefügt werden und dann diese Excel-Tabelle hier gezeigt werden, siehe die als Wichtige Themen: markierten Forums-Beiträge.
Deine Mustertabelle sollte mindestens etwa 10-15 Datensätze haben, sensible Daten anonymisiert. Vom Aufbau her muss sie aber deinem Original gleichen.
Auch ein Wunschergebnis sollte dargestellt und als solches erkennbar sein.
Die farbigen Texte sind anklickbare Links:

Hier steht, wie es geht:
Beitrag 2 WICHTIG: Arbeitsmappen zur Verfügung stellen
Beitrag 3 WICHTIG: Tabellenausschnitte und VBA-Codes im Forum einstellen
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste