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.
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'
- 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.
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'
Laporan kami sekarang difilter untuk North Carolina; semua visualisasi dalam laporan hanya menampilkan data untuk 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
Table_x0020_Special/_x005B_Column_x0020_Brackets_x005D_ eq '[C]'
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:?filter=Table/Name eq 'Lee''s Summit'
menjadi:Operator
in
juga mendukung pelepasan ini:?filter=Table/Name in ('Lee''s Summit', 'O''Brien')
menjadi:
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 '张力'.
Skenario penyematan
Filter URL didukung dalam beberapa skenario penyematan dan bukan di skenario lain.
- Menyematkan laporan pada portal atau situs web yang aman didukung.
- Filter URL didukung di Power BI Embedded.
- Pemfilteran string kueri tidak berfungsi dengan Terbitkan ke web atau Ekspor ke PDF.
- Sematkan dengan bagian web laporan di SharePoint Online tidak mendukung filter URL.
- Teams tidak mengizinkan penentuan URL.
Konten terkait
Ada pertanyaan lagi? Coba tanyakan kepada Komunitas Power BI