SQL-Abfrage Union und Join in Excel
Schritt-für-Schritt-Anleitung
Um Daten aus mehreren Excel-Tabellen zu kombinieren, kannst Du die SQL-Abfragen UNION und JOIN verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:
- 
Daten vorbereiten: Stelle sicher, dass Deine Daten in Excel-Tabellen formatiert sind. Du benötigst mindestens zwei Tabellen, um sie mit UNION zu kombinieren.
 
- 
VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.
 
- 
Neues Modul einfügen: Klicke mit der rechten Maustaste auf VBAProject (DeineDatei.xlsx) und wähle Einfügen -> Modul.
 
- 
Code für UNION-Abfrage einfügen: Kopiere den folgenden VBA-Code in das Modul:
Sub Abfrage()
    Dim cn As Object
    Dim rs As Object
    Dim strFile As String
    Dim strCon As String
    Dim strSQL As String
    strFile = ActiveWorkbook.FullName
    strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";"
    Set cn = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.Recordset")
    cn.Open strCon
    ' UNION-Abfrage
    strSQL = "SELECT aaaa, cccc FROM ( " & _
             "SELECT Spalte1 AS aaaa, Spalte2 AS cccc FROM [Tabelle1$] " & _
             "UNION ALL " & _
             "SELECT SpalteA AS aaaa, SpalteB AS cccc FROM [Tabelle2$] )"
    ' JOIN-Abfrage
    strSQL = strSQL & " LEFT JOIN [Tabelle3$] ON aaaa = Suchwert"
    rs.Open strSQL, cn, 3, 3
    Worksheets("Zieltabelle").Cells(1, 1).CopyFromRecordset rs
    rs.Close
    cn.Close
End Sub
 
- 
Makro ausführen: Führe das Makro Abfrage aus, um die Daten in die Zieltabelle zu kopieren.
 
Häufige Fehler und Lösungen
- 
Fehler: "Syntaxfehler in From-Klausel": Überprüfe die Tabelle und Spaltennamen in Deiner SQL-Anweisung. Achte darauf, dass sie korrekt angegeben sind.
 
- 
Fehler: "Benutzerdefinierter Typ nicht definiert": Dieser Fehler tritt auf, wenn Du eine ADODB-Referenz nicht gesetzt hast. Gehe zu Extras -> Verweise im VBA-Editor und aktiviere Microsoft ActiveX Data Objects 6.1 Library.
 
- 
Daten werden nicht angezeigt: Stelle sicher, dass die Verbindung zur Excel-Datei korrekt ist und die Tabellenblätter existieren.
 
Alternative Methoden
Wenn Du keine VBA verwenden möchtest, kannst Du auch Power Query verwenden, um Daten aus mehreren Tabellen zu kombinieren. Power Query bietet eine benutzerfreundliche Schnittstelle zum Importieren, Transformieren und Kombinieren von Daten aus verschiedenen Quellen, einschließlich Excel.
- 
Power Query öffnen: Gehe zu Daten -> Abfragen & Verbindungen und wähle Neue Abfrage.
 
- 
Tabellen auswählen: Wähle die Tabellen aus, die Du kombinieren möchtest, und verwende die Append-Funktion.
 
- 
Daten transformieren: Du kannst die Daten filtern und transformieren, bevor Du sie in ein neues Arbeitsblatt lädst.
 
Praktische Beispiele
Hier sind einige Beispiele für SQL-Abfragen in Excel:
- 
UNION-Abfrage:
SELECT Spalte1 AS Name FROM [Tabelle1$]
UNION
SELECT Spalte2 AS Name FROM [Tabelle2$]
 
- 
LEFT JOIN-Abfrage:
SELECT A.Name, B.Wert
FROM [TabelleA$] A
LEFT JOIN [TabelleB$] B ON A.ID = B.ID
 
- 
Kombinierte Abfrage:
SELECT A.Name, B.Wert
FROM (SELECT Name, ID FROM [Tabelle1$] UNION SELECT Name, ID FROM [Tabelle2$]) A
LEFT JOIN [Tabelle3$] B ON A.ID = B.ID
 
Tipps für Profis
- 
Verwende UNION ALL: Wenn Du doppelte Einträge in Deiner Abfrage zulassen möchtest, verwende UNION ALL anstelle von UNION.
 
- 
Benutze Aliase: Setze Aliase für Spalten, um Deine SQL-Abfragen leserlicher zu machen.
 
- 
Vermeide Hungarian Notation: Halte Dich an klare und verständliche Benennungen. Zum Beispiel, anstelle von cn verwende connection.
 
FAQ: Häufige Fragen
1. Was ist der Unterschied zwischen UNION und JOIN?
UNION wird verwendet, um zwei oder mehr Resultatsets zusammenzuführen, während JOIN verwendet wird, um Daten aus mehreren Tabellen basierend auf einer gemeinsamen Spalte zu kombinieren.
2. Wie finde ich doppelte Einträge in Excel?
Du kannst GROUP BY in einer SQL-Abfrage verwenden, um doppelte Einträge zu finden, oder die bedingte Formatierung in Excel verwenden, um Duplikate hervorzuheben.
3. Wie kann ich eine SQL-Abfrage in Excel ausführen?
Verwende VBA mit ADODB, um SQL-Abfragen direkt in Excel auszuführen, oder nutze Power Query für eine benutzerfreundliche Oberfläche.
4. Welche Excel-Version benötige ich für diese Methoden?
Die beschriebenen Methoden funktionieren in Excel 2010 und neueren Versionen, vorausgesetzt, die entsprechenden Add-Ins sind aktiviert.