URL'de sorgu dizesi parametreleri kullanarak bir raporu filtrelemeFilter a report using query string parameters in the URL

Power BI hizmetinde bir raporu açtığınızda, rapordaki her sayfanın kendine ait bir URL'si bulunur.When you open a report in Power BI service, each page of the report has its own unique URL. Bu rapor sayfasının filtrelemek için rapor tuvalindeki Filtreler bölmesini kullanabilirsiniz.To filter that report page, you could use the Filters pane on the report canvas. Alternatif olarak URL'ye sorgu dizesi parametreleri ekleyerek rapora ön filtreleme uygulayabilirsiniz.Or you could add query string parameters to the URL to pre-filter the report. İş arkadaşlarınıza göstermek istediğiniz bir raporunuz olabilir ve bu raporu onlar için önceden filtrelemek isteyebilirsiniz.Perhaps you have a report you'd like to show colleagues and you want to pre-filter it for them. Filtre uygulamanın bir yolu raporun varsayılan URL'si ile başlamak, filtre parametrelerini URL'ye eklemek ve ardından iş arkadaşlarınıza yeni URL'nin tamamını e-posta ile göndermektir.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.

Bu makalede Perakende Analizi Örneği raporu kullanılmıştır.This article uses the Retail Analysis Sample report. Bu kılavuzla birlikte ilerlemek için örnek raporu indirebilirsiniz.If you want to follow along, you can download the sample report.

Hizmette Power BI raporunun ekran görüntüsü.

Sorgu dizisi parametrelerinin kullanımlarıUses for query string parameters

Power BI Desktop'ta çalıştığınızı düşünelim.Say you're working in Power BI Desktop. Diğer Power BI raporlarına bağlantılı bir rapor oluşturmak istiyorsunuz ancak diğer raporlardaki bilgilerin yalnızca bir bölümünü göstermeyi tercih ediyorsunuz.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. İlk olarak sorgu dizesi parametrelerini kullanarak raporları filtrelemeniz ve URL'leri kaydetmeniz gerekir.First, filter the reports using query string parameters and save the URLs. Ardından bu rapor URL'leriyle Desktop uygulamasında yeni bir tablo oluşturabilirsiniz.Next, create a table in Desktop with these new report URLs. Son adımda da bu raporu yayımlayıp paylaşabilirsiniz.Then publish and share the report.

Sorgu dizesi parametrelerinin başka bir kullanımı da gelişmiş Power BI çözümü oluşturmaktır.Another use for query string parameters is for someone creating an advanced Power BI solution. DAX kullanarak dinamik olarak müşterisinin geçerli raporda yaptığı seçimleri temel alan filtrelenmiş rapor URL'si üreten bir rapor oluşturur.Using DAX, they create a report that generates a filtered report URL dynamically based on the selection their customer makes in the current report. Müşteriler URL'yi seçtiğinde yalnızca istenen bilgileri görür.When customers select the URL, they see only the intended information.

Filtreleme için sorgu dizesi parametresi söz dizimiQuery string parameter syntax for filtering

Parametreleri kullanarak boşluk veya özel karakter içerenler dahil olmak üzere raporu bir veya daha fazla değer için filtreleyebilirsiniz.With parameters, you can filter the report for one or more values, even if those values contain spaces or special characters. 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.The basic syntax is fairly straightforward; start with the report URL, add a question mark, and then add your filter syntax.

URL?filter=Tablo/Alan eq 'değer'URL?filter=Table/Field eq 'value'

Filtre içeren URL'nin ekran görüntüsü.

  • Tablo ve Alan adları büyük/küçük harfe duyarlıdır, değer ise değildir.Table and Field names are case-sensitive, value isn't.
  • Rapor görünümünden gizlenen alanlar yine de filtrelenebilir.Fields that are hidden from report view can still be filtered.

Alan türleriField types

Alan türü sayı, tarih saat veya dize olabilir ve kullanılan türün veri kümesindeki tür kümesiyle eşleşmesi gerekir.Field type can be a number, datetime, or string and the type used must match the type set in the dataset. Örneğin tarih olarak belirlenmiş bir veri kümesi sütununda (Table/StringColumn eq 1 gibi) bir tarih saat veya sayısal değer arıyorsanız tablo sütununun "dize" türünde belirtilmesi uygun olmayacaktır.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.

  • Dizelerin, 'yönetici adı' gibi tek tırnak içine alınması gerekir.Strings must be enclosed with single quotes, as in 'manager name'.
  • Sayılar için özel biçimlendirmeye gerek yoktur.Numbers require no special formatting. Ayrıntılar için bu makalenin Sayısal veri türleri bölümüne bakın.See Numeric data types in this article for details.
  • Tarih ve saatler Bu makaledeki Tarih veri türleri bölümüne bakın.Dates and times See Date data types in this article.

Yine de karmaşık geliyorsa ayrıntıları görmek için okumaya devam edin.If it's still confusing, continue reading and we'll break it down.

Bir alanı filtrelemeFilter on a field

Aşağıdakinin raporumuzun URL'si olduğunu kabul edelim.Let’s assume that the URL to our report is the following.

Başlatma URL'sinin ekran görüntüsü.

Yukarıdaki harita görselleştirmemizde Kuzey Carolina'da mağazalarımız olduğunu görüyoruz.And we see in our map visualization above that we have stores in North Carolina. NC, Store tablosunun Territory alanındaki Kuzey Carolina'yı temsil eden değerdir.NC is the value that represents North Carolina in the Territory field of the Store table. Raporu yalnızca "NC" içindeki mağazaları göstermek üzere filtrelemek için URL'ye şu dizeyi ekleyin: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'

Kuzey Carolina filtresine sahip URL'nin ekran görüntüsü.

Raporumuz şimdi Kuzey Carolina için filtrelendi, raporda bulunan tüm görselleştirmeler yalnızca Kuzey Carolina'ya ait verileri gösterir.Our report is now filtered for North Carolina; all the visualizations in the report show data for only North Carolina.

Kuzey Carolina için filtrelenmiş raporun ekran görüntüsü.

Alandaki birden çok değere göre filtrelemeFilter on more than one value in a field

Tek bir alanda birden çok değere göre filtrelemek için and işleci yerine in işlecini kullanın.To filter on more than one value in a single field, you use the in operator instead of the and operator. Söz dizimi aşağıdaki gibidir:The syntax is:

URL?filter=Tablo/Alan in ('değer1', 'değer2')URL?filter=Table/Field in ('value1', 'value2')

Aynı örneği kullanarak raporu yalnızca "NC"de (Kuzey Carolina) veya “TN”de (Tennessee) bulunan mağazaları göstermek üzere filtrelemek için URL'ye aşağıdakileri ekleyin;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')

Diğer yararlı işleçlerin listesi için makalenin devamındaki İşleçler tablosuna bakın.See the Operators table later in the article for a list of other useful operators.

Birden çok alanda filtrelemeFilter on multiple fields

Ayrıca URL'nize ek parametreler ekleyerek birden çok alanda filtreleme yapabilirsiniz.You can also filter on multiple fields by adding additional parameters to your URL. Özgün filtre parametremize geri dönelim.Let's go back to our original filter parameter.

?filter=Store/Territory eq 'NC'

Ek alanlarda filtreleme yapmak için bir 'and' ve yukarıdaki biçimde başka bir alan ekleyin.To filter on additional fields, add an 'and' and another field in the same format as above. Bu işlemin bir örneği aşağıdadır.Here is an example.

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

İşleçlerOperators

Power BI, 'and' haricinde birçok işleci de destekler.Power BI supports many operators in addition to 'and'. Aşağıdaki tabloda bu işleçler ve destekledikleri içerik türleri listelenmiştir.The table below lists those operators along with the content type they support.

işleçoperator tanımdefinition dizestring sayınumber TarihDate ÖrnekExample
andand veand evetyes evetyes evetyes product/price le 200 and price gt 3.5product/price le 200 and price gt 3.5
eqeq eşittirequals evetyes evetyes evetyes Address/City eq 'Redmond'Address/City eq 'Redmond'
nene eşit değildirnot equal evetyes evetyes evetyes Address/City ne 'London'Address/City ne 'London'
gege büyüktür veya eşittirgreater than or equal hayırno evetyes evetyes product/price ge 10product/price ge 10
gtgt büyüktürgreater than hayırno evetyes evetyes product/price gt 20product/price gt 20
lele küçüktür veya eşittirless than or equal hayırno evetyes evetyes product/price le 100product/price le 100
ltlt küçüktürless than hayırno evetyes evetyes product/price lt 20product/price lt 20
in**in** dahilincluding evetyes evetyes evetyes Student/Age in (27, 29)Student/Age in (27, 29)

**in işlecini kullanırken in ifadesinin sağ tarafındaki değerler parantez içinde virgülle ayrılmış liste veya koleksiyon döndüren tek bir ifade olabilir.** 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.

Sayısal veri türleriNumeric data types

Power BI URL filtresi aşağıdaki biçimlerde sayı içerebilir.A Power BI URL filter can include numbers in the following formats.

Sayı türüNumber type ÖrnekExample
integerinteger 55
longlong 5 L veya 5 l5 L or 5 l
doubledouble 5,5 veya 55e-1 veya 0,55e+1 veya 5D veya 5d veya 0,5e1D veya 0,5e1d veya 5,5D veya 5,5d veya 55e-1D veya 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 veya 5 m ya da 5,5 M veya 5,5 m5 M or 5 m or 5.5 M or 5.5 m
floatfloat 5 F veya 5 f ya da 0,5e1 F veya 0,5e-1 d5 F or 5 f or 0.5e1 F or 0.5e-1 d

Tarih veri türleriDate data types

Power BI, Date ve DateTimeOffset veri türleri için OData V3 ve V4 desteği sunar.Power BI supports both OData V3 and V4 for Date and DateTimeOffset data types. OData V3 için tarihlerin tek tırnak içine alınması ve önüne datetime sözcüğünün yazılması gerekir.For OData V3, dates must be enclosed in single quotes and be preceded by the word datetime. OData V4'te tek tırnak ve datetime sözcüğü gerekli değildir.Single quotes and the word datetime aren't needed in OData V4.

Tarihler EDM biçiminde (2019-02-12T00:00:00) gösterilir: Bu da YYYY-AA-GG biçiminde bir tarih belirttiğinizde Power BI bunu YYYY-AA-GGT00:00:00 şeklinde yorumlar.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'. Ay ve günün iki basamaklı (AA ve GG) olduğundan emin olun.Make sure month and day are two digits, MM and DD.

Bu ayrım neden önemlidir?Why does this distinction matter? Table/Date gt ‘2018-08-03’ şeklinde bir sorgu dizesi parametresi oluşturduğunuzu düşünelim.Let's say you create a query string parameter Table/Date gt '2018-08-03'. Sonuçlar 3 Ağustos 2018'i kapsayacak mı yoksa 4 Ağustos 2018'den mi başlayacak?Will the results include August 3, 2018 or start with August 4, 2018? Power BI sorgunuzu Table/Date gt '2018-08-03T00:00:00' şekline dönüştürür.Power BI translates your query to Table/Date gt '2018-08-03T00:00:00'. Dolayısıyla sonuçlarınız saat bölümü sıfır olmayan tarihleri kapsar çünkü bunlar '2018-08-03T00:00:00' tarihinden büyüktür.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 ile V4 arasında başka farklılıklar da vardır.There are other differences between V3 and V4. OData V3'te Dates desteği yoktur; yalnızca DateTime desteklenir.OData V3 does not support Dates, only DateTime. Bu nedenle, V3 biçimini kullanırsanız bunu tam tarih saat değeriyle nitelemeniz gerekir.So if you use the V3 format, you must qualify it with the full date time. "datetime'2019-05-20'" gibi tarih değişmez değerleri V3 gösteriminde desteklenmez.Date literals like "datetime'2019-05-20'" aren't supported in V3 notation. Ama bunu V4 gösteriminde doğrudan "2019-05-20" olarak yazabilirsiniz.But you can just write it as "2019-05-20" in V4 notation. Aşağıda V3 ve V4 biçimlerinde iki eşdeğer filtre sorgusu verilmiştir:Here are two equivalent filter queries in V3 and V4:

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

URL filtrelerindeki özel karakterlerSpecial characters in URL filters

Tablo ve sütun adlarındaki özel karakterlerSpecial characters in table and column names

Tablo ve sütun adlarında özel karakter ve boşluk kullanımı için gerçekleştirilmesi gereken ek biçimlendirme adımları vardır.Special characters and spaces in table and column names require some additional formatting. Sorgunuz; boşluklar, tireler veya ASCII olmayan başka karakterler içerdiğinde, o özel karakterlere önek olarak bir alt çizgi ve bir X ( _x) ile başlayan, ardından dört haneli Unicode ve başka bir alt çizgi ile devam eden bir kaçış kodu verin.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 dört karakterden kısaysa sıfırlarla ile tamamlamanız gerekir.If the Unicode is fewer than four characters, you need to pad it with zeroes. Aşağıda bazı örnekler verilmiştir.Here are some examples.

TanımlayıcıIdentifier UnicodeUnicode Power BI için kodlamaCoding for Power BI
Tablo AdıTable Name Boşluk 0x20Space is 0x20 Tablo_x0020_AdıTable_x0020_Name
Sütun@NumarasıColumn@Number @ 0x40@ is 0x40 Sütun_x0040_NumarasıColumn_x0040_Number
[Sütun][Column] [ is 0x005B ] is 0x005D[ is 0x005B ] is 0x005D x005B_Column_x005Dx005B_Column_x005D
Sütun+ArtıColumn+Plus + 0x2B+ is 0x2B Sütun_x002B_ArtıColumn_x002B_Plus

Table_x0020_Name/Column_x002B_Plus eq 3 Unicode için özel karakterler içeren tablo görselinin ekran görüntüsü.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 ile kodlama için özel karakterler içeren tablo görselinin ekran görüntüsü.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 karakterlerSpecial characters in values

URL filtreleri zaten alan değerlerinde tek tırnak işareti (') dışında tüm özel karakterleri destekler.URL filters already support all special characters in field values, except the single quote ('). Kaçış uygulamanız gereken tek karakter budur.That's the only character you need to escape. Tek tırnak karakterini aramak için iki tane tek tırnak işareti ('') kullanın.To search for a single quote character, use two single quotes ('').

Örnek:For example:

  • ?filter=Table/Name eq 'O''Brien' şöyle olur:?filter=Table/Name eq 'O''Brien' becomes:

    Ad O'Brien

  • ?filter=Table/Name eq 'Lee''s Summit' şöyle olur:?filter=Table/Name eq 'Lee''s Summit' becomes:

    Lee'nin Zirvesi

  • in işleci şu kaçışı da destekler: ?filter=Table/Name in ('Lee''s Summit', 'O''Brien') şöyle olur:The in operator supports this escaping as well: ?filter=Table/Name in ('Lee''s Summit', 'O''Brien') becomes:

    Lee'nin Zirvesi veya O'Brien

DAX kullanarak birden fazla değerde filtrelemeUse DAX to filter on multiple values

Birden fazla alanda filtrelemenin başka bir yolu da iki alanı tek bir alanda birleştiren bir hesaplanmış sütun oluşturmaktır.Another way to filter on multiple fields is by creating a calculated column that concatenates two fields to a single value. Ardından, elde ettiğiniz bu değeri filtreleyebilirsiniz.Then you can filter on that value.

Örneğin, iki alanımız bulunuyor: Territory ve Chain.For example, we have two fields: Territory and Chain. Power BI Desktop'ta, TerritoryChain adlı yeni bir Hesaplanmış sütun oluşturun (Alan).In Power BI Desktop, create a new Calculated column (Field) called TerritoryChain. Alan adında boşluk olamayacağını unutmayın.Remember that the Field name can't have any spaces. Bu sütun için DAX formülü aşağıdadır.Here is the DAX formula for that column.

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

Raporu Power BI hizmetinde yayımlayın ve ardından yalnızca NC'deki Lindseys mağazalarına ait verileri görüntülemek üzere filtrelemek için URL sorgu dizesini kullanın.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'

Filtrelenen bir rapordan kutucuk sabitlemePin a tile from a filtered report

Sorgu dizesi parametrelerini kullanarak raporu filtreledikten sonra bu rapordaki görselleştirmeleri panonuza sabitleyebilirsiniz.Once you've filtered the report using query string parameters, you can pin visualizations from that report to your dashboard. Pano üzerindeki kutucuk filtrelenmiş verileri görüntüler ve bu pano kutucuğunu seçtiğinizde, kutucuğu oluşturmak için kullanılan rapor açılır.The tile on the dashboard displays the filtered data and selecting that dashboard tile opens the report that was used to create it. Ancak URL ile uyguladığınız filtre, rapora kaydedilmez.However, the filtering you did using the URL isn't saved with the report. Pano kutucuğunu seçtiğinizde rapor filtrelenmemiş bir şekilde açılır.When you select the dashboard tile, the report opens in its unfiltered state. Bu da pano kutucuğunda görüntülenen verilerin, rapor görselleştirmesinde görüntülenen verilerle eşleşmeyeceği anlamına gelir.Thus, the data displayed in the dashboard tile doesn't match the data displayed in the report visualization.

Bu uyuşmazlık panoda filtrelenmiş ve raporda filtrelenmemiş olarak değişik sonuçlar görmek istediğinizde yararlıdır.This discrepancy is helpful when you want to see different results; filtered on the dashboard and unfiltered in the report.

Önemli noktalar ve sorun gidermeConsiderations and troubleshooting

Sorgu dizesi parametrelerini kullanırken dikkat edilmesi gereken bazı noktalar vardır.There are a couple of things to be aware of when using the query string parameters.

  • in işlecini kullanırken in ifadesinin sağındaki değerlerin parantez içinde virgülle ayrılmış değerler listesi olması gerekir.When using the in operator, the values to the right of in must be a comma-separated list enclosed in parentheses.
  • Power BI Rapor Sunucusu, “filtre” URL parametresini kullanarak ek filtre belirtme özelliğini de destekler.Power BI Report Server also supports the ability to specify additional filters using the “filter” URL parameter. URL’nin Power BI Rapor Sunucusu’nda nasıl gözüktüğünü şu örnekte görebilirsiniz: 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'
  • Rapor URL filtrelerinin 10 ifade sınırı vardır (AND ile bağlanan 10 filtre).Report URL filters have a 10-expression limit (10 filters connected by AND).
  • JavaScript sınırlamaları nedeniyle uzun veri türü (2^53-1) olarak belirlenmiştir.The long data type is (2^53-1) due to JavaScript limitations.
  • Power BI, URL sorgu dizelerindeki karakter sayısını sınırlamaz.Power BI doesn't limit the number of characters in URL query strings. Her tarayıcının kendine özgü uzunluk sınırlaması vardır.Different browsers have different length restrictions.

URL filtreleri yalnızca bazı ekleme senaryolarında desteklenir.URL filters are supported in some embedding scenarios and not in others.

Sonraki adımlarNext steps

Panoya görselleştirme sabitlemePin a visualization to a dashboard
Ücretsiz deneme için kaydolunSign up for a free trial

Başka bir sorunuz mu var?More questions? Power BI Topluluğu'na sorunTry asking the Power BI Community