URL のクエリ文字列パラメーターを使用してレポートをフィルター処理するFilter a report using query string parameters in the URL

Power BI サービスでレポートを開くと、レポートの各ページに一意の URL があります。When you open a report in Power BI service, each page of the report has its own unique URL. そのレポート ページをフィルター処理するには、レポート キャンバスの [フィルター] ウィンドウを使うことができます。To filter that report page, you could use the Filters pane on the report canvas. または、クエリ文字列パラメーターを URL に追加して、レポートを事前にフィルター処理できます。Or you could add query string parameters to the URL to pre-filter the report. 同僚に見せるレポートに事前にフィルターを適用したい場合、Perhaps you have a report you'd like to show colleagues and you want to pre-filter it for them. これをフィルター処理する方法の 1 つは、レポートの既定の URL にフィルター パラメーターを追加し、新しい URL 全体をメールで同僚に送ることです。One way to filter it is to start with the default URL for the report, add the filter parameters to the URL, and then email them the entire new URL.

この記事では、小売の分析サンプル レポートを使用します。This article uses the Retail Analysis Sample report. 記事の内容に従いたい場合は、サンプル レポートをダウンロードできます。If you want to follow along, you can download the sample report.

サービスでの Power BI レポートのスクリーンショット。

クエリ文字列パラメーターの用途Uses for query string parameters

Power BI Desktop で作業しているとします。Say you're working in Power BI Desktop. 他の Power BI レポートへのリンクを含むレポートを作成しますが、他のレポートの情報の一部のみを表示する必要があります。You want to create a report that has links to other Power BI reports, but you want to show only some of the information in the other reports. 最初に、クエリ文字列パラメーターを使用してレポートをフィルター処理し、URL を保存します。First, filter the reports using query string parameters and save the URLs. 次に、Desktop でこれらの新しいレポート URL を使用してテーブルを作成します。Next, create a table in Desktop with these new report URLs. その後、レポートを発行して共有します。Then publish and share the report.

また、クエリ文字列パラメーターは、高度な Power BI ソリューションを作成するユーザーが使用することもできます。Another use for query string parameters is for someone creating an advanced Power BI solution. DAX を使用して、現在のレポートでの顧客の選択に基づいて、フィルター処理されたレポート URL を動的に生成するレポートを作成します。Using DAX, they create a report that generates a filtered report URL dynamically based on the selection their customer makes in the current report. 顧客が URL を選択すると、目的の情報のみが表示されます。When customers select the URL, they see only the intended information.

フィルター処理のためのクエリ文字列パラメーターの構文Query string parameter syntax for filtering

パラメーターを使用すれば、値にスペースや特殊文字が含まれている場合でも、レポートで 1 つ以上の値をフィルター処理することができます。With parameters, you can filter the report for one or more values, even if those values contain spaces or special characters. 基本構文はとても簡単です。レポート URL に疑問符を追加し、その後にフィルター構文を追加します。The basic syntax is fairly straightforward; start with the report URL, add a question mark, and then add your filter syntax.

?filter= <テーブル> / <フィールド> eq ' <値> 'URL?filter=Table/Field eq 'value'

URL とフィルターのスクリーンショット。

  • テーブルフィールド の名前では大文字と小文字が区別されますが、 では区別されません。Table and Field names are case-sensitive, value isn't.
  • レポート ビューに表示されないフィールドをフィルター処理することもできます。Fields that are hidden from report view can still be filtered.

フィールドの型Field types

フィールドの型は、数値、日付時刻、または文字にすることができます。使用する型は、データセットに設定されている型と一致する必要があります。Field type can be a number, datetime, or string and the type used must match the type set in the dataset. たとえば、日付として設定されているデータセット列で日付時刻値や数値を検索する場合、"文字列" 型のテーブル列を指定しても動作しません (Table/StringColumn eq 1 など)。For example, specifying a table column of type "string" won't work if you're looking for a datetime or numeric value in a dataset column set as a date, such as Table/StringColumn eq 1.

  • 文字列 は単一引用符で囲む必要があります (例: 'manager name')。Strings must be enclosed with single quotes, as in 'manager name'.
  • 数値 には特別な書式設定は必要ありません。Numbers require no special formatting. 詳細については、この記事の「数値データ型」を参照してください。See Numeric data types in this article for details.
  • 日付と時刻 については、この記事の「日付データ型」を参照してください。Dates and times See Date data types in this article.

以下では構文についてさらに詳しく説明します。If it's still confusing, continue reading and we'll break it down.

フィールドをフィルター処理するFilter on a field

次のようなレポートの URL があるものとします。Let’s assume that the URL to our report is the following.

開始 URL のスクリーンショット。

そして、上のマップの視覚化には、ノースカロライナの店舗が表示されています。And we see in our map visualization above that we have stores in North Carolina. NC は、Store テーブルの Territory フィールドに含まれている、ノースカロライナを表す値です。NC is the value that represents North Carolina in the Territory field of the Store table. したがって、"NC" の店舗のデータだけが表示されるようにレポートをフィルター処理するには、次の文字列を URL に追加します。So to filter the report to show data only for stores in "NC", we append this string to the URL:

?filter=Store/Territory eq 'NC'

ノース カロライナのフィルターを使用した URL のスクリーンショット。

これでレポートがノースカロライナでフィルター処理されました。レポートに含まれるすべての視覚化には、ノースカロライナのデータだけが表示されています。Our report is now filtered for North Carolina; all the visualizations in the report show data for only North Carolina.

ノースカロライナでフィルター処理されたレポートのスクリーンショット。

1 つのフィールド内の複数の値をフィルター処理するFilter on more than one value in a field

1 つのフィールド内の複数の値をフィルター処理するには、and 演算子ではなく in 演算子を使用します。To filter on more than one value in a single field, you use the in operator instead of the and operator. の構文は次のとおりです。The syntax is:

?filter= <テーブル> / <フィールド> in (' <値 1> ', ' <値 2> ')URL?filter=Table/Field in ('value1', 'value2')

同じ例を使用して、"NC" (ノースカロライナ) または "TN" (テネシー) の店舗のデータのみを表示するようにレポートをフィルター処理するには、URL に以下を追加します。Using the same example, to filter the report to show data only for stores in "NC" (North Carolina) or "TN" (Tennessee), append the URL with the following;

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

その他の便利な演算子の一覧については、この記事で後述する「演算子」の表を参照してください。See the Operators table later in the article for a list of other useful operators.

複数のフィールドでフィルター処理するFilter on multiple fields

URL にパラメーターを追加し、複数のフィールドでフィルター処理することもできます。You can also filter on multiple fields by adding additional parameters to your URL. 元のフィルター パラメーターに戻りましょう。Let's go back to our original filter parameter.

?filter=Store/Territory eq 'NC'

追加フィールドでフィルター処理するには、上記と同じ形式で 'and' と別のフィールドを追加します。To filter on additional fields, add an 'and' and another field in the same format as above. 次に例を示します。Here is an example.

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

演算子Operators

Power BI では、'and' に加え、多くの演算子がサポートされています。Power BI supports many operators in addition to 'and'. 次の表に、その演算子とサポートされるコンテンツの種類を一覧表示します。The table below lists those operators along with the content type they support.

演算子operator 定義definition 文字列string 数値number DateDate Example
andand and はいyes yes yes product/price le 200 and price gt 3.5product/price le 200 and price gt 3.5
eqeq 次の値に等しいequals はいyes yes はいyes Address/City eq 'Redmond'Address/City eq 'Redmond'
nene 等しくないnot equal はいyes yes はいyes Address/City ne 'London'Address/City ne 'London'
gege 以上greater than or equal nono はいyes はいyes product/price ge 10product/price ge 10
gtgt より大きいgreater than nono はいyes yes product/price gt 20product/price gt 20
lele 以下less than or equal nono はいyes yes product/price le 100product/price le 100
ltlt 次の値未満less than nono はいyes yes product/price lt 20product/price lt 20
in**in** 含むincluding はいyes yes yes Student/Age in (27, 29)Student/Age in (27, 29)

**in を使用する場合、in の右側の値をかっこで囲んだコンマ区切りのリストにすることができます。または、コレクションを返す単一の式にすることもできます。** When using in, the values to the right of in can be a comma-separated list enclosed in parentheses, or a single expression that returns a collection.

数値データ型Numeric data types

Power BI の URL フィルターには、次の形式で数値を含めることができます。A Power BI URL filter can include numbers in the following formats.

数値型Number type Example
integerinteger 55
longlong 5 L または 5 l5 L or 5 l
doubledouble 5.5、55e-1、0.55e+1、5D、5d、0.5e1D、0.5e1d、5.5D、5.5d、55e-1D、55e-1d5.5 or 55e-1 or 0.55e+1 or 5D or 5d or 0.5e1D or 0.5e1d or 5.5D or 5.5d or 55e-1D or 55e-1d
decimaldecimal 5 M、5 m、5.5 M、または 5.5 m5 M or 5 m or 5.5 M or 5.5 m
floatfloat 5 F、5 f、0.5e1 F、または 0.5e-1 d5 F or 5 f or 0.5e1 F or 0.5e-1 d

日付データ型Date data types

Power BI では、Date および DateTimeOffset データ型で OData V3 と V4 の両方がサポートされます。Power BI supports both OData V3 and V4 for Date and DateTimeOffset data types. OData V3 の場合、日付は単一引用符で囲み、その前には datetime という単語を付ける必要があります。For OData V3, dates must be enclosed in single quotes and be preceded by the word datetime. OData V4 では、単一引用符と datetime という単語を使用する必要ありません。Single quotes and the word datetime aren't needed in OData V4.

日付は EDM 形式を使用して表されます (2019-02-12T00:00:00)。日付を 'YYYY-MM-DD' と指定した場合、Power BI ではそれが 'YYYY-MM-DDT00:00:00' と解釈されます。Dates are represented using the EDM format (2019-02-12T00:00:00): When you specify a date as 'YYYY-MM-DD', Power BI interprets it as 'YYYY-MM-DDT00:00:00'. 月と日は必ず 2 桁 (MM および DD) とする必要があります。Make sure month and day are two digits, MM and DD.

この区別が重要なのはなぜでしょうか?Why does this distinction matter? たとえば、Table/Date gt '2018-08-03' というクエリ文字列パラメーターを作成するとします。Let's say you create a query string parameter Table/Date gt '2018-08-03'. 結果には 2018 年 8 月 3 日が含まれるのでしょうか。または、2018 年 8 月 4 日 で始まるのでしょうか。Will the results include August 3, 2018 or start with August 4, 2018? ご利用のクエリは、Power BI によって、Table/Date gt '2018-08-03T00:00:00' に変換されます。Power BI translates your query to Table/Date gt '2018-08-03T00:00:00'. したがって、結果にはゼロ以外の時刻部分を持つ日付が含まれます。これらの日付は '2018-08-03T00:00:00' よりも大きいためです。So, your results include any dates that have a non-zero time part, because those dates would be greater than '2018-08-03T00:00:00'.

V3 と V4 には他にも違いがあります。There are other differences between V3 and V4. OData V3 では、Dates はサポートされていません。サポートされているのは DateTime のみです。OData V3 does not support Dates, only DateTime. そのため、V3 形式を使用する場合は、それを完全な日時で修飾する必要があります。So if you use the V3 format, you must qualify it with the full date time. "datetime'2019-05-20'" のような日付リテラルは、V3 表記ではサポートされていません。Date literals like "datetime'2019-05-20'" aren't supported in V3 notation. しかし、V4 表記では "2019-05-20" のみの記述するだけで済みます。But you can just write it as "2019-05-20" in V4 notation. V3 と V4 の 2 つの同等のフィルター クエリを次に示します。Here are two equivalent filter queries in V3 and V4:

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

URL フィルター内の特殊文字Special characters in URL filters

テーブル名と列名に含まれる特殊文字Special characters in table and column names

テーブル名と列名に含まれる特殊文字とスペースにはいくつか追加の書式設定が必要です。Special characters and spaces in table and column names require some additional formatting. クエリにスペース、ダッシュ、またはその他の非 ASCII 文字を含める場合は、それらの特殊文字の前に、アンダースコアと X ( _x) で始まる "エスケープ コード" を付け、その後に 4 桁の Unicode を続け、さらにもう 1 つのアンダースコアを付加します。When your query contains spaces, dashes, or other non-ASCII characters, prefix those special characters with an escape code starting with an underscore and an X (_x), then the four-digit Unicode, then another underscore. Unicode が 4 文字未満の場合は、それをゼロで埋める必要があります。If the Unicode is fewer than four characters, you need to pad it with zeroes. 次に例をいくつか示します。Here are some examples.

識別子Identifier UnicodeUnicode Power BI 用のコーディングCoding for Power BI
テーブル名Table Name スペースは 0x20Space is 0x20 Table_x0020_NameTable_x0020_Name
@数値Column@Number @ は 0x40@ is 0x40 Column_x0040_NumberColumn_x0040_Number
[列][Column] [ is 0x005B ] は 0x005D[ is 0x005B ] is 0x005D x005B_Column_x005Dx005B_Column_x005D
列+プラスColumn+Plus + は 0x2B+ is 0x2B Column_x002B_PlusColumn_x002B_Plus

Table_x0020_Name/Column_x002B_Plus eq 3 Unicode の特殊文字をレンダリングするテーブルのビジュアルのスクリーンショット。Table_x0020_Name/Column_x002B_Plus eq 3 Screenshot of table visual rendering special characters for Unicode.

Table_x0020_Special/x005B_Column_x0020_Brackets_x005D eq '[C]' Power BI のコードの特殊文字をレンダリングするテーブルの視覚化のスクリーンショット。Table_x0020_Special/x005B_Column_x0020_Brackets_x005D eq '[C]' Screenshot of table visual rendering special characters for coding for Power B I.

値の特殊文字Special characters in values

URL フィルターでは、単一引用符 (') を除く、フィールド値のすべての特殊文字が既にサポートされています。URL filters already support all special characters in field values, except the single quote ('). エスケープする必要があるのはこの文字だけです。That's the only character you need to escape. 単一引用符文字を検索するには、2 つの単一引用符 ('') を使用します。To search for a single quote character, use two single quotes ('').

例:For example:

  • ?filter=Table/Name eq 'O''Brien' は次のようになります。?filter=Table/Name eq 'O''Brien' becomes:

    Name is O'Brien

  • ?filter=Table/Name eq 'Lee''s Summit' は次のようになります。?filter=Table/Name eq 'Lee''s Summit' becomes:

    Lee's Summit

  • in 演算子もこのエスケープをサポートしています。?filter=Table/Name in ('Lee''s Summit', 'O''Brien') は次のようになります。The in operator supports this escaping as well: ?filter=Table/Name in ('Lee''s Summit', 'O''Brien') becomes:

    Lee's Summit or O'Brien

DAX を使用して複数の値をフィルター処理するUse DAX to filter on multiple values

複数のフィールドにフィルターを適用するもう 1 つの方法は、2 つのフィールドを 1 つの値に連結する計算列を作成することです。Another way to filter on multiple fields is by creating a calculated column that concatenates two fields to a single value. その後は、その値に対してフィルターを適用できます。Then you can filter on that value.

たとえば、[Territory] および [Chain] という 2 つのフィールドがあるとします。For example, we have two fields: Territory and Chain. Power BI Desktop で、TerritoryChain という名前の新しい計算列 (フィールド) を作成します。In Power BI Desktop, create a new Calculated column (Field) called TerritoryChain. フィールド 名にスペースが含まれてはならないことに注意してください。Remember that the Field name can't have any spaces. その列に DAX 式は次のようになります。Here is the DAX formula for that column.

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

レポートを Power BI サービスに公開した後、URL クエリ文字列を使って、NC の Lindseys 店のデータだけを表示するようにフィルター処理します。Publish the report to Power BI service and then use the URL query string to filter to display data for only Lindseys stores in NC.

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

フィルター処理されたレポートのタイルをピン留めするPin a tile from a filtered report

クエリ文字列パラメーターを使ってレポートをフィルター処理した後は、そのレポートの視覚化をダッシュボードにピン留めできます。Once you've filtered the report using query string parameters, you can pin visualizations from that report to your dashboard. ダッシュボードのタイルにはフィルター処理されたデータが表示され、そのダッシュボードのタイルを選ぶと、タイルの作成に使われたレポートが表示されます。The tile on the dashboard displays the filtered data and selecting that dashboard tile opens the report that was used to create it. ただし、URL を使用して実行したフィルター処理は、レポートと共に保存されません。However, the filtering you did using the URL isn't saved with the report. ダッシュボードのタイルを選択すると、フィルター処理されていない状態でレポートが開きます。When you select the dashboard tile, the report opens in its unfiltered state. したがって、ダッシュボードのタイルに表示されるデータは、レポートの視覚化に表示されるデータと一致しません。Thus, the data displayed in the dashboard tile doesn't match the data displayed in the report visualization.

この不一致は、フィルター処理されたダッシュボードとフィルター処理されていないレポートで、異なる結果を見たい場合に役立ちます。This discrepancy is helpful when you want to see different results; filtered on the dashboard and unfiltered in the report.

考慮事項とトラブルシューティングConsiderations and troubleshooting

クエリ文字列パラメーターを使う場合に注意すべき点が 2 つあります。There are a couple of things to be aware of when using the query string parameters.

  • in 演算子を使用する場合は、in の右側の値をかっこで囲んだコンマ区切りのリストにする必要があります。When using the in operator, the values to the right of in must be a comma-separated list enclosed in parentheses.
  • また、Power BI Report Server では、"filter" URL パラメーターを使用して追加のフィルターを指定する機能もサポートされています。Power BI Report Server also supports the ability to specify additional filters using the “filter” URL parameter. Power BI Report Server の URL は次の例のようになります。https://reportserver/reports/powerbi/Store Sales?rs:Embed=true&filter= Store/Territory eq 'NC' and Store/Chain eq 'Fashions Direct'Here's an example of what the URL might look like in Power BI Report Server: https://reportserver/reports/powerbi/Store Sales?rs:Embed=true&filter= Store/Territory eq 'NC' and Store/Chain eq 'Fashions Direct'
  • レポート URL フィルターには、10 個の式 (AND によって連結された 10 個のフィルター) の制限があります。Report URL filters have a 10-expression limit (10 filters connected by AND).
  • JavaScript の制限により、long データ型は (2^53-1) となります。The long data type is (2^53-1) due to JavaScript limitations.
  • Power BI には、URL クエリ文字列に含まれる文字数の制限はありません。Power BI doesn't limit the number of characters in URL query strings. ブラウザーによって長さの制限が異なります。Different browsers have different length restrictions.

URL フィルターは、一部の埋め込みシナリオではサポートされており、他のシナリオではサポートされていません。URL filters are supported in some embedding scenarios and not in others.

次の手順Next steps

視覚化をダッシュボードにピン留めするPin a visualization to a dashboard
無料試用版にサインアップSign up for a free trial

他にわからないことがある場合は、More questions? Power BI コミュニティで質問してみてくださいTry asking the Power BI Community