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.

サービスでの 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, she creates a report that generates a filtered report URL dynamically based on the selection her 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.

URL?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.

アプリ内のレポートReports in apps

アプリ内のレポートに URL フィルターを追加する場合は、書式設定が少し異なります。If you want to add a URL filter to a report in an app, the formatting is a little different. アプリ内のレポートへのリンクには、URL に追加されるクエリ パラメーター (ctid) が含まれます。Links to reports in an app have a query parameter (ctid) that gets added to the URL. クエリ パラメーターは、アンパサンド (&) で区切る必要があります。Query parameters need to be separated by an ampersand (&). そのため、"?filter=" の代わりに "&filter=" を (ctid パラメーターの後ろで) 使ってクエリをアペンドする必要があります。So you need to append the query with “&filter=” (after the ctid parameter) instead of “?filter=”.

次の例のようにします。Like this example:

app.powerbi.com/groups/me/apps/app-id/reports/report-id/ReportSection?ctid=ctid&filter=Table/Field eq 'value'app.powerbi.com/groups/me/apps/app-id/reports/report-id/ReportSection?ctid=ctid&filter=Table/Field eq 'value'

フィールドの型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 - 'manager name'.
  • 数値には特別な書式設定は必要ありません。Numbers require no special formatting
  • 日付と時刻は単一引用符で囲む必要があります。Dates and times must be enclosed with single quotes. OData v3 では、これらの前には datetime という単語が必要ですが、OData v4 では datetime は必要ありません。In OData v3 they must be preceded by the word datetime, but datetime isn’t needed in OData v4.

以下では構文についてさらに詳しく説明します。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.


この例は、Retail Analysis サンプルが基になっています。This example is based on the Retail Analysis sample.

"NC" (ノースカロライナ) の店舗のデータだけが表示されるようにレポートをフィルター処理するには、URL に以下を追加します。To filter the report to show data only for stores in "NC" (North Carolina), append the URL with the following;

?filter=Store/Territory eq 'NC'?filter=Store/Territory eq 'NC'

フィルターを含む URL


NC は、Store テーブルの Territory フィールドに格納されている値です。NC is a value stored in the Territory field of the Store table.

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

複数のフィールドでフィルター処理する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'


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 日付Date Example
andand およびand はいyes はいyes はいyes product/price le 200 and price gt 3.5product/price le 200 and price gt 3.5
eqeq equalsequals はい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 いいえno はいyes はいyes product/price ge 10product/price ge 10
gtgt より大きいgreater than いいえno はいyes はいyes product/price gt 20product/price gt 20
lele 以下less than or equal いいえno はいyes はいyes product/price le 100product/price le 100
ltlt より小さいless than いいえno はい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. 日付は 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), so when you specify a date as YYYY-MM-DD, Power BI interprets it as YYYY-MM-DDT00:00:00.

この区別が重要なのはなぜでしょうか? 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 に変換されるため、ゼロ以外の時刻部分を含む日付が結果に含まれます。これは、日付が 2018-08-03T00:00:00 より大きいためです。Since Power BI translates your query to Table/Date gt 2018-08-03T00:00:00, your results include any dates that have a non-zero time part since those dates would be greater than 2018-08-03T00:00:00.

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

特殊文字とスペースにはいくつか追加の書式設定が必要です。Special characters and spaces 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 0x0058 ] は 0x0050[ is 0x0058 ] is 0x0050 _x0058_Column_x0050_x0058_Column_x0050
列+プラスColumn+Plus + は 0x2B+ is 0x2B Column_x002B_PlusColumn_x002B_Plus

Table_x0020_Name/Column_x002B_Plus eq 3  特殊文字をレンダリングするテーブルのビジュアルTable_x0020_Name/Column_x002B_Plus eq 3 table visual rendering special characters

Table_x0020_Special/x005B_Column_x0020_Brackets_x005D eq '[C]' 特殊文字をレンダリングするテーブルのビジュアルTable_x0020_Special/x005B_Column_x0020_Brackets_x005D eq '[C]' table visual rendering special characters

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 で、レポートの URL に含ませることによってレポート パラメーターを渡すことができます。In Power BI Report Server, you can pass report parameters by including them in a report URL. レポート処理エンジンに直接渡されるため、これらの URL パラメーターにはプレフィックスが付いていません。These URL parameters aren't prefixed because they're passed directly to the report processing engine.
  • クエリ文字列のフィルター処理は、Web に公開では機能しません。Query string filtering doesn't work with Publish to web.
  • SharePoint Online にレポート Web パーツを埋め込む」では、URL のフィルター処理はサポートされていません。Embed with report web part in SharePoint Online doesn't support URL filters.
  • JavaScript の制限により、long データ型は (2^53-1) となります。The long data type is (2^53-1) due to Javascript limitations.
  • レポート URL フィルターには、10 個の式 (AND によって連結された 10 個のフィルター) の制限があります。Report URL filters have a 10-expression limit (10 filters connected by AND).

次の手順Next steps

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

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