กรองรายงานโดยใช้พารามิเตอร์สตริงของคิวรีใน URL
เมื่อคุณเปิดรายงานในบริการของ Power BI แต่ละหน้าของรายงานมี URL ของตัวเองไม่ซ้ํากัน เพื่อกรองหน้ารายงานนั้น คุณสามารถใช้บานหน้าต่างตัวกรองบนพื้นที่รายงาน หรือคุณสามารถเพิ่มพารามิเตอร์สตริงของคิวรีไปยัง URL เพื่อใส่ข้อมูลในรายงานล่วงหน้า บางทีคุณมีรายงานที่คุณต้องการแสดงให้เพื่อนร่วมงานและคุณต้องการใส่ข้อมูลไว้ล่วงหน้า วิธีหนึ่งในการกรองก็คือ การเริ่มต้นด้วย URL ที่เป็นค่าเริ่มต้นสําหรับรายงาน เพิ่มพารามิเตอร์ตัวกรองไปยัง URL และจากนั้นส่ง URL ใหม่ทั้งหมดให้พวกเขาทางอีเมล
บทความนี้ใช้รายงานตัวอย่างการวิเคราะห์ร้านค้าปลีก ถ้าคุณต้องการทําตาม คุณสามารถ ดาวน์โหลดรายงานตัวอย่าง
ใช้สําหรับพารามิเตอร์สตริงของคิวรี
สมมติว่าคุณกําลังทํางานใน Power BI Desktop คุณต้องการสร้างรายงานที่มีลิงก์ไปยังรายงาน Power BI อื่น ๆ แต่คุณต้องการแสดงข้อมูลเพียงบางส่วนในรายงานอื่น ๆ ก่อนอื่น กรองรายงานโดยใช้พารามิเตอร์สตริงของคิวรีและบันทึก URL ถัดไป สร้างตารางใน Desktop ด้วย URL ของรายงานใหม่เหล่านี้ จากนั้นเผยแพร่และแชร์รายงาน
การใช้งานอื่นสําหรับพารามิเตอร์สตริงของคิวรีมีไว้สําหรับบุคคลที่สร้างโซลูชัน Power BI ขั้นสูง ใน DAX พวกเขาจะสร้างรายงานที่สร้าง URL ของรายงานที่กรองแล้วตามข้อมูลที่ลูกค้าของพวกเขาเลือกในรายงานปัจจุบัน เมื่อลูกค้าเลือก URL พวกเขาเห็นเฉพาะข้อมูลที่กําหนดไว้
ไวยากรณ์พารามิเตอร์สตริงของแบบสอบถามสําหรับการกรอง
ด้วยพารามิเตอร์ คุณสามารถกรองรายงานสําหรับค่าอย่างน้อยหนึ่งค่าหรือมากกว่า แม้ว่าค่าเหล่านั้นประกอบด้วยช่องว่างหรืออักขระพิเศษ ไวยากรณ์พื้นฐานจะค่อนข้างตรงไปตรงมา เริ่มต้นด้วย URL ของรายงาน เพิ่มเครื่องหมายคําถาม จากนั้นเพิ่มไวยากรณ์ตัวกรองของคุณ
URL?filter=ตารางฟิลด์/ eq 'ค่า'
- ชื่อตาราง และ เขตข้อมูล ต้องตรงตามตัวพิมพ์ใหญ่-เล็ก แต่ชื่อเขตข้อมูลต้องตรงตามตัวพิมพ์ใหญ่-เล็ก value ไม่ใช่
- ยังคงสามารถกรองเขตข้อมูลที่ถูกซ่อนจากมุมมองรายงานได้
ชนิดฟิลด์
ชนิดเขตข้อมูลสามารถเป็นตัวเลข วันที่เวลา หรือสตริงและชนิดที่ใช้ต้องตรงกับชนิดที่กําหนดในแบบจําลองความหมาย ตัวอย่างเช่น การระบุคอลัมน์ในตารางเป็นชนิด "สตริง" จะไม่ทํางานถ้าคุณกําลังค้นหาค่าที่เป็นวันที่เวลาหรือตัวเลขในคอลัมน์แบบจําลองความหมายที่ตั้งค่าเป็นวันที่ เช่น ตาราง/StringColumn eq 1
- สตริงต้องถูกล้อมรอบด้วยเครื่องหมายอัญประกาศเดี่ยวเหมือนใน 'ชื่อผู้จัดการ'
- ตัวเลข ไม่จําเป็นต้องมีการจัดรูปแบบพิเศษ ดู ชนิดข้อมูล ตัวเลข ในบทความนี้สําหรับรายละเอียด
- วันที่และเวลา ดู ชนิดข้อมูล วันที่ในบทความนี้
ถ้ายังคงสับสน ให้อ่านต่อไป และเราจะแบ่งย่อย
ตัวกรองบนเขตข้อมูล
สมมติว่า URL ในรายงานของเราเป็นดังต่อไปนี้
และเราเห็นในการแสดงภาพแผนที่ก่อนหน้านี้ของเราที่เรามีร้านค้าใน North Carolina NC คือค่าที่แสดงแทน North Carolina ในเขตข้อมูล Territory ของตาราง Store ดังนั้นในการกรองรายงานเพื่อแสดงข้อมูลเฉพาะสําหรับร้านค้าใน "NC" เราจะผนวกสตริงนี้เข้ากับ URL:
?filter=Store/Territory eq 'NC'
ตอนนี้รายงานของเราได้รับการกรองสําหรับ North Carolina แล้ว การแสดงภาพทั้งหมดในรายงานแสดงข้อมูลสําหรับ 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
Table_x0020_Special/_x005B_Column_x0020_Brackets_x005D_ eq '[C]'
อักขระพิเศษในค่าต่างๆ
ตัวกรอง URL สนับสนุนอักขระพิเศษส่วนใหญ่ในค่าเขตข้อมูล แต่บางอย่างยังจําเป็นต้องมี รหัสการหลีกเลี่ยงอีกด้วย ตัวอย่างเช่น เมื่อต้องการค้นหาอักขระเครื่องหมายคําพูดเดี่ยว ให้ใช้เครื่องหมายคําพูดสองอัน ('')
?filter=Table/Name eq 'O''Brien'
กลาย เป็น:?filter=Table/Name eq 'Lee''s Summit'
กลาย เป็น:ตัว
in
ดําเนินการสนับสนุนการหนีนี้เช่นกัน:?filter=Table/Name in ('Lee''s Summit', '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 '张力'
การฝังสถานการณ์
รองรับตัวกรอง URL ในสถานการณ์การฝังบางอย่างและไม่ได้อยู่ในสถานการณ์อื่น
- รองรับการฝังรายงานในพอร์ทัลความปลอดภัยหรือเว็บไซต์
- รองรับตัวกรอง URL ใน Power BI Embedded
- การกรองสตริงคิวรีใช้ไม่ได้กับ เผยแพร่ไปยังเว็บ หรือ ส่งออกเป็น PDF
- ฝังด้วยส่วนเว็บรายงานใน SharePoint Online จะไม่รองรับตัวกรอง URL
- Teams ไม่อนุญาตให้ระบุ URL
เนื้อหาที่เกี่ยวข้อง
มีคำถามเพิ่มเติมหรือไม่? ลองถามชุมชน Power BI