Zwei Spalten in Excel vergleichen und Daten kopieren
Schritt-für-Schritt-Anleitung
Um zwei Spalten in Excel zu vergleichen und gegebenenfalls Daten zu kopieren, kannst Du folgende Schritte befolgen:
-
Öffne Deine Excel-Datei und stelle sicher, dass die Daten in den entsprechenden Spalten (A-Z für Datensatz 1 und AA-AW für Datensatz 2) vorhanden sind.
-
Öffne den VBA-Editor mit ALT + F11
.
-
Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject", dann "Einfügen" > "Modul".
-
Kopiere den folgenden Code in das Modul:
Sub Combine_Produktschlüssel_()
Dim i As Long, j As Long, vntArr1, vntArr2
Application.ScreenUpdating = False
vntArr1 = Range("A2:Z120000")
vntArr2 = Range("AA2:AW120000")
For i = 1 To UBound(vntArr1)
j = Application.Match(vntArr1(i, 1), Columns(27), 0)
If Not IsError(j) Then
vntArr1(i, 8) = vntArr2(j - 1, 3)
vntArr1(i, 9) = vntArr2(j - 1, 4)
vntArr1(i, 10) = vntArr2(j - 1, 6)
vntArr1(i, 11) = vntArr2(j - 1, 9)
vntArr1(i, 12) = vntArr2(j - 1, 11)
End If
Next i
Range("A2:Z120000") = vntArr1
Application.ScreenUpdating = True
End Sub
-
Schließe den VBA-Editor und gehe zurück zu Excel.
-
Führe das Makro aus: Gehe zu "Entwicklertools" > "Makros" und wähle Combine_Produktschlüssel_
.
Häufige Fehler und Lösungen
-
Fehler bei der Übereinstimmung: Wenn Du den Fehler "Nicht gefunden" erhältst, stelle sicher, dass die Daten in den Spalten A und AA korrekt formatiert sind (z.B. keine führenden Leerzeichen).
-
Lange Ausführungszeiten: Wenn das Skript zu lange braucht, überprüfe die Anzahl der Einträge. Stelle sicher, dass Du nur die benötigten Zeilen und Spalten in Deinem VBA-Code verwendest.
Alternative Methoden
Du kannst auch Excel-Funktionen wie SVERWEIS
oder INDEX
und VERGLEICH
verwenden, um Daten zu vergleichen und zu kopieren, allerdings sind diese Methoden bei sehr großen Datensätzen weniger performant als die VBA-Lösung.
Beispiel für SVERWEIS
:
=SVERWEIS(A2;AA:AW;3;FALSCH)
Füge diese Formel in die Zellen ein, in die Du die Daten kopieren möchtest.
Praktische Beispiele
Angenommen, Du hast folgende Daten:
A |
B |
... |
Z |
Schlüssel |
Daten1 |
... |
Daten5 |
1 |
a |
... |
x |
2 |
b |
... |
y |
AA |
AB |
... |
AW |
Schlüssel |
DatenA |
... |
DatenE |
1 |
c |
... |
z |
3 |
d |
... |
w |
Nach Ausführung des Makros werden die Daten aus der zweiten Tabelle, wo die Schlüssel übereinstimmen, in die entsprechenden Zellen in der ersten Tabelle kopiert.
Tipps für Profis
-
Verwende Arrays: Der Einsatz von Arrays in VBA verbessert die Geschwindigkeit erheblich, besonders bei großen Datensätzen, da die Anzahl der Interaktionen mit dem Excel-Blatt reduziert wird.
-
Vermeide die Bildschirmaktualisierung: Durch Application.ScreenUpdating = False
kannst Du die Performance weiter steigern, besonders bei umfangreichen Berechnungen.
FAQ: Häufige Fragen
1. Wie viele Zeilen kann ich in Excel verarbeiten?
Excel kann bis zu 1.048.576 Zeilen pro Blatt verarbeiten. Stelle sicher, dass Deine VBA-Schleifen nicht darüber hinaus gehen.
2. Funktioniert das auch in Excel Online?
Die VBA-Makros funktionieren nur in der Desktop-Version von Excel, nicht in Excel Online.
3. Was mache ich, wenn ich Fehler im VBA-Code habe?
Überprüfe die Zeilen sorgfältig auf Syntaxfehler und stelle sicher, dass alle verwendeten Bereiche korrekt sind. Du kannst den Debugger verwenden, um Fehler zu finden.