URL'deki sorgu dizesi parametrelerini kullanarak raporu filtreleme

Bir raporu Power BI hizmeti açtığınızda, raporun her sayfasının kendi benzersiz URL'si vardır. Bu rapor sayfasını filtrelemek için rapor tuvalinde Filtreler bölmesini kullanabilirsiniz. İsterseniz, raporu önceden filtrelemek için URL'ye sorgu dizesi parametreleri de ekleyebilirsiniz. İş arkadaşlarınıza göstermek istediğiniz bir raporunuz olabilir ve bu raporu onlar için önceden filtrelemek isteyebilirsiniz. Bunu filtrelemenin bir yolu, raporun varsayılan URL'si ile başlamak, filtre parametrelerini URL'ye eklemek ve ardından yeni URL'nin tamamını e-postayla göndermektir.

Bu makalede Perakende Analizi Örneği raporu kullanılmaktadır. Takip etmek isterseniz örnek raporu indirebilirsiniz.

Screenshot of Power BI report in the service.

Sorgu dizesi parametreleri için kullanır

Power BI Desktop'ta çalıştığınızı varsayalım. Diğer Power BI raporlarına bağlantılar içeren bir rapor oluşturmak istiyorsunuz, ancak diğer raporlarda yalnızca bazı bilgileri göstermek istiyorsunuz. İlk olarak, sorgu dizesi parametrelerini kullanarak raporları filtreleyin ve URL'leri kaydedin. Ardından, Masaüstü'nde bu yeni rapor URL'leriyle bir tablo oluşturun. Ardından raporu yayımlayın ve paylaşın.

Sorgu dizesi parametrelerinin bir diğer kullanımı, gelişmiş bir Power BI çözümü oluşturan birinin kullanımıdır. DAX'ta, müşterinin geçerli raporda yaptığı seçime göre dinamik olarak filtrelenmiş rapor URL'si oluşturan bir rapor oluşturur. Müşteriler URL'yi seçtiğinde yalnızca hedeflenen bilgileri görür.

Filtreleme için sorgu dizesi parametresi söz dizimi

Parametrelerle, bu değerler boşluk veya özel karakterler içerse bile raporu bir veya daha fazla değer için filtreleyebilirsiniz. Temel söz dizimi oldukça basittir; rapor URL'si ile başlayın, bir soru işareti ekleyin ve ardından filtre söz diziminizi ekleyin.

URL?filter=Tablo/Alanı 'value'

Screenshot of U R L with filter.

  • Tablo ve Alan adları büyük/küçük harfe duyarlıdır; değeri değil.
  • Rapor görünümünden gizlenen alanlar yine filtrelenebilir.

Alan türleri

Alan türü bir sayı, tarih saat veya dize olabilir ve kullanılan türün anlam modelinde ayarlanan türle eşleşmesi gerekir. Örneğin, tarih olarak ayarlanmış bir anlam modeli sütununda table/StringColumn eq 1 gibi bir tarih saat veya sayısal değer arıyorsanız, "dize" türünde bir tablo sütunu belirtmek işe yaramaz.

  • Dizeler , 'yönetici adı'nda olduğu gibi tek tırnak içine alınmalıdır.
  • Sayılar için özel biçimlendirme gerekmez. Ayrıntılar için bu makaledeki Sayısal veri türleri bölümüne bakın.
  • Tarihler ve saatler Bu makaledeki Tarih veri türlerine bakın.

Hala kafa karıştırıcıysa okumaya devam edin.

Bir alana filtre uygulama

Raporumuzun URL'sinin aşağıdaki olduğunu varsayalım.

Screenshot of starting URL.

Ve önceki harita görselleştirmemizde Kuzey Carolina'da mağazalarımız olduğunu görüyoruz. NC, Store tablosunun Territory alanında Kuzey Carolina'nın temsil ettiği değerdir. Bu nedenle raporu yalnızca "NC" içindeki depoların verilerini gösterecek şekilde filtrelemek için bu dizeyi URL'ye ekleriz:

?filter=Store/Territory eq 'NC'

Screenshot of U R L with filter for North Carolina.

Raporumuz artık Kuzey Carolina için filtrelendi; rapordaki tüm görselleştirmeler yalnızca Kuzey Carolina verilerini gösterir.

Screenshot of Report filtered for North Carolina.

Alandaki birden fazla değere filtre uygulama

Tek bir alandaki birden fazla değere filtre uygulamak için ve işleci yerine in işlecini kullanırsınız. Söz dizimi aşağıdaki gibidir:

URL?filter=Tablo/Alanıiçinde ('değer1', 'değer2')

Aynı örneği kullanarak raporu yalnızca "NC" (Kuzey Carolina) veya "TN" (Tennessee) mağazalarının verilerini gösterecek şekilde filtrelemek için URL'yi aşağıdakiyle ekleyin;

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

Diğer yararlı işleçlerin listesi için makalenin devamında yer alan İşleçler tablosuna bakın.

Birden çok alana filtre uygulama

Ayrıca, URL'nize daha fazla parametre ekleyerek birden çok alanı filtreleyebilirsiniz. Özgün filtre parametremize geri dönelim.

?filter=Store/Territory eq 'NC'

Daha fazla alana filtre uygulamak için önceki örnekle aynı biçimde bir 've' ve başka bir alan ekleyin. İşte bir örnek.

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

İşleçler

Power BI, 've' özelliğine ek olarak birçok işleci destekler. Aşağıdaki tabloda bu işleçler ve destekledikleri içerik türü listelenmiştir.

İşleç Tanım String Sayı Tarih Örnek
and ve evet evet evet ürün/fiyat le 200 ve fiyat gt 3.5
Eq equals evet evet evet Adres/Şehir eq 'Redmond'
ne eşit değil evet evet evet Adres/Şehir ne 'Londra'
Ge büyüktür veya eşittir hayır evet evet ürün/fiyat ge 10
Gt büyüktür hayır evet evet ürün/fiyat gt 20
Le küçüktür veya eşittir hayır evet evet ürün/fiyat le 100
Teğmen küçüktür hayır evet evet ürün/fiyat lt 20
Inç* Dahil evet evet evet Öğrenci/Yaş (27, 29)

* içinde kullandığınızda, öğesinin sağındaki değerler ayraç içine alınmış virgülle ayrılmış bir liste veya koleksiyon döndüren tek bir ifade olabilir. Örnekler için IN İşleci makalesine bakın.

Sayısal veri türleri

Power BI URL filtresi aşağıdaki biçimlerde sayılar içerebilir.

Sayı türü Örnek
integer 5
long 5 L veya 5 l
double 5,5 veya 55e-1 ya da 0,55e+1 ya da 5D ya da 5d ya da 0,5e1D ya da 0,5e1d ya da 5,5D ya da 55e-1D veya 55e-1d
ondalık 5 M veya 5 m ya da 5,5 M veya 5,5 m
float 5 F veya 5 f veya 0,5e1 F veya 0,5e-1 d

Tarih verisi türleri

Power BI, Date ve DateTimeOffset veri türleri için hem OData V3 hem de V4'i destekler. OData V3 için tarihleri tek tırnak içine almanız ve bunların önüne datetime sözcüğünü eklemeniz gerekir. OData V4'te tek tırnak işaretine ve datetime sözcüğüne ihtiyacınız yoktur.

Tarihler EDM biçimi (2019-02-12T00:00:00: 00) kullanılarak gösterilir: Bir tarihi 'YYYY-AA-GG' olarak belirttiğinizde, Power BI bunu 'YYYY-MM-DDT00:00:00' olarak yorumlar. Ay ve günün mm ve DD olmak üzere iki basamak olduğundan emin olun.

Bu ayrım neden önemlidir? Table/Date gt '2018-08-03' sorgu dizesi parametresi oluşturduğunuzu varsayalım. Sonuçlar 3 Ağustos 2018'i içerecek mi yoksa 4 Ağustos 2018 ile mi başlayacak? Power BI sorgunuzu Table/Date gt '2018-08-03T00:00:00' olarak çevirir. Bu nedenle, sonuçlarınız sıfır olmayan bir zaman bölümüne sahip tarihleri içerir, çünkü bu tarihler '2018-08-03T00:00:00' değerinden büyük olur.

V3 ile V4 arasında başka farklar da vardır. OData V3 Tarihler'i desteklemez, yalnızca DateTime'ı destekler. Bu nedenle, V3 biçimini kullanıyorsanız tam tarih saatiyle nitelemeniz gerekir. "datetime'2019-05-20'" gibi tarih değişmez değerleri V3 gösteriminde desteklenmez. Ancak V4 gösteriminde "2019-05-20" olarak yazabilirsiniz. V3 ve V4'te iki eşdeğer filtre sorgusu aşağıdadır:

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

URL filtrelerindeki özel karakterler

Tablo ve sütun adlarındaki özel karakterler

Tablo ve sütun adlarındaki özel karakterler, boşluklar ve baştaki sayılar daha fazla biçimlendirme gerektirir. Sorgunuzda boşluklar, tireler, baştaki sayılar veya diğer ASCII olmayan karakterler varsa, bu özel karakterlerin önüne alt çizgi ve X (_x) ile başlayan bir kaçış kodu, ardından dört basamaklı Unicode ve sonra başka bir alt çizgi ekleyin. Unicode dört karakterden azsa sıfırlarla doldurmanız gerekir. İşte bazı örnekler.

Tanımlayıcı Unicode Power BI için kodlama
Tablo Adı Alan 00x20 Table_x0020_Name
Sütun@Numarası @ 00x40 Column_x0040_Number
[Sütun] [ 0x005B ] 0x005D _x005B_Column_x005D_
Column+Plus + 0x2B Column_x002B_Plus
2TableName 2, x0032'dir _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.

Değerlerdeki özel karakterler

URL filtreleri alan değerlerinde çoğu özel karakteri destekler, ancak bazıları da kaçış kodları gerektirir. Örneğin, tek tırnak karakteri aramak için iki tek tırnak ('') kullanın.

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

    Name is O'Brien

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

    Lee's Summit

  • işleci in bu kaçışı da destekler: ?filter=Table/Name in ('Lee''s Summit', 'O''Brien') olur:

    Lee's Summit or O'Brien

Alan değerlerinde kaçış kodları gerektiren bazı özel karakterlerin listesi aşağıdadır.

Karakter Kaçış kodu
(boşluk) %20
' ''
% %25
+ %2B
/ %2F
? %3F
# %23
& %26

Standart URL kaçış karakterleri

Bir URL'yi boşluklar ve diğer özel karakterlerle kullandığınızda, tarayıcılar bunları otomatik olarak standart kaçış karakterleriyle değiştirebilir. Bu URL sorgu dizesini oluşturduğunuzu varsayalım:

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

Müşteri Kârlılığı Örneği'ni açar ve Andrew Ma olarak filtrelenmiştir. Ancak URL'ye bakarsanız şu şekilde görünebilir:

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

Tarayıcı ile arasındaki AndrewMa boşluğu ile aynı şekilde diğer boşluklarla %20değiştirmiştir. Tablo adı ile alan adı Executives arasındaki eğik çizgiyi ile ve tek tırnak işaretiyle %2F'%27değiştirdi.Executive

URL'nin bu sürümü yararlı olabilir. Örneğin, Microsoft Teams'de sohbette yapıştırabilirsiniz ve istenen filtrelenmiş sonuçları döndürür.

Birden çok değere filtre uygulamak için DAX kullanma

Birden çok alanı filtrelemenin bir diğer yolu da iki alanı tek bir değerle birleştirir. Ardından bu değere göre filtreleyebilirsiniz.

Örneğin, iki alanımız vardır: Territory ve Chain. Power BI Desktop'ta TerritoryChain adlı yeni bir Hesaplanan sütun (Alan) oluşturun. Alan adında boşluk bulunmadığını unutmayın. Bu sütunun DAX formülü aşağıdadır.

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

Raporu Power BI hizmeti yayımlayın ve ardından NC'de yalnızca Lindseys depolarının verilerini filtrelemek ve görüntülemek için URL sorgu dizesini kullanın.

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

Filtrelenmiş rapordan kutucuk sabitleme

Sorgu dizesi parametrelerini kullanarak raporu filtreledikten sonra, bu rapordaki görselleştirmeleri panonuza sabitleyebilirsiniz. Panodaki kutucuk filtrelenmiş verileri görüntüler ve bu pano kutucuğu seçildiğinde, bu verileri oluşturmak için kullanılan rapor açılır. Ancak, URL'yi kullanarak yaptığınız filtreleme raporla birlikte kaydedilmez. Pano kutucuğunu seçtiğinizde rapor filtrelenmemiş durumda açılır. Bu nedenle, pano kutucuğunda görüntülenen veriler rapor görselleştirmesinde görüntülenen veriyle eşleşmez.

Bu tutarsızlık, farklı sonuçlar görmek istediğinizde yararlıdır; filtrelenmiş ve raporda filtrelenmemiş.

Dikkat edilmesi gerekenler ve sorun giderme

Sorgu dizesi parametrelerini kullanırken dikkat etmeniz gereken birkaç şey vardır.

  • in işlecini kullandığınızda, in öğesinin sağındaki değerlerin parantez içine alınmış virgülle ayrılmış bir liste olması gerekir.

  • Power BI Rapor Sunucusu, "filter" URL parametresini kullanarak birden fazla filtre belirtme özelliğini de destekler. Power BI Rapor Sunucusu'da URL'nin nasıl görünebileceğine ilişkin bir örnek aşağıda verilmişti:https://reportserver/reports/powerbi/Store Sales?rs:Embed=true&filter= Store/Territory eq 'NC' and Store/Chain eq 'Fashions Direct'

  • Rapor URL'si filtrelerinin 10 ifade sınırı vardır (AND tarafından bağlanan 10 filtre).

  • JavaScript sınırlamaları nedeniyle uzun veri türü (2^53-1) şeklindedir.

  • URL sorgu dizeleri 2000 karakterle sınırlıdır. Bu sınır, özel karakterler (boşluk, %, + gibi) için kaçış kodlarını içerir.

  • "BİlGİLER" ile başlayan bir tablo adı gibi inf harfiyle başlayan tablo veya sütun adlarına filtre ekleyemezsiniz. Büyük harf INF, OData'daki özel bir değerdir. "INF" ile bir tablo veya sütun adı başlatmak istiyorsanız, bunun yerine küçük harfle "inf" yapın.

  • Tablo ve alan adları Unicode biçiminde ifade edilen Çince karakterler içerebilir. Örneğin, 表/人 eq '张力' (Bu, Table/Person eq '张力' anlamına gelir) bir filtre uygulamak istediğinizi varsayalım. Filtre _x8868_/_x4eba_ '张力' eq'a dönüştürülür.

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

Ekleme senaryoları

URL filtreleri bazı ekleme senaryolarında desteklenir, diğerlerinde desteklenmez.

Başka sorunuz var mı? Power BI Topluluğu sormayı deneyin