Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Dynamischer Filter in PowerQuery

Dynamischer Filter in PowerQuery
07.01.2022 11:30:49
Florian
Hi Leute,
ist es möglich meine Daten, die ich mittels Power Query von einem SQL-Server abrufe, dynamisch zu filtern?
Konkret will ich in einer Zelle mein Filterkriterium angeben, dass dann in Power Query bei einer bestimmten Spalte genutzt wird.
Finde mit Google leider nichts brauchbares, aber vielleicht such ich auch einfach nach den falschen Begriffen.
Danke für Eure Hilfe! :)
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: so wie Deine Frage konkretisiert ist: ja owT
07.01.2022 11:44:20
neopa
Gruß Werner
.. , - ...
AW: so wie Deine Frage konkretisiert ist: ja owT
07.01.2022 11:46:50
Florian
owt?
Anzeige
AW: owT = ohne weiteren Text owT
07.01.2022 11:56:33
neopa
Gruß Werner
.. , - ...
AW: Dynamischer Filter in PowerQuery
07.01.2022 11:50:48
ChrisL
Hi
Ein einfaches Beispiel nur mit Join:
https://www.herber.de/bbs/user/150227.xlsx
Das Problem hierbei ist, dass erstmal alle Daten nach PQ geholt werden. Bei vielen Daten wäre es effizienter, wenn die Daten bereits selektiv bezogen werden.
Z.B. in den Verbindungseigenschaften ein "SELECT * FROM WHERE x=z" oder flexibler mittels ADODB und VBA.
cu
Chris
Anzeige
AW: Dynamischer Filter in PowerQuery
07.01.2022 12:00:01
Florian
Danke Dir.
Letztlich soll das Ganze dann sowieso mittels VBA abgerufen werden. Daher wäre das natürlich auch so möglich. Allerdings weiss ich nicht, wie ich das umsetzen kann. Habe jetzt einfach mal eine Verbindung zu meinem SQL Server hergestellt und die Daten gelesen.
Wie könnte ich es denn mit VBA machen? Dort könnte ich ja dann sehr einfach meine Variablen aus Zellen lesen und z.B. in den SQL-String einbauen.
Hast Du ein paar Codezeilen für mich, wie ich die Verbindugn und Anfrage hinbekomme? :)
Anzeige
AW: Dynamischer Filter in PowerQuery
07.01.2022 13:09:26
ChrisL
Hi Florian
Die Verbindungsdefinition für SQL-Server kenne ich nicht, hierzu müsstest du recherchieren.
Ein Beispiel um ein SQL-Statement abzufeuern findest du hier:
https://www.herber.de/forum/cgi-bin/callthread.pl?index=1858874#1859017
cu
Chris
Anzeige
AW: Dynamischer Filter in PowerQuery
07.01.2022 13:20:29
Florian
Ok cool, danke Dir :)
;
Anzeige
Anzeige

Infobox / Tutorial

Dynamischer Filter in PowerQuery


Schritt-für-Schritt-Anleitung

  1. Parameter erstellen:

    • Öffne Power Query und gehe zu "Start" > "Parameter".
    • Erstelle einen neuen Parameter, der deinen Filterwert aufnehmen soll. Nenne ihn zum Beispiel FilterWert.
  2. SQL-Abfrage anpassen:

    • Klicke auf "Erweiterte Editor" und passe deine SQL-Abfrage an, um den Parameter zu nutzen:
      SELECT * FROM DeineTabelle WHERE DeineSpalte = @FilterWert
    • Achte darauf, dass der Parameter @FilterWert korrekt in die SQL-Abfrage integriert ist.
  3. Verbindungseigenschaften:

    • Stelle sicher, dass die Verbindungseigenschaften deines Datenquellen korrekt eingestellt sind, um die Abfrage effizient auszuführen.
  4. Excel-Parameter verwenden:

    • Um einen Parameter aus einer Zelle in Excel zu verwenden, kannst du den Wert in die Abfrage einfügen. Gehe dazu in Power Query auf "Start" > "Parameter" und wähle "Parameter aus Zelle".
  5. Daten laden:

    • Lade die Daten zurück nach Excel. Der Filter wird nun dynamisch auf Basis des Wertes in der angegebenen Zelle angewendet.

Häufige Fehler und Lösungen

  • Fehler: „Ungültiger Parameter“:

    • Überprüfe, ob der Parameter korrekt benannt und in der SQL-Abfrage verwendet wird. Achte darauf, dass er in der richtigen Syntax eingebettet ist.
  • Fehler: „Daten werden nicht gefiltert“:

    • Stelle sicher, dass der Wert des Parameters tatsächlich in der Datenquelle vorhanden ist. Überprüfe auch, ob die Datentypen übereinstimmen.

Alternative Methoden

Eine alternative Methode zur Verwendung eines dynamischen Filters in Power Query besteht darin, Daten direkt in Excel zu filtern. Anstatt SQL-Abfragen zu verwenden, kannst du auch die Filterfunktion in Excel nutzen, um die Daten anzuzeigen, die den Kriterien entsprechen. Dies kann über Pivot-Tabellen oder die Filterfunktion in den Datenoptionen erreicht werden.


Praktische Beispiele

  1. Beispiel für eine SQL-Abfrage mit Parameter: Angenommen, du möchtest Daten aus einer Tabelle namens Kunden filtern, die einen bestimmten Status haben. Deine SQL-Abfrage könnte wie folgt aussehen:

    SELECT * FROM Kunden WHERE Status = @FilterWert

    Hierbei wäre @FilterWert der Parameter, den du in Power Query erstellt hast.

  2. Excel Zelle als Filter verwenden: Wenn du den Wert für FilterWert in Zelle A1 von Excel hast, kannst du diesen direkt in Power Query einfügen:

    WHERE Status = '" & Excel.CurrentWorkbook(){[Name="FilterWert"]}[Content]{0}[Column1] & "'

Tipps für Profis

  • Nutze dynamische Parameter in Power Query, um die Abfragen flexibler zu gestalten.
  • Überlege, wie du VBA verwenden kannst, um Parameter automatisch aus Zellen zu lesen und SQL-Abfragen auszuführen.
  • Achte darauf, dass du deine Abfragen optimierst, besonders wenn du mit großen Datenmengen arbeitest.

FAQ: Häufige Fragen

1. Wie kann ich einen dynamischen Filter in Power Query erstellen?
Du kannst einen Parameter in Power Query erstellen und diesen in deiner SQL-Abfrage verwenden. Der Wert des Parameters kann auch aus einer Excel-Zelle stammen.

2. Kann ich mehrere Filter gleichzeitig anwenden?
Ja, du kannst mehrere Parameter erstellen und diese in deiner SQL-Abfrage kombinieren, um komplexere Filterbedingungen zu erstellen.

3. Wie funktioniert die Verwendung von Excel-Parametern?
Du kannst einen Wert aus einer Zelle in Excel als Filter verwenden, indem du ihn in die SQL-Abfrage einfügst, wie es im Abschnitt „Praktische Beispiele“ beschrieben wurde.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige