*
> Kurz gesagt:
>
> - Power Query ist die beste Wahl für wiederkehrende Berichte, da es Schritte protokolliert und einfach zu aktualisieren ist.
> - Für einmalige, komplexe Abfragen eignet sich Microsoft Query mit echten SQL-Statements besser, allerdings ohne nachvollziehbare Historie.
> - Beim Verbinden mit externen SQL‑Servern sollte Query Folding genutzt werden, um Zeit und Ressourcen durch serverseitiges Filtern zu sparen.
> - Beim Abfragen direkt aus Excel‑Dateien mit OLEDB müssen Blätter mit Dollarzeichen adressiert werden, und Outlook-typische Fehler bei Spaltennamen sind häufig.
> - Bei Kennwortgeschützten Dateien muss eine temporäre Kopie ohne Passwort genutzt werden, weil OLEDB den Schutz meist nicht unterstützt.
*
Inhaltsverzeichnis
Methodenüberblick: Power Query, Microsoft Query und direkte SQL‑Server‑Verbindung
Drei Wege führen zu SQL‑Daten in Excel, und jeder hat seinen eigenen Einsatzbereich.
Power Query importiert und transformiert Daten über eine grafische Oberfläche. Jeder Bearbeitungsschritt wird protokolliert und lässt sich später erneut ausführen, was besonders bei wiederkehrenden Berichten zählt.
Microsoft Query erlaubt das Eintippen echter SQL‑Statements, direkt gegen eine Excel‑Datei oder einen externen Server. Das ist schnell, aber weniger nachvollziehbar als Power Query, weil es keine dokumentierten Schritte hinterlässt.
Eine direkte SQL‑Server‑Verbindung über OLEDB oder ODBC eignet sich, wenn Sie an eine bestehende Datenbankinfrastruktur andocken und nicht in Excel selbst transformieren wollen.
Kriterien für die Wahl:
- Wiederkehrender Bericht mit wechselnden Daten: Power Query
- Einmalige, komplexe Abfrage mit eigenem SQL‑Code: Microsoft Query
- Direktzugriff auf einen Produktionsserver ohne Zwischenschritt: OLEDB‑Verbindung über Daten abrufen
- Automatisierter Ablauf ohne Benutzerinteraktion: Power Automate mit OLEDB
Microsoft Query und die OLEDB‑Variante setzen häufig die Installation der Access Database Engine voraus, Power Query bringt die nötigen Treiber meist schon mit.
Externe SQL‑Datenbank mit Excel verbinden: Schritt für Schritt
Der Weg über Daten > Daten abrufen > Aus Datenbank > Aus SQL Server‑Datenbank ist der Standardpfad, wenn Sie eine Verbindung zu einem externen SQL Server aufbauen wollen, statt eine Excel‑Datei selbst als Quelle zu nutzen.
- Öffnen Sie in Excel das Menü Daten und wählen Sie Daten abrufen, dann Aus Datenbank und Aus SQL Server‑Datenbank.
- Geben Sie den Servernamen ein, optional zusätzlich den Datenbanknamen, wenn Sie den Auswahlbereich einschränken möchten.
- Wählen Sie die Authentifizierung: Windows‑Anmeldung, Datenbankanmeldung oder Microsoft‑Konto, je nach Serverkonfiguration.
- Im Navigator erscheinen alle sichtbaren Tabellen und Sichten. Ein Klick zeigt eine Vorschau der Daten.
- Klicken Sie auf Daten transformieren, um vor dem Laden im Power Query‑Editor zu filtern, Spalten zu entfernen oder Datentypen zu ändern, statt die komplette Tabelle unverändert zu übernehmen.
- Bestätigen Sie mit Schließen & laden, oder wählen Sie Schließen & laden in, um zwischen Arbeitsblatt, Pivot‑Tabelle oder reinem Datenmodell zu entscheiden.
Ein Detail, das viele übersehen: Solange Sie Filter oder Spaltenauswahl direkt im Navigator oder frühen Schritten des Editors vornehmen, kann Power Query diese Operation an den Server zurückreichen. Das nennt sich
Query Folding, und es bedeutet, dass der Server filtert statt Excel. Bei Daten aus einer externen SQL‑Datenbank über diesen Pfad zu laden, spart das messbar Zeit bei großen Tabellen.
Direkte SQL‑Abfragen auf Excel‑Dateien mit OLEDB und Microsoft Query
Wenn Sie eine Excel‑Datei selbst als SQL‑Datenquelle behandeln wollen, statt sie zuerst in Power Query zu laden, brauchen Sie einen OLEDB‑Provider. Der gängige Verbindungsstring lautet: Provider=Microsoft.ACE.OLEDB.12.0;Data Source=%Pfad%;Extended Properties="Excel 12.0 Xml;HDR=YES". Dieser Aufbau ist in der Microsoft‑Dokumentation zu SQL‑Abfragen für Excel‑Dateien genau beschrieben, samt Hinweis, dass die Microsoft Access Database Engine oft nachinstalliert werden muss, damit der Treiber die Datei überhaupt erkennt.
Die Blatt‑Syntax unterscheidet sich von normalen SQL‑Datenbanken deutlich:
- Blätter werden mit einem Dollarzeichen adressiert, zum Beispiel SELECT * FROM [Tabelle1$]
- Die erste Zeile eines Blatts wird bei HDR=YES automatisch als Spaltenüberschrift interpretiert
- Enthält eine Spaltenüberschrift Leerzeichen oder Sonderzeichen, müssen Sie sie in eckige Klammern setzen, sonst vergibt der Treiber generische Feldnamen
- Über Daten > Aus anderen Quellen > Aus Microsoft Query lässt sich SQL‑Code direkt eintippen, inklusive Parameterplatzhaltern wie [Eingabewert]
Für automatisierte Abläufe bietet Power Automate eigene Aktionen zum Öffnen einer SQL‑Verbindung und Ausführen von Statements gegen Excel‑Dateien, ganz ohne dass Excel selbst geöffnet werden muss.
Profi-Tipp: Testen Sie neue SELECT‑Statements immer zuerst auf einer Kopie der Datei. Ein falsch adressiertes Blatt oder eine fehlende eckige Klammer bei Spaltennamen mit Leerzeichen führt sonst zu stillen Fehlinterpretationen statt einer klaren Fehlermeldung.
Kennwortgeschützte Dateien und die UPDATE‑Grenze in Excel
Kennwortgeschützte Arbeitsmappen sind für viele SQL‑Treiber ein echtes Problem, weil OLEDB‑Provider häufig keinen Mechanismus zur Passwortübergabe mitbringen. Statt das Kennwort dauerhaft zu entfernen, gehen Sie über eine temporäre, unverschlüsselte Kopie vor.
- Erstellen Sie eine Kopie der geschützten Datei an einem sicheren, temporären Speicherort.
- Entfernen Sie den Kennwortschutz ausschließlich in dieser Kopie, nie im Original.
- Führen Sie die SQL‑Abfrage gegen die Kopie aus.
- Löschen Sie die Kopie sofort nach Abschluss der Verarbeitung, besonders bei automatisierten Abläufen über Power Automate.
Eine zweite Besonderheit betrifft
UPDATE‑Befehle. Ein
UPDATE‑Statement auf eine Excel‑Datei setzt die betroffenen Zellen auf NULL, es löscht aber keine ganze Zeile. Wer eigentlich
DELETE meint, muss also mit
UPDATE auf NULL arbeiten und im Anschluss die leeren Zeilen per SELECT‑Filter oder direkt in Excel per Filterfunktion bereinigen. Vor jeder Massenänderung dieser Art lohnt sich ein einfaches Backup der Originaldatei, denn ein fehlerhaftes UPDATE über mehrere Tausend Zeilen lässt sich sonst nur schwer rückgängig machen.
Warum Power Query oft die bessere Wahl ist
Der entscheidende Unterschied zwischen Power Query und direktem SQL liegt in der Nachvollziehbarkeit. Jeder Filter, jede Spaltenumbenennung, jede Typumwandlung wird als einzelner Eintrag in der Liste Angewendete Schritte gespeichert. Das macht jede Transformation reproduzierbar und leicht überprüfbar, auch Monate später noch.
Direktes SQL über Microsoft Query hinterlässt dagegen keine solche Historie. Man sieht das fertige Ergebnis, aber nicht mehr Schritt für Schritt, wie es entstanden ist.
Die Vorteile von Power Query im Überblick:
- Angewendete Schritte lassen sich einzeln bearbeiten, deaktivieren oder neu anordnen
- Ein Bericht mit Power Query aktualisiert sich per Klick neu, ohne dass jemand den SQL‑Code erneut anpassen muss
- Fehler in einem einzelnen Schritt sind isoliert erkennbar, statt in einem langen SQL‑Block versteckt zu sein
Direktes SQL bleibt trotzdem sinnvoll, wenn Sie eine komplexe Abfrage mit mehreren Verknüpfungen und Aggregationen bereits fertig haben und nur einmalig ein Ergebnis brauchen. Für alles, was regelmäßig aktualisiert oder von Kollegen weiterbearbeitet wird, ist Power Query die robustere Grundlage.
Performance und Sicherheit beim SQL‑Zugriff aus Excel
Große Datenmengen und produktive Server verzeihen keine nachlässige Abfrage. Ein paar Regeln verhindern die häufigsten Probleme.
Fragen Sie nur die Spalten ab, die Sie wirklich brauchen, statt reflexhaft SELECT * zu schreiben. Bei sehr großen Tabellen empfiehlt es sich, serverseitige Views oder Aggregationen zu nutzen, statt die komplette Rohtabelle nach Excel zu ziehen und dort zu filtern.
- Filtern und Sortieren so früh wie möglich im Power Query‑Editor platzieren, damit Query Folding greift und der Server die Arbeit übernimmt
- Bei Direktverbindungen zu Produktionsservern vorher mit der IT‑Abteilung klären, wie stark die Abfrage die Serverlast erhöht
- Zugangsdaten nie im Klartext in der Datei oder im Verbindungsstring speichern, sondern über Windows‑Anmeldung oder einen sicheren Anmeldeinformationsspeicher
- Berechtigungen des verwendeten Kontos vorab prüfen, damit nicht versehentlich Schreibrechte für eine reine Leseabfrage vorhanden sind
Profi-Tipp: Wenn eine Abfrage in Excel spürbar langsamer wird, prüfen Sie zuerst, ob Query Folding noch aktiv ist. Ein einzelner Schritt, der sich nicht an den Server zurückreichen lässt, etwa eine komplexe Textfunktion, kann die gesamte Kette lokal ausbremsen.
Praktische SQL‑Snippets für den direkten Einsatz
Die folgenden Beispiele lassen sich direkt in Microsoft Query oder als Grundlage für einen Power Automate‑Ablauf übernehmen.
Ein einfacher Datenabruf über die Blatt‑Syntax:
SELECT * FROM [Tabelle1$]
Ein gefilterter Abruf mit WHERE‑Klausel:
SELECT Name, Umsatz FROM [Tabelle1$] WHERE Umsatz > 1000
Ein UPDATE, das bestimmte Zellen auf NULL setzt, statt eine Zeile zu löschen:
UPDATE [Tabelle1$] SET Status = NULL WHERE Status = 'veraltet'
Wer die genaue Syntax der WHERE‑Klausel noch einmal nachlesen will, findet eine ausführliche Erklärung im Leitfaden zu SQL‑WHERE‑Klauseln.
| Aufgabe | SQL‑Konstrukt | Typischer Einsatz |
| Alle Daten eines Blatts lesen | SELECT * FROM [Blatt$] | Erstimport, kleine Tabellen |
| Zeilen nach Bedingung filtern | WHERE Spalte = Wert | Berichte mit Teilmengen |
| Zellen auf leer setzen | UPDATE ... SET Spalte = NULL | Ersatz für DELETE auf Zeilenebene |
Wichtig bei jedem UPDATE: Es verändert Zellinhalte, entfernt aber keine Zeile aus der Tabellenstruktur.
Parameterabfragen und dynamische Filter erstellen
Statt eine Abfrage jedes Mal neu zu schreiben, wenn sich nur der Filterwert ändert, lohnt sich ein Parameter.
- In Microsoft Query lässt sich ein Platzhalter in eckigen Klammern setzen, zum Beispiel WHERE Region = [Region]. Beim Ausführen fragt Excel den Wert per Eingabefeld ab, oder Sie verknüpfen den Parameter mit einer Zelle im Arbeitsblatt.
- In Power Query erstellen Sie einen benannten Parameter über Parameter verwalten und binden ihn in einen Filterschritt ein, etwa als Vergleichswert einer Spalte.
- Sobald der Parameter existiert, reicht ein Ändern der Zelle oder des eingegebenen Werts, und die gesamte Abfrage aktualisiert sich neu.
Der Vorteil liegt auf der Hand: eine einzige Abfrage bedient beliebig viele Filterszenarien, ohne dass jemand den zugrunde liegenden Code anfassen muss.
Meine Einschätzung: Wann sich welche Methode wirklich lohnt
Ich greife in der Praxis fast immer zuerst zu Power Query, einfach weil die protokollierten Schritte spätere Fehlersuche massiv erleichtern. Direktes SQL über Microsoft Query hat trotzdem seinen Platz, etwa bei einer einmaligen, komplizierten Abfrage, die schneller getippt als über die Oberfläche zusammengeklickt ist. Wer beides sicher beherrschen will, kommt um praktisches Üben nicht herum, und genau dafür bietet LogicExcel interaktive SQL‑Übungen direkt im Browser an.
> — Thomas Houza
LogicExcel: SQL und Excel direkt im Browser üben
Bücher und Video‑Tutorials erklären SQL‑Syntax gut, aber echtes Sicherheitsgefühl entsteht erst, wenn Sie selbst eine WHERE‑Klausel tippen und sofort sehen, ob das Ergebnis stimmt. Genau das ist der Unterschied zwischen passivem Zuschauen und aktivem Üben.
LogicExcel bietet genau diese Praxis kostenfrei an, ohne Anmeldung und ohne Installation. Die kostenlosen SQL‑Übungen decken SELECT, WHERE, Aggregationen und weitere Grundlagen ab, jeweils mit sofortigem Feedback zu jeder Antwort. Wer parallel an klassischen Excel‑Formeln arbeiten möchte, findet dazu passende Excel‑Lernanleitungen mit über 77 Lektionen zum direkten Ausprobieren. Starten Sie einfach mit einer WHERE‑Übung, testen Sie Ihre eigene Filterlogik und sehen Sie in Sekunden, ob der Ansatz aus diesem Artikel auch bei Ihnen funktioniert.
Quellen
FAQ
Wie kann ich mit SQL eine Abfrage erstellen?
Öffnen Sie in Excel entweder Power Query über Daten abrufen oder Microsoft Query über Aus anderen Quellen, und schreiben Sie ein SELECT‑Statement mit der Blatt‑Syntax, etwa SELECT * FROM [Blatt1$].
Wie kann ich Daten aus einer Excel‑Tabelle abfragen?
Nutzen Sie einen OLEDB‑Provider wie Microsoft.ACE.OLEDB.12.0, adressieren Sie das Blatt mit einem Dollarzeichen und stellen Sie sicher, dass die Microsoft Access Database Engine installiert ist, falls der Treiber fehlt.
Wie erstelle ich eine Abfrage in Excel?
Für wiederholbare Berichte gehen Sie über Daten > Daten abrufen, wählen die Quelle und bearbeiten die Daten im Power Query‑Editor, bevor Sie sie laden. Für ein einmaliges SQL‑Statement reicht Microsoft Query.
Wie kann ich in Excel eine WENN‑Abfrage erstellen?
Eine bedingte Abfrage im SQL‑Sinn entspricht einer WHERE‑Klausel, zum Beispiel WHERE Umsatz > 1000. Innerhalb von Excel‑Formeln übernimmt dagegen die WENN‑Funktion diese Rolle, das ist ein eigenständiges Thema neben der SQL‑Abfrage.
Warum funktioniert DELETE nicht wie erwartet in Excel‑SQL‑Abfragen?
Ein UPDATE‑Statement setzt betroffene Zellen auf NULL, entfernt aber keine komplette Zeile. Um Zeilen tatsächlich zu entfernen, filtern Sie im Anschluss die NULL‑Werte heraus und löschen die verbleibenden leeren Zeilen manuell.
Empfehlungen