Filter laporan menggunakan parameter string query di dalam URL

Saat Anda membuka laporan di layanan Power BI, setiap halaman laporan memiliki URL uniknya sendiri. Untuk memfilter halaman laporan tersebut, Anda bisa menggunakan panel Filter pada kanvas laporan. Atau Anda dapat menambahkan parameter string kueri ke URL untuk melakukan prafilter laporan. Mungkin Anda memiliki laporan yang ingin Anda tunjukkan kepada kolega dan Anda ingin melakukan prafilter untuk mereka. Salah satu cara untuk memfilternya adalah memulai dengan URL default untuk laporan, menambahkan parameter filter ke URL, lalu mengirimi mereka email ke seluruh URL baru.

Artikel ini menggunakan sampel laporan Analisis Ritel. Jika Anda ingin mengikuti, Anda dapat mengunduh sampel laporan.

Screenshot of Power BI report in the service.

Digunakan untuk parameter string kueri

Katakanlah Anda bekerja di Power BI Desktop. Anda ingin membuat laporan yang memiliki tautan ke laporan Power BI lain, tetapi Anda hanya ingin memperlihatkan beberapa informasi dalam laporan lain. Pertama, filter laporan menggunakan parameter string kueri dan simpan URL. Selanjutnya, buat tabel di Desktop dengan URL laporan baru ini. Kemudian terbitkan dan bagikan laporan.

Penggunaan lain untuk parameter string kueri adalah untuk seseorang yang membuat solusi Power BI tingkat lanjut. Di DAX, mereka membuat laporan yang menghasilkan URL laporan yang difilter secara dinamis berdasarkan pilihan yang dibuat pelanggan mereka dalam laporan saat ini. Saat pelanggan memilih URL, mereka hanya melihat informasi yang dimaksudkan.

Sintaks parameter string kueri untuk pemfilteran

Dengan parameter, Anda dapat memfilter laporan untuk satu atau beberapa nilai, bahkan jika nilai tersebut berisi spasi atau karakter khusus. Sintaks dasarnya cukup mudah; mulailah dengan URL laporan, tambahkan tanda tanya, lalu tambahkan sintaks filter Anda.

URL?filter=Table/Bidang eq 'nilai'

Screenshot of U R L with filter.

  • Nama Tabel dan Bidang peka huruf besar/kecil; nilai tidak.
  • Bidang yang disembunyikan dari tampilan laporan masih dapat difilter.

Jenis bidang

Jenis bidang bisa berupa angka, tanggalwaktu, atau string dan jenis yang digunakan harus cocok dengan jenis yang diatur dalam model semantik. Misalnya, menentukan kolom tabel jenis "string" tidak berfungsi jika Anda mencari nilai tanggalwaktu atau numerik dalam kolom model semantik yang ditetapkan sebagai tanggal, seperti Table/StringColumn eq 1.

  • String harus diapit dengan tanda kutip tunggal, seperti dalam 'nama manajer'.
  • Angka tidak memerlukan pemformatan khusus. Lihat Jenis data numerik pada artikel ini untuk detailnya.
  • Tanggal dan waktu Lihat Jenis data tanggal di artikel ini.

Jika masih membingungkan, lanjutkan membaca dan kami akan memecahnya.

Filter pada bidang

Mari kita asumsikan bahwa URL ke laporan kita adalah sebagai berikut.

Screenshot of starting URL.

Dan kita melihat dalam visualisasi peta sebelumnya bahwa kita memiliki toko di North Carolina. NC adalah nilai yang mewakili North Carolina di bidang Wilayah dari tabel Penyimpanan. Jadi untuk memfilter laporan agar hanya menampilkan data untuk toko di "NC", kami menambahkan string ini ke URL:

?filter=Store/Territory eq 'NC'

Screenshot of U R L with filter for North Carolina.

Laporan kami sekarang difilter untuk North Carolina; semua visualisasi dalam laporan hanya menampilkan data untuk North Carolina.

Screenshot of Report filtered for North Carolina.

Memfilter lebih dari satu nilai dalam bidang

Untuk memfilter lebih dari satu nilai dalam satu bidang, Anda menggunakan operator di alih-alih operator dan. Sintaksnya adalah:

URL?filter=Tabel/Bidangdi ('value1', 'value2')

Menggunakan contoh yang sama, untuk memfilter laporan guna menampilkan data hanya untuk penyimpanan di "NC" (North Carolina) atau "TN" (Tennessee), tambahkan URL dengan yang berikut;

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

Lihat tabel Operator nanti di artikel untuk daftar operator lain yang berguna.

Filter pada beberapa bidang

Anda juga dapat memfilter pada beberapa bidang dengan menambahkan lebih banyak parameter ke URL Anda. Mari kita kembali ke parameter filter asli kita.

?filter=Store/Territory eq 'NC'

Untuk memfilter bidang lainnya, tambahkan 'dan' dan bidang lain dalam format yang sama dengan contoh sebelumnya. Berikut adalah contohnya.

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

Operator

Power BI mendukung banyak operator selain 'dan'. Tabel berikut mencantumkan operator tersebut bersama dengan tipe konten yang didukungnya.

Operator Definisi String Angka Tanggal Contoh
dan dan yes yes yes produk/harga le 200 dan harga gt 3.5
Eq setara yes yes yes Alamat/Kota eq 'Redmond'
ne Tidak setara yes yes yes Alamat/Kota ne 'London'
ge lebih dari atau sama no yes yes produk/harga ge 10
gt lebih dari no yes yes product/price gt 20
le kurang dari atau sama no yes yes produk/harga le 100
Lt kurang dari no yes yes produk/harga lt 20
di* termasuk yes yes yes Siswa/Usia di (27. 29)

* Saat Anda menggunakan di, nilai di sebelah kanan dalam dapat berupa daftar yang dipisahkan koma yang diapit dalam tanda kurung, atau ekspresi tunggal yang mengembalikan koleksi. Lihat artikel Operator IN sebagai contohnya.

Tipe data numerik

Filter URL Power BI dapat menyertakan angka dalam format berikut.

Jenis angka Contoh
Integer 5
long 5 L atau 5 l
Double 5,5 atau 55e-1 atau 0,55e+1 atau 5D atau 5d atau 0,5e1D atau 0,5e1d atau 5,5D atau 5,5d atau 55e-1D atau 55e-1d
desimal 5 M atau 5 m atau 5,5 M atau 5,5 m
float 5 F atau 5 f atau 0,5e1 F atau 0,5e-1 d

Jenis data tanggal

Power BI mendukung jenis data OData V3 dan V4 untuk Tanggal dan DateTimeOffset. Untuk OData V3, Anda perlu mengapit tanggal dalam tanda kutip tunggal dan mendahuluinya dengan tanggalwaktu kata. Anda tidak memerlukan tanda kutip tunggal dan tanggalwaktu kata di OData V4.

Tanggal ditunjukkan menggunakan format EDM (2019-02-12T00:00:00): Saat Anda menentukan tanggal sebagai 'YYYY-MM-DD', Power BI menafsirkannya sebagai 'YYYY-MM-DDT00:00:00'. Pastikan bulan dan hari adalah dua digit, MM dan DD.

Mengapa perbedaan ini penting? Katakanlah Anda membuat parameter string kueri Tabel/Tanggal gt '2018-08-03'. Apakah hasilnya akan mencakup 3 Agustus 2018 atau dimulai dengan 4 Agustus 2018? Power BI menerjemahkan kueri Anda ke Tabel/Tanggal gt '2018-08-03T00:00:00'. Jadi, hasil yang Anda peroleh mencakup tanggal apa pun yang memiliki bagian waktu bukan nol, karena tanggal tersebut akan lebih besar dari '2018-08-03T00:00:00'.

Terdapat perbedaan lain antara V3 dan V4. OData V3 tidak mendukung Tanggal, hanya TanggalWaktu. Jadi, jika Anda menggunakan format V3, Anda harus memenuhi syarat dengan waktu tanggal penuh. Harfiah tanggal seperti "datetime'2019-05-20'" tidak didukung dalam notasi V3. Tetapi Anda hanya dapat menulisnya sebagai "2019-05-20" dalam notasi V4. Berikut adalah dua kueri filter yang setara di V3 dan V4:

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

Karakter khusus dalam filter URL

Karakter khusus dalam nama tabel dan kolom

Karakter khusus, spasi, dan angka di depan dalam nama tabel dan kolom memerlukan lebih banyak pemformatan. Saat kueri Anda berisi spasi, tanda hubung, angka di depan, atau karakter non-ASCII lainnya, awali karakter khusus tersebut dengan kode escape yang dimulai dengan garis bawah dan X (_x), lalu Unicode empat digit, lalu garis bawah lainnya. Jika Unicode kurang dari empat karakter, Anda perlu memacunya dengan nol. Berikut adalah beberapa contoh.

pengidentifikasi Unicode Pengodean untuk Power BI
Nama Tabel Ruang adalah 00x20 Table_x0020_Name
Kolom@Nomor @ adalah 00x40 Column_x0040_Number
[Kolom] [ adalah 0x005B ] adalah 0x005D _x005B_Column_x005D_
Kolom+Plus + 0x2B Kolom_x002B_Plus
2TableName 2 adalah x0032 _x0032_TableName_

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]' Screenshot of table visual rendering special characters for coding for Power B I.

Karakter khusus dalam nilai

Filter URL mendukung sebagian besar karakter khusus dalam nilai bidang, tetapi beberapa juga memerlukan kode escape. Misalnya, untuk mencari satu karakter kutipan, gunakan dua tanda kutip tunggal ('').

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

    Name is O'Brien

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

    Lee's Summit

  • Operator in juga mendukung pelepasan ini: ?filter=Table/Name in ('Lee''s Summit', 'O''Brien') menjadi:

    Lee's Summit or O'Brien

Berikut adalah daftar beberapa karakter khusus yang memerlukan kode escape dalam nilai bidang.

karakter Kode escape
(spasi) 20%
' ''
% 25%
+ %2B
/ %2F
? %3F
# 23%
& %26

Karakter escape URL standar

Saat Anda menggunakan URL dengan spasi dan karakter khusus lainnya di dalamnya, browser dapat secara otomatis menggantinya dengan karakter escape standar. Katakanlah Anda membuat string kueri URL ini:

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

Hal ini membuka Sampel Profitabilitas Pelanggan, difilter ke Andrew Ma. Tetapi jika Anda melihat URL, sekarang mungkin terlihat seperti ini:

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

Browser telah menggantikan ruang antara Andrew dan Ma dengan %20, demikian juga spasi lainnya. Ini mengganti garis miring antara nama tabel Executives dan nama bidang Executive dengan %2F, dan mengganti kuotasi tunggal ' dengan %27.

Versi URL ini mungkin berguna. Misalnya, Anda dapat menempelkannya di obrolan di Microsoft Teams, dan mengembalikan hasil yang difilter yang diinginkan.

Menggunakan DAX untuk memfilter beberapa nilai

Cara lain untuk memfilter pada beberapa bidang adalah dengan membuat kolom terhitung yang menggabungkan dua bidang ke satu nilai. Kemudian Anda dapat memfilter pada nilai itu.

Misalnya, kami memiliki dua bidang: Wilayah dan Rantai. Pada Power BI Desktop, buat kolom Terhitung baru (Bidang) yang disebut TerritoryChain. Ingat bahwa Nama Bidang tidak boleh memiliki spasi. Berikut adalah rumus DAX untuk kolom tersebut.

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

Terbitkan laporan ke layanan Power BI lalu gunakan string kueri URL untuk memfilter dan menampilkan data hanya untuk penyimpanan Lindseys di NC.

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

Sematkan petak dari laporan yang difilter

Setelah Anda memfilter laporan menggunakan parameter string kueri, Anda dapat menyematkan visualisasi dari laporan tersebut ke dasbor Anda. Petak peta di dasbor menampilkan data yang difilter dan memilih petak dasbor tersebut membuka laporan yang digunakan untuk membuatnya. Namun, pemfilteran yang Anda lakukan menggunakan URL tidak disimpan dengan laporan. Saat Anda memilih petak dasbor, laporan terbuka dalam status tidak difilter. Dengan demikian, data yang ditampilkan di petak dasbor tidak cocok dengan data yang ditampilkan dalam visualisasi laporan.

Perbedaan ini berguna ketika Anda ingin melihat hasil yang berbeda; difilter di dasbor dan tidak difilter dalam laporan.

Pertimbangan dan pemecahan masalah

Ada beberapa hal yang perlu diperhatikan saat menggunakan parameter string kueri.

  • Saat Anda menggunakan operator di , nilai di sebelah kanan masuk harus berupa daftar yang dipisahkan koma yang diapit dalam tanda kurung.

  • Server Laporan Power BI juga mendukung kemampuan untuk menentukan lebih dari satu filter menggunakan parameter URL "filter". Berikut adalah contoh tampilan URL dalam Power BI Report Server: https://reportserver/reports/powerbi/Store Sales?rs:Embed=true&filter= Store/Territory eq 'NC' and Store/Chain eq 'Fashions Direct'

  • Filter URL laporan memiliki batas 10 ekspresi (10 filter yang tersambung oleh AND).

  • Jenis data panjang adalah (2^53-1) karena keterbatasan JavaScript.

  • String kueri URL dibatasi hingga 2000 karakter. Batas ini mencakup kode escape untuk karakter khusus (misalnya, spasi, %, +).

  • Anda tidak dapat memfilter nama tabel atau kolom yang dimulai dengan huruf kapital INF, termasuk, misalnya, nama tabel yang dimulai dengan "INFORMATION". INF huruf besar adalah nilai khusus dalam OData. Jika Anda ingin memulai nama tabel atau kolom dengan "INF", jadikan "inf" huruf kecil sebagai gantinya.

  • Nama tabel dan bidang dapat berisi karakter Bahasa Tionghoa yang dinyatakan dalam formulir Unicode. Misalnya, Anda ingin menerapkan filter yang 表/人 eq '张力' (ini berarti Table/Person eq '张力'). Filter dikonversi ke _x8868_/_x4eba_ eq '张力'.

    Screenshot of Chinese characters converted to Unicode format in a search string.

Skenario penyematan

Filter URL didukung dalam beberapa skenario penyematan dan bukan di skenario lain.

Ada pertanyaan lagi? Coba tanyakan kepada Komunitas Power BI