กรองรายงานโดยใช้พารามิเตอร์สตริงของคิวรีใน URL

เมื่อคุณเปิดรายงานในบริการของ Power BI แต่ละหน้าของรายงานมี URL ของตัวเองไม่ซ้ํากัน เพื่อกรองหน้ารายงานนั้น คุณสามารถใช้บานหน้าต่างตัวกรองบนพื้นที่รายงาน หรือคุณสามารถเพิ่มพารามิเตอร์สตริงของคิวรีไปยัง URL เพื่อใส่ข้อมูลในรายงานล่วงหน้า บางทีคุณมีรายงานที่คุณต้องการแสดงให้เพื่อนร่วมงานและคุณต้องการใส่ข้อมูลไว้ล่วงหน้า วิธีหนึ่งในการกรองก็คือ การเริ่มต้นด้วย URL ที่เป็นค่าเริ่มต้นสําหรับรายงาน เพิ่มพารามิเตอร์ตัวกรองไปยัง URL และจากนั้นส่ง URL ใหม่ทั้งหมดให้พวกเขาทางอีเมล

บทความนี้ใช้รายงานตัวอย่างการวิเคราะห์ร้านค้าปลีก ถ้าคุณต้องการทําตาม คุณสามารถ ดาวน์โหลดรายงานตัวอย่าง

Screenshot of Power BI report in the service.

ใช้สําหรับพารามิเตอร์สตริงของคิวรี

สมมติว่าคุณกําลังทํางานใน Power BI Desktop คุณต้องการสร้างรายงานที่มีลิงก์ไปยังรายงาน Power BI อื่น ๆ แต่คุณต้องการแสดงข้อมูลเพียงบางส่วนในรายงานอื่น ๆ ก่อนอื่น กรองรายงานโดยใช้พารามิเตอร์สตริงของคิวรีและบันทึก URL ถัดไป สร้างตารางใน Desktop ด้วย URL ของรายงานใหม่เหล่านี้ จากนั้นเผยแพร่และแชร์รายงาน

การใช้งานอื่นสําหรับพารามิเตอร์สตริงของคิวรีมีไว้สําหรับบุคคลที่สร้างโซลูชัน Power BI ขั้นสูง ใน DAX พวกเขาจะสร้างรายงานที่สร้าง URL ของรายงานที่กรองแล้วตามข้อมูลที่ลูกค้าของพวกเขาเลือกในรายงานปัจจุบัน เมื่อลูกค้าเลือก URL พวกเขาเห็นเฉพาะข้อมูลที่กําหนดไว้

ไวยากรณ์พารามิเตอร์สตริงของแบบสอบถามสําหรับการกรอง

ด้วยพารามิเตอร์ คุณสามารถกรองรายงานสําหรับค่าอย่างน้อยหนึ่งค่าหรือมากกว่า แม้ว่าค่าเหล่านั้นประกอบด้วยช่องว่างหรืออักขระพิเศษ ไวยากรณ์พื้นฐานจะค่อนข้างตรงไปตรงมา เริ่มต้นด้วย URL ของรายงาน เพิ่มเครื่องหมายคําถาม จากนั้นเพิ่มไวยากรณ์ตัวกรองของคุณ

URL?filter=ตารางฟิลด์/ eq 'ค่า'

Screenshot of U R L with filter.

  • ชื่อตาราง และ เขตข้อมูล ต้องตรงตามตัวพิมพ์ใหญ่-เล็ก แต่ชื่อเขตข้อมูลต้องตรงตามตัวพิมพ์ใหญ่-เล็ก value ไม่ใช่
  • ยังคงสามารถกรองเขตข้อมูลที่ถูกซ่อนจากมุมมองรายงานได้

ชนิดฟิลด์

ชนิดเขตข้อมูลสามารถเป็นตัวเลข วันที่เวลา หรือสตริงและชนิดที่ใช้ต้องตรงกับชนิดที่กําหนดในแบบจําลองความหมาย ตัวอย่างเช่น การระบุคอลัมน์ในตารางเป็นชนิด "สตริง" จะไม่ทํางานถ้าคุณกําลังค้นหาค่าที่เป็นวันที่เวลาหรือตัวเลขในคอลัมน์แบบจําลองความหมายที่ตั้งค่าเป็นวันที่ เช่น ตาราง/StringColumn eq 1

  • สตริงต้องถูกล้อมรอบด้วยเครื่องหมายอัญประกาศเดี่ยวเหมือนใน 'ชื่อผู้จัดการ'
  • ตัวเลข ไม่จําเป็นต้องมีการจัดรูปแบบพิเศษ ดู ชนิดข้อมูล ตัวเลข ในบทความนี้สําหรับรายละเอียด
  • วันที่และเวลา ดู ชนิดข้อมูล วันที่ในบทความนี้

ถ้ายังคงสับสน ให้อ่านต่อไป และเราจะแบ่งย่อย

ตัวกรองบนเขตข้อมูล

สมมติว่า URL ในรายงานของเราเป็นดังต่อไปนี้

Screenshot of starting URL.

และเราเห็นในการแสดงภาพแผนที่ก่อนหน้านี้ของเราที่เรามีร้านค้าใน North Carolina NC คือค่าที่แสดงแทน North Carolina ในเขตข้อมูล Territory ของตาราง Store ดังนั้นในการกรองรายงานเพื่อแสดงข้อมูลเฉพาะสําหรับร้านค้าใน "NC" เราจะผนวกสตริงนี้เข้ากับ URL:

?filter=Store/Territory eq 'NC'

Screenshot of U R L with filter for North Carolina.

ตอนนี้รายงานของเราได้รับการกรองสําหรับ North Carolina แล้ว การแสดงภาพทั้งหมดในรายงานแสดงข้อมูลสําหรับ North Carolina เท่านั้น

Screenshot of Report filtered for North Carolina.

กรองมากกว่าหนึ่งค่าในเขตข้อมูล

เมื่อต้องการกรองมากกว่าหนึ่งค่าในเขตข้อมูลเดียว คุณใช้ตัวดําเนินการ ใน แทนตัวดําเนินการ และ ไวยากรณ์คือ:

URL?filter=เขตข้อมูลตาราง/ใน ('value1', 'value2')

ใช้ตัวอย่างเดียวกัน เพื่อกรองรายงานเพื่อแสดงข้อมูลสําหรับร้านค้าใน "NC" (North Carolina) หรือ "TN" (Tennessee) เท่านั้น โดยให้เพิ่มข้อมูลต่อไปนี้ลงใน URL:

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

ดูตาราง ตัวดําเนินการ ในภายหลังในบทความสําหรับรายการของตัวดําเนินการอื่นๆ ที่มีประโยชน์

ตัวกรองบนหลายเขตข้อมูล

คุณยังสามารถกรองบนหลายเขตข้อมูลโดยการเพิ่มพารามิเตอร์เพิ่มเติมไปยัง URL ของคุณ ลองย้อนกลับไปที่พารามิเตอร์ตัวกรองต้นฉบับของเรา

?filter=Store/Territory eq 'NC'

เมื่อต้องการกรองเขตข้อมูลเพิ่มเติม ให้เพิ่ม 'and' และเขตข้อมูลอีกเขตหนึ่งในรูปแบบเดียวกับตัวอย่างก่อนหน้านี้ นี่เป็นตัวอย่าง:

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

ตัวดำเนินการ

Power BI สนับสนุนตัวดําเนินการมากมายนอกเหนือจาก 'and' ตารางต่อไปนี้แสดงรายการตัวดําเนินการเหล่านั้นพร้อมกับชนิดเนื้อหาที่สนับสนุน

ตัวดำเนินการ ข้อกำหนด สตริง หมายเลข วันที่ ตัว อย่าง เช่น
and และ ใช่ ใช่ ใช่ ผลิตภัณฑ์/ราคา le 200 และราคา gt 3.5
eq equals ใช่ ใช่ ใช่ ที่อยู่/เมือง eq 'Redmond'
ยเน ไม่เท่ากับ ใช่ ใช่ ใช่ ที่อยู่/เมือง ne 'ลอนดอน'
Ge มากกว่าหรือเท่ากับ ไม่ใช่ ใช่ ใช่ ผลิตภัณฑ์/ราคา ge 10
Gt มากกว่า ไม่ใช่ ใช่ ใช่ ผลิตภัณฑ์/ราคา gt 20
เลอ น้อยกว่าหรือเท่ากับ ไม่ใช่ ใช่ ใช่ ผลิตภัณฑ์/ราคา le 100
ลิตร น้อยกว่า ไม่ใช่ ใช่ ใช่ ผลิตภัณฑ์/ราคา lt 20
นิ้ว* รวม ใช่ ใช่ ใช่ นักเรียน/อายุ in (27, 29)

* เมื่อคุณใช้ ใน ค่าทางด้านขวาของ in สามารถเป็นรายการที่คั่นด้วยจุลภาคที่ถูกล้อมรอบด้วยวงเล็บ หรือเป็นนิพจน์เดี่ยวที่ส่งค่ากลับเป็นคอลเลกชัน ดูบทความตัวดําเนินการ IN สําหรับตัวอย่าง

ชนิดข้อมูลตัวเลข

ตัวกรอง Power BI URL สามารถรวมตัวเลขในรูปแบบต่อไปนี้

ชนิดตัวเลข ตัวอย่าง
จำนวนเต็ม 5
ยาว 5 L หรือ 5 l
คู่ 5.5 หรือ 55e-1 หรือ 0.55e+1 หรือ 5D หรือ 5d หรือ 0.5e1D หรือ 0.5e1d หรือ 5.5D หรือ 5.5d หรือ 55e-1D หรือ 55e-1d
เลขทศนิยม 5 M หรือ 5 m หรือ 5.5 M หรือ 5.5 m
ลอย 5 F หรือ 5 f หรือ 0.5e1 F หรือ 0.5e-1 d

ชนิดข้อมูลวันที่

Power BI สนับสนุน OData V3 และ V4 สําหรับชนิดข้อมูลวันที่และ DateTimeOffset สําหรับ OData V3 คุณต้องใส่วันที่ไว้ในเครื่องหมายอัญประกาศเดี่ยวและนําหน้าด้วยคําว่า datetime คุณไม่จําเป็นต้องมีเครื่องหมายอัญประกาศเดี่ยวและคําว่า datetime ใน OData V4

แสดงวันที่โดยใช้รูปแบบ EDM (2019-02-12T00:00:00): เมื่อคุณระบุวันที่ว่า 'YYYY-MM-DD' Power BI จะแปลเป็น 'YYYY-MM-DDT00:00:00' ตรวจสอบให้แน่ใจว่าเดือนและวันเป็นสองหลัก MM และ DD

ทําไมความแตกต่างนี้จึงสําคัญ สมมติว่าคุณสร้างพารามิเตอร์สตริงของคิวรีตาราง/วันที่ gt '2018-08-03' ผลลัพธ์จะรวมวันที่ 3 สิงหาคม 2018 หรือเริ่มต้นด้วยวันที่ 4 สิงหาคม 2018 หรือไม่? Power BI แปลคิวรีของคุณเป็น ตาราง/วันที่ gt '2018-08-03T00:00:00' ดังนั้น ผลลัพธ์ของคุณรวมวันที่ใดๆ ที่มีส่วนของเวลาที่ไม่เป็นศูนย์เนื่องจากวันที่เหล่านั้นจะมากกว่า '2018-08-03T00:00:00'

มีความแตกต่างกันอื่น ๆ ระหว่าง V3 และ V4 OData V3 ไม่รองรับวันที่เวลาเท่านั้น ดังนั้นถ้าคุณใช้รูปแบบ V3 คุณต้องรับรองคุณสมบัติกับวันที่เต็มเวลา ตัวอักษรวันที่เช่น "datetime'2019-05-20'" ไม่ได้รับการรองรับในสัญพจน์ V3 แต่คุณสามารถเขียนเป็น "2019-05-20" ในสมมตญาณ V4 ได้ ต่อไปนี้คือคิวรีตัวกรองเทียบเท่าสองแบบใน V3 และ V4:

  • รูปแบบ OData V4: ตัวกรอง = ตาราง/วันที่ gt 2019-05-20
  • รูปแบบ OData V3: ตัวกรอง = ตาราง/วันที่ gt วันที่เวลา'2019-05-20T00:00:00'

อักขระพิเศษในตัวกรอง URL

อักขระพิเศษในชื่อตารางและคอลัมน์

อักขระพิเศษ ช่องว่าง และตัวเลขนําหน้าในชื่อตารางและคอลัมน์จําเป็นต้องมีการจัดรูปแบบเพิ่มเติม เมื่อคิวรีของคุณประกอบด้วยช่องว่าง เส้นประ ตัวเลขนําหน้า หรืออักขระอื่น ๆ ที่ไม่ใช่ ASCII ให้นําหน้าอักขระพิเศษเหล่านั้นด้วย escape code ที่ขึ้นต้นด้วยขีดล่างและ X (_x) แล้วใส่ Unicode 4 หลักตามด้วยขีดล่าง ถ้า Unicode น้อยกว่าสี่อักขระ คุณจําเป็นต้องเติมศูนย์ นี่คือตัวอย่างบางส่วน

ตัวระบุ Unicode การเข้ารหัสสําหรับ Power BI
ชื่อตาราง ช่องว่างคือ 00x20 Table_x0020_Name
หมายเลขคอลัมน์@ @ คือ 00x40 Column_x0040_Number
[Column] [ คือ 0x005B ] 0x005D _x005B_Column_x005D_
คอลัมน์ +บวก + ถูก 0x2B Column_x002B_Plus
2TableName 2 คือ 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.

อักขระพิเศษในค่าต่างๆ

ตัวกรอง URL สนับสนุนอักขระพิเศษส่วนใหญ่ในค่าเขตข้อมูล แต่บางอย่างยังจําเป็นต้องมี รหัสการหลีกเลี่ยงอีกด้วย ตัวอย่างเช่น เมื่อต้องการค้นหาอักขระเครื่องหมายคําพูดเดี่ยว ให้ใช้เครื่องหมายคําพูดสองอัน ('')

  • ?filter=Table/Name eq 'O''Brien' กลาย เป็น:

    Name is O'Brien

  • ?filter=Table/Name eq 'Lee''s Summit' กลาย เป็น:

    Lee's Summit

  • ตัว in ดําเนินการสนับสนุนการหนีนี้เช่นกัน: ?filter=Table/Name in ('Lee''s Summit', 'O''Brien') จะกลายเป็น:

    Lee's Summit or O'Brien

นี่คือรายการของอักขระพิเศษบางอย่างที่จําเป็นต้องมีรหัสการหลีกในค่าเขตข้อมูล

อักขระ รหัสการหลีกเลี่ยง
(ช่องว่าง) 20%
' ''
% 25%
+ %2B
/ %2F
? %3F
# %23
& 26%

อักขระหลีก URL มาตรฐาน

เมื่อคุณใช้ URL ที่มีช่องว่างและอักขระพิเศษอื่น ๆ ในนั้น เบราว์เซอร์อาจแทนที่ช่องว่างด้วยอักขระหลีกมาตรฐานโดยอัตโนมัติ สมมติว่าคุณสร้างสตริงแบบสอบถาม URL นี้:

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

ซึ่งจะเปิดตัวอย่างความสามารถในการทํากําไรลูกค้าซึ่งกรองไปยัง Andrew Ma แต่ถ้าคุณดูที่ URL ตอนนี้อาจมีลักษณะดังนี้:

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

เบราว์เซอร์ได้แทนที่ช่องว่างระหว่าง Andrew และ Ma ด้วย %20ในทํานองเดียวกันช่องว่างอื่น ๆ โดยแทนที่เครื่องหมายทับไปข้างหน้าระหว่างชื่อExecutivesตารางและชื่อExecutiveเขตข้อมูลด้วย %2Fและแทนที่เครื่องหมายอัญ'ประกาศเดี่ยวด้วย%27

URL เวอร์ชันนี้อาจมีประโยชน์ ตัวอย่างเช่น คุณสามารถวางในแชทใน Microsoft Teams และจะส่งกลับผลลัพธ์ที่ถูกกรองที่ต้องการ

ใช้ DAX เพื่อกรองค่าหลายค่า

อีกวิธีหนึ่งเพื่อกรองหลายเขตข้อมูลคือ การสร้างคอลัมน์จากการคํานวณที่รวมเขตข้อมูลสองเขตเป็นค่าเดียว จากนั้นคุณสามารถกรองค่านั้นได้

ตัวอย่างเช่น เรามีสองเขตข้อมูล: Territory และ Chain ใน Power BI Desktop สร้าง คอลัมน์ จากการคํานวณ (เขตข้อมูล) ที่เรียกว่า TerritoryChain โปรดจําไว้ว่า ชื่อเขตข้อมูล ต้องไม่มีช่องว่าง นี่คือสูตร DAX สําหรับคอลัมน์นั้น

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

เผยแพร่รายงานไปยังบริการของ Power BI จากนั้นใช้สตริงแบบสอบถาม URL เพื่อกรองและแสดงข้อมูลสําหรับร้านค้า Lindseys ใน NC เท่านั้น

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

ปักหมุดไทล์จากรายงานที่กรองแล้ว

เมื่อคุณได้กรองรายงานโดยใช้พารามิเตอร์สตริงของคิวรี คุณสามารถปักหมุดการแสดงภาพจากรายงานนั้นไปยังแดชบอร์ดของคุณได้ ไทล์บนแดชบอร์ดแสดงข้อมูลที่กรองแล้ว และการเลือกไทล์แดชบอร์ดจะเปิดรายงานที่ใช้เพื่อสร้างไทล์แดชบอร์ดนั้น อย่างไรก็ตาม การกรองที่คุณใช้ URL จะไม่ถูกบันทึกกับรายงาน เมื่อคุณเลือกไทล์แดชบอร์ด รายงานจะเปิดขึ้นในสถานะที่ไม่ถูกการกรอง ดังนั้น ข้อมูลที่แสดงในไทล์แดชบอร์ดจะไม่ตรงกับข้อมูลที่แสดงในการแสดงภาพของรายงาน

ข้อแตกต่างนี้จะมีประโยชน์เมื่อคุณต้องการดูผลลัพธ์ที่แตกต่างกัน ถูกกรองบนแดชบอร์ดและยังไม่ได้กรองในรายงาน

ข้อควรพิจารณาและการแก้ไขปัญหา

มีบางสิ่งที่ควรระวังเมื่อใช้พารามิเตอร์สตริงของคิวรี

  • เมื่อคุณใช้ตัว ดําเนินการ in ค่าทางด้านขวาของ in ต้องเป็นรายการที่คั่นด้วยจุลภาคที่อยู่ในวงเล็บ

  • นอกจากนี้ เซิร์ฟเวอร์รายงาน Power BI ยังรองรับความสามารถในการระบุตัวกรองมากกว่าหนึ่งรายการโดยใช้พารามิเตอร์ URL "ตัวกรอง" นี่คือตัวอย่างของ URL ที่อาจมีลักษณะเหมือนในเซิร์ฟเวอร์รายงาน Power BI:https://reportserver/reports/powerbi/Store Sales?rs:Embed=true&filter= Store/Territory eq 'NC' and Store/Chain eq 'Fashions Direct'

  • ตัวกรอง URL รายงานมีขีดจํากัด 10 นิพจน์ (10 ตัวกรองที่เชื่อมต่อโดย AND)

  • ชนิดข้อมูล long คือ (2^53-1) เนื่องจากข้อจํากัดของ JavaScript

  • สตริงแบบสอบถาม URL จะถูกจํากัดไว้ที่ 2000 อักขระ ขีดจํากัดนี้รวมถึงรหัสการหลีกสําหรับอักขระพิเศษ (เช่น ช่องว่าง %, +)

  • คุณไม่สามารถกรองชื่อตารางหรือคอลัมน์ที่ขึ้นต้นด้วยตัวอักษร พิมพ์ใหญ่ INF ซึ่งรวมถึงชื่อตารางที่ขึ้นต้นด้วย "INFORMATION" INF ตัวพิมพ์ใหญ่พิมพ์เล็กเป็นค่าพิเศษใน OData ถ้าคุณต้องการเริ่มต้นชื่อตารางหรือคอลัมน์ด้วย "INF" ให้ทําเป็นตัวพิมพ์เล็ก "inf" แทน

  • ชื่อตารางและเขตข้อมูลสามารถมีอักขระภาษาจีนที่แสดงในแบบฟอร์ม Unicode ได้ ตัวอย่างเช่น คุณต้องการใช้ตัวกรองที่表/人 eq '张力' (ซึ่งหมายความว่า ตาราง/บุคคล eq '张力') ตัวกรองจะถูกแปลงเป็น _x8868_/_x4eba_ eq '张力'

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

การฝังสถานการณ์

รองรับตัวกรอง URL ในสถานการณ์การฝังบางอย่างและไม่ได้อยู่ในสถานการณ์อื่น

มีคำถามเพิ่มเติมหรือไม่? ลองถามชุมชน Power BI