Freigeben über


Filtern eines Berichts mithilfe von Abfragezeichenfolgenparametern in der URL

Wenn Sie im Power BI-Dienst einen Bericht öffnen, hat jeder Seite des Berichts eine eigene eindeutige URL. Zum Filtern der jeweiligen Berichtsseite können Sie den Filterbereich des Berichtszeichenbereichs verwenden. Sie können aber auch die URL mit Abfragezeichenfolgenparametern versehen, um den Bericht vorab zu filtern. Das ist beispielsweise hilfreich, wenn Sie Kollegen einen bereits vorgefilterten Bericht zeigen möchten. Zum Filtern können Sie etwa der Standard-URL des Berichts die gewünschten Filterparameter hinzufügen und dann die gesamte neue URL per E-Mail versenden.

In diesem Artikel wird der Bericht „Retail Analysis Sample“ (Analysebeispiel für den Einzelhandel) verwendet. Laden Sie den Beispielbericht herunter, wenn Sie die einzelnen Schritte nachvollziehen möchten.

Screenshot des Power BI-Berichts im Dienst.

Verwendungsmöglichkeiten für Abfragezeichenfolgenparameter

Angenommen, Sie arbeiten mit Power BI Desktop. Sie möchten einen Bericht erstellen, der Links zu anderen Power BI-Berichten enthält, aber nur einige der enthaltenen Informationen sollen in den anderen Berichten angezeigt werden. Filtern Sie zunächst die Berichte mithilfe von Abfragezeichenfolgenparametern, und speichern Sie die URLs. Erstellen Sie anschließend eine Tabelle mit diesen neuen Berichts-URLs in Power BI Desktop. Veröffentlichen Sie den Bericht anschließend, und geben Sie ihn frei.

Auch beim Erstellen einer erweiterten Power BI-Lösung können Abfragezeichenfolgenparameter verwendet werden. In DAX wird ein Bericht erstellt, der eine gefilterte Berichts-URL dynamisch basierend auf der Auswahl des Kunden im aktuellen Bericht generiert. Wenn Kunden auf die URL klicken, werden ihnen nur die gewünschten Informationen angezeigt.

Syntax für Abfragezeichenfolgenparameter zum Filtern

Mit Parametern können Sie den Bericht nach mindestens einem Wert filtern, auch wenn dieser Wert Leerzeichen oder Sonderzeichen enthält. Die grundlegende Syntax ist ziemlich einfach; beginnen Sie mit der Berichts-URL, und fügen Sie dann die Filtersyntax in einer Abfragezeichenfolge hinzu. Eine Abfragezeichenfolge in einer URL beginnt mit einem Fragezeichen (?), z. B.:

URL?filter=Tabelle/Feld eq 'Wert'

Screenshot: URL mit Filter

  • Bei den Namen für Tabelle und Feld muss die Groß-/Kleinschreibung beachtet werden, beim Wert nicht.
  • Zum Filtern können auch Felder verwendet werden, die in der Berichtsansicht ausgeblendet sind.

Wenn der Filterparameter nicht der erste Parameter in der Abfragezeichenfolge ist, wird er mit dem vorherigen Parameter mit einem kaufmännischen Und-Zeichen (&) verknüpft, z. B.:

URL?reportId=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx&pageName=ReportSection&filter=Table/Field eq 'value'

Feldtypen

Feldtypen können eine Zahl, ein datetime-Wert oder eine Zeichenfolge sein und müssen dem Typ entsprechen, der im semantischen Modell festgelegt ist. Das Festlegen einer Tabellenspalte auf „Zeichenfolge“ funktioniert beispielsweise nicht, wenn Sie nach einem Datums-/Uhrzeitwert oder einem numerischen Wert in einer semantischen Modellspalte suchen, die auf „Datum“ festgelegt ist (z.B. Table/StringColumn eq 1).

  • Zeichenfolgen müssen mit einfachen Anführungszeichen umschlossen werden, z. B. 'Managername'.
  • Für Zahlen ist keine besondere Formatierung erforderlich. Weitere Details finden Sie in diesem Artikel unter Numerische Datentypen.
  • Datumsangaben und Uhrzeiten finden Sie in diesem Artikel. unter Date-Datentypen.

Auf all das gehen wir im weiteren Verlauf dieses Artikels noch näher ein.

Filtern nach einem Feld

Angenommen, die URL unseres Berichts lautet wie folgt:

Screenshot für das Starten der URL.

Die vorherige Kartendarstellung zeigt, dass wir über Filialen in North Carolina verfügen. NC ist der Wert für „North Carolina“ im Feld Territory der Tabelle Store. Wenn Sie den Bericht so filtern möchten, dass nur Daten für Filialen in „NC“ angezeigt werden, fügen Sie der URL die folgende Zeichenfolge an:

?filter=Store/Territory eq 'NC'

Screenshot: URL mit Filter für North Carolina

Der Bericht wird für North Carolina gefiltert, und alle Visualisierungen im Bericht zeigen nur noch Daten für North Carolina.

Screenshot des für North Carolina gefilterten Berichts.

In einem Feld nach mehr als einem Wert filtern

Verwenden Sie den Operator in anstelle von and, um im selben Feld nach mehr als einem Wert zu filtern. Die Syntax ist:

URL?filter=Table/Field in ('value1', 'value2')

Für das Beispiel oben bedeutet das: Wenn Sie den Bericht filtern möchten, sodass nur Daten für Filialen in „NC“ (North Carolina) oder „TN“ (Tennessee) angezeigt werden, fügen Sie Folgendes an die URL an:

?filter=Store/Territory in ('NC', 'TN')

In der Tabelle Operatoren weiter unten im Artikel finden Sie eine Liste mit weiteren nützlichen Operatoren.

Filtern nach mehreren Feldern

Sie können auch nach mehreren Felder filtern, indem Sie weitere Parameter zu Ihrer URL hinzufügen. Hier nochmals der ursprüngliche Filterparameter.

?filter=Store/Territory eq 'NC'

Um nach weiteren Feldern zu filtern, fügen Sie ein and und ein weiteres Feld im selben Format wie im vorherigen Beispiel hinzu. Es folgt ein Beispiel.

?filter=Store/Territory eq 'NC' and Store/Chain eq 'Fashions Direct'

Operatoren

Power BI unterstützt außer and noch viele weitere Operatoren. In der folgenden Tabelle werden diese Operatoren zusammen mit dem Inhaltstyp, den sie unterstützen, aufgeführt.

Operator Definition String Number Date Beispiel
and und ja Ja Ja product/price le 200 and price gt 3.5
eq Ist gleich ja Ja Ja Address/City eq 'Redmond'
ne Ungleich ja Ja Ja Address/City ne 'London'
ge Größer als oder gleich nein ja Ja product/price ge 10
gt Größer als nein ja Ja product/price gt 20
le Kleiner als oder gleich nein ja Ja product/price le 100
lt Kleiner als nein ja Ja product/price lt 20
in* Einschließlich ja Ja Ja Student/Age in (27, 29)

* Wenn Sie in verwenden, können die Werte auf der rechten Seite von in einer durch Kommas getrennten Liste entsprechen, die in Klammern eingeschlossen wird, oder einem einzelnen Ausdruck, der eine Sammlung zurückgibt. Beispiele finden Sie im Artikel zum IN-Operator.

Numerische Datentypen

Ein Filter für Power BI-URLs kann Zahlen in den folgenden Formaten enthalten:

Zahlentyp Beispiel
integer 5
long 5L oder 5l
double 5,5 oder 55e-1 oder 0,55e+1 oder 5D oder 5d oder 0,5e1D oder 0,5e1d oder 5,5D oder 5,5d oder 55e-1D oder 55e-1d
decimal 5M oder 5m oder 5,5M oder 5,5m
float 5F oder 5f oder 0,5e1F oder 0,5e-1d

Date-Datentypen

Power BI unterstützt OData V3 and V4 für Date- und DateTimeOffset-Datentypen. Für OData V3 müssen Sie Datumsangaben in einfache Anführungszeichen einschließen und ihnen das Wort „datetime“ voranstellen. Einfache Anführungszeichen und das Wort „datetime“ sind in OData V4 nicht erforderlich.

Datumsangaben werden im EDM-Format (2019-02-12T00:00:00) dargestellt: Wenn Sie also ein Datum im Format YYYY-MM-DD angeben, interpretiert Power BI dieses als YYYY-MM-DDT00:00:00. Stellen Sie sicher, dass Sie Monate und Tage mit zwei Ziffern angeben, also MM und DD.

Warum ist diese Unterscheidung wichtig? Angenommen, Sie erstellen den Abfragezeichenfolgenparameter Table/Date gt '2018-08-03' . Ist der 3. August 2018 in den Ergebnissen enthalten oder wird mit dem 4. August 2018 begonnen? Power BI übersetzt die Abfrage in Table/Date gt '2018-08-03T00:00:00' . Daher enthalten die Ergebnisse alle Datumsangaben, die einen Zeitabschnitt ungleich 0 aufweisen, da diese Datumsangaben größer als '2018-08-03T00:00:00' sind.

Es gibt weitere Unterschiede zwischen V3 und V4. OData V3 unterstützt keine Datumsangaben, sondern nur DateTime-Werte. Wenn Sie also das V3-Format verwenden, müssen Sie es mit dem vollständigen DateTime-Wert qualifizieren. Datumsliterale wie „datetime'2019-05-20'“ werden in der V3-Notation nicht unterstützt. Sie können sie jedoch in der V4-Notation einfach als „2019-05-20“ schreiben. Nachfolgend sehen Sie zwei äquivalente Filterabfragen in V3 und V4:

  • OData V4-Format: filter=Table/Date gt 2019-05-20
  • OData V3-Format: filter=Table/Date gt datetime'2019-05-20T00:00:00'

Sonderzeichen in URL-Filtern

Sonderzeichen in Tabellen- und Spaltennamen

Sonderzeichen, Leerzeichen und führende Zahlen in Tabellen- und Spaltennamen erfordern mehr Formatierung. Wenn Ihre Abfrage Leerzeichen, Bindestriche, führende Zahlen oder Nicht-ASCII-Zeichen enthält, stellen Sie diesen Sonderzeichen eine Escapesequenz voran, die mit einem Unterstrich und einem X (_x) beginnt, gefolgt vom 4-stelligen Unicode und einem weiteren Unterstrich. Wenn der Unicode weniger als vier Zeichen enthält, müssen Sie diesen mit Nullen ergänzen. Hier sehen Sie einige Beispiele:

Bezeichner Unicode Codierung für Power BI
Tabellenname Leerzeichen ist 00x20. Table_x0020_Name
Column@Number @ ist 00x40 Column_x0040_Number
[Column] [ is 0x005B ] is 0x005D _x005B_Column_x005D_
Column+Plus + ist 0x2B Column_x002B_Plus
2TableName 2 ist x0032 _x0032_TableName_

Table_x0020_Name/Column_x002B_Plus eq 3 Screenshot des Tabellenvisuals, das Sonderzeichen für Unicode rendert.

Table_x0020_Special/_x005B_Column_x0020_Brackets_x005D_ eq '[C]' Screenshot des Tabellenvisuals, das Sonderzeichen für das Programmieren in Power BI rendert.

Sonderzeichen in Werten

URL-Filter unterstützen die meisten Sonderzeichen in Feldwerten, aber einige erfordern auch Escapesequenzen. Um beispielsweise nach einem einfachen Anführungszeichen zu suchen, verwenden Sie zwei einfache Anführungszeichen ('').

  • ?filter=Table/Name eq 'O''Brien' wird zu:

    Name is O'Brien

  • ?filter=Table/Name eq 'Lee''s Summit' wird zu:

    Lee's Summit

  • Auch für den in-Operator wird die Verwendung dieses Escapezeichens unterstützt: ?filter=Table/Name in ('Lee''s Summit', 'O''Brien') wird zu:

    Lee's Summit or O'Brien

In der folgenden Liste sind einige Sonderzeichen aufgeführt, die Escapesequenzen in Feldwerten erfordern.

Zeichen Escapesequenz
(ein Leerzeichen) %20
' ''
% %25
+ %2B
/ %2F
? %3F
# %23
& %26

Standard-URL-Escapezeichen

Wenn Sie eine URL mit Leerzeichen und anderen Sonderzeichen verwenden, ersetzen Browser diese möglicherweise automatisch durch Standardescapezeichen. Stellen Sie sich vor, Sie erstellen diese URL-Abfragezeichenfolge:

https://app.powerbi.com/groups/me/reports/b7dea1d4-d9f0-47aa-a88d-xxxxxxxxxxxx/ReportSection2?filter=Executives/Executive eq 'Andrew Ma'

Das nach „Andrew Ma“ gefilterte Beispiel zur Kundenrentabilität (Customer Profitability Sample) wird geöffnet. Wenn Sie jedoch die URL betrachten, kann sie nun wie folgt aussehen:

https://app.powerbi.com/groups/me/reports/b7dea1d4-d9f0-47aa-a88d-xxxxxxxxxxxx/ReportSection2?filter=Executives%2FExecutive%20eq%20%27Andrew%20Ma%27

Der Browser hat den Leerraum zwischen Andrew und Ma durch %20 ersetzt. Dies gilt auch für die anderen Leerzeichen. Der Schrägstrich zwischen dem Tabellennamen Executives und dem Feldnamen Executive wurde durch %2F ersetzt, und das einfache Anführungszeichen ' wurde durch %27 ersetzt.

Diese Version einer URL kann nützlich sein. Beispielsweise können Sie sie in Microsoft Teams im Chat posten, und daraufhin werden die gewünschten gefilterten Ergebnisse angezeigt.

Verwenden von DAX, um nach mehreren Werten zu filtern

Eine andere Möglichkeit, nach mehreren Feldern zu filtern, besteht darin, eine berechnete Spalte zu erstellen, in der zwei Felder zu einem einzelnen Wert verkettet werden. Anschließend können Sie nach diesem Wert filtern.

Angenommen, es gibt zwei Felder: „Territory“ und „Chain“. In diesem Szenario können Sie in Power BI Desktop eine neue berechnete Spalte (Feld) namens „TerritoryChain“ erstellen. Beachten Sie, dass der Feldname keine Leerzeichen enthalten darf. Die DAX-Formel für diese Spalte sieht wie folgt aus:

TerritoryChain = [Territory] & " - " & [Chain]

Veröffentlichen Sie den Bericht für den Power BI-Dienst, und verwenden Sie die URL-Abfragezeichenfolge, um die Daten zu filtern und nur Lindseys-Filialen in NC anzuzeigen.

https://app.powerbi.com/groups/me/reports/8d6e300b-696f-498e-b611-41ae03366851/ReportSection3?filter=Store/TerritoryChain eq 'NC – Lindseys'

Anheften einer Kachel aus einem gefilterten Bericht

Nachdem Sie den Bericht mithilfe von Abfragezeichenfolgenparametern gefiltert haben, können Sie Visualisierungen aus diesem Bericht an Ihr Dashboard anheften. Die Kachel auf dem Dashboard zeigt die gefilterten Daten, und wenn Sie die Dashboardkachel auswählen, wird der zugrunde liegende Bericht geöffnet. Die Filterung, die Sie mit der URL ausgeführt haben, wird jedoch nicht mit dem Bericht gespeichert. Wenn Sie die Dashboardkachel auswählen, wird der Bericht im ungefilterten Zustand geöffnet. Das heißt, die Daten auf der Dashboardkachel entsprechen nicht den Daten aus der Berichtsvisualisierung.

Diese Abweichung ist nützlich, wenn Sie unterschiedliche Ergebnisse anzeigen möchten (gefilterte Ergebnisse im Dashboard, ungefilterte Ergebnisse im Bericht).

Zu beachtende Aspekte und Problembehandlung

Im Zusammenhang mit Abfragezeichenfolgenparametern müssen ein paar Dinge beachtet werden.

  • Wenn Sie den in-Operator verwenden, müssen die Werte auf der rechten Seite von in einer durch Trennzeichen getrennten Liste entsprechen, die in Klammern eingeschlossen ist.

  • Der Power BI-Berichtsserver unterstützt auch die Möglichkeit, mithilfe des URL-Parameters „filter“ mehr als einen Filter anzugeben. Beispielsweise könnte die URL im Power BI-Berichtsserver wie folgt aussehen: https://reportserver/reports/powerbi/Store Sales?rs:Embed=true&filter= Store/Territory eq 'NC' and Store/Chain eq 'Fashions Direct'

  • Berichts-URL-Filter verfügen über eine Einschränkung von zehn Ausdrücken (zehn Filter die per AND verbunden sind).

  • Der Datentyp „long“ ist aufgrund von Beschränkungen bei JavaScript (2^53–1).

  • URL-Abfragezeichenfolgen sind auf 2.000 Zeichen beschränkt. Dieser Grenzwert umfasst Escapesequenzen für Sonderzeichen (z. B. ein Leerzeichen, %, +).

  • Sie können nicht nach Tabellen- oder Spaltennamen filtern, die mit den Großbuchstaben INFbeginnen, z. B. nach einem Tabellennamen, der mit „INFORMATION“ beginnt. INF in Großbuchstaben ist ein spezieller Wert in OData. Wenn Sie möchten, dass ein Tabellen- oder Spaltenname mit „INF“ beginnt, schreiben Sie ihn stattdessen in Kleinbuchstaben („inf“).

  • Tabellen- und Feldnamen können chinesische Zeichen enthalten, die im Unicode-Format ausgedrückt werden. Angenommen, Sie möchten einen Filter anwenden, der lautet: 表/人 eq '张力' (Tabelle/Person eq '张力') Der Filter wird in _x8868_/_x4eba_ eq '张力' konvertiert.

    Screenshot der in ein Unicode-Format konvertierten chinesischen Zeichen in einer Suchzeichenfolge.

Einbettungsszenarios

URL-Filter werden in einigen eingebetteten Szenarios unterstützt, in anderen nicht.

Weitere Fragen? Stellen Sie Ihre Frage in der Power BI-Community.