Tabellen über Makro zusammenführen
Schritt-für-Schritt-Anleitung
Um zwei Excel-Tabellen mithilfe eines Makros zusammenzuführen, befolge diese Schritte:
-
Öffne Excel und lade die Arbeitsmappe, die die Tabellen "dev data" und "inv data" enthält.
-
Öffne den VBA-Editor: Drücke Alt
+ F11
.
-
Füge ein neues Modul hinzu: Klicke auf Einfügen
> Modul
.
-
Kopiere den folgenden VBA-Code und füge ihn in das Modul ein:
Sub a()
'Daten aus 1. Quell-Blatt in Ziel-Blatt übertragen (nur Werte und Zahl-Formate)
'Daten aus 2. Quell-Blatt gemäß Identifikation (Spalte B) in Ziel-Blatt übertragen
'in passende Zeile zu den bereits kopierten Daten aus 1. Quell-Blatt
Dim Wb As Workbook
Dim WsQ1 As Worksheet
Dim rQ1 As Range
Dim WsQ2 As Worksheet
Dim WsZ As Worksheet
Dim rZ As Range
Dim f As Range
Dim fZ As Long
Dim clc
With Application
.ScreenUpdating = False
clc = .Calculation
.Calculation = xlCalculationManual
End With
Set Wb = ThisWorkbook
With Wb
Set WsQ1 = .Worksheets("dev data") '1. Quell-Blatt, ggf. anpassen
Set WsQ2 = .Worksheets("inv data") '2. Quell-Blatt, ggf. anpassen
Set WsZ = .Worksheets("final data") 'Ziel-Blatt, ggf. anpassen
End With
With WsQ1
Set rQ1 = .Range("A2:Q" & .Cells(.Rows.Count, 1).End(xlUp).Row)
rQ1.Copy
WsZ.Range("A2").PasteSpecial xlPasteValuesAndNumberFormats
End With
With WsQ2
For Each rZ In .Range("B2:B" & .Cells(.Rows.Count, 2).End(xlUp).Row)
With WsZ.Range("A2:A" & WsZ.Cells(WsZ.Rows.Count, 1).End(xlUp).Row)
Set f = .Find(rZ.Value, LookIn:=xlValues)
If Not f Is Nothing Then
fZ = f.Row
End If
End With
.Range("A" & rZ.Row & ":J" & rZ.Row).Copy
WsZ.Range("S" & fZ).PasteSpecial xlPasteValuesAndNumberFormats
Next rZ
End With
Set Wb = Nothing
Set WsQ1 = Nothing
Set rQ1 = Nothing
Set WsQ2 = Nothing
Set WsZ = Nothing
Set rZ = Nothing
Set f = Nothing
With Application
.ScreenUpdating = True
.Calculation = clc
End With
End Sub
-
Schließe den VBA-Editor und kehre zu Excel zurück.
-
Führe das Makro aus: Drücke Alt
+ F8
, wähle a
aus und klicke auf Ausführen
.
Das Makro überträgt die Daten aus "dev data" und "inv data" in die Tabelle "final data", wobei die Zugehörigkeit über die ID sichergestellt wird.
Häufige Fehler und Lösungen
- Fehlermeldung beim Ausführen des Makros: Überprüfe, ob du doppelte Dateneinträge in deinen Daten hast. Diese können zu Fehlern führen.
- Formeln in der Ziel-Tabelle verschwinden: Achte darauf, dass du die Daten nicht in Spalten kopierst, in denen bereits Formeln stehen. Das Makro muss so angepasst werden, dass es Platz für die Formeln lässt.
Alternative Methoden
Falls du kein Makro verwenden möchtest, kannst du die Excel-Funktionen SVERWEIS
oder INDEX
und VERGLEICH
verwenden, um die Daten manuell zu vergleichen und zusammenzuführen.
Beispiel für die Verwendung von SVERWEIS
:
=SVERWEIS(B2; 'dev data'!A:B; 2; FALSCH)
Diese Funktion sucht in der "dev data" nach der ID und gibt die entsprechenden Werte zurück.
Praktische Beispiele
Angenommen, du hast folgende Daten in "dev data":
A (ID) |
B (Wert) |
1 |
100 |
2 |
200 |
Und in "inv data":
B (ID) |
C (Wert) |
1 |
300 |
3 |
400 |
Nach der Ausführung des Makros wird "final data" wie folgt aussehen:
A (ID) |
B (Wert dev) |
S (Wert inv) |
1 |
100 |
300 |
2 |
200 |
|
Tipps für Profis
- Verwende strukturierte Daten: Achte darauf, dass deine Daten in Tabellenform vorliegen. Das erleichtert die Arbeit mit VBA.
- Debugging: Wenn das Makro nicht funktioniert, kannst du den Code Zeile für Zeile durchlaufen, um Fehler zu finden (F8 im VBA-Editor).
- Sichere deine Daten: Vor dem Ausführen von Makros ist es sinnvoll, ein Backup deiner Arbeitsmappe zu erstellen.
FAQ: Häufige Fragen
1. Kann ich das Makro auch in späteren Excel-Versionen verwenden?
Ja, das Makro sollte auch in neueren Versionen von Excel funktionieren, solange die Struktur der Tabellen gleich bleibt.
2. Was mache ich, wenn ich weitere Tabellen zusammenführen möchte?
Du kannst das Makro anpassen, indem du zusätzliche Copy
-Befehle für die weiteren Tabellen hinzufügst, ähnlich wie es für "dev data" und "inv data" gemacht wurde.