ข้ามไปที่เนื้อหาหลัก
การสนับสนุน
ลงชื่อเข้าใช้
ลงชื่อเข้าใช้ด้วย Microsoft
ลงชื่อเข้าใช้หรือสร้างบัญชี
สวัสดี
เลือกบัญชีอื่น
คุณมีหลายบัญชี
เลือกบัญชีที่คุณต้องการลงชื่อเข้าใช้

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

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

ส่วนสุดท้ายของบทความนี้มีลิงก์ไปยังตัวอย่างโดยละเอียดที่แสดงให้เห็นว่าผลลัพธ์ของสูตรเปลี่ยนแปลงตามบริบทอย่างไร

การเข้าใจบริบท

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

มีบริบทชนิดต่างๆ ได้แก่ บริบทแถว บริบทคิวรี และบริบทของตัวกรอง

บริบทแถวอาจเป็น "แถวปัจจุบัน" ถ้าคุณได้สร้างคอลัมน์ที่คํานวณแล้ว บริบทแถวจะประกอบด้วยค่าในแต่ละแถวและค่าในคอลัมน์ที่เกี่ยวข้องกับแถวปัจจุบัน นอกจากนี้ยังมีฟังก์ชันบางอย่าง(EARLIER และ EARLIEST) ที่รับค่าจากแถวปัจจุบัน แล้วใช้ค่านั้นในขณะที่ดําเนินการกับทั้งตาราง

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

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

ด้านบนของหน้า

บริบทแถว

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

ตัวอย่างเช่น สมมติว่าคุณสร้างคอลัมน์ที่คํานวณแล้ว =[ค่าขนส่งสินค้า] + [ภาษี]

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

บริบทของแถวจะตามความสัมพันธ์ระหว่างตารางโดยอัตโนมัติเพื่อระบุว่าแถวใดในตารางที่เกี่ยวข้องกันที่สัมพันธ์กับแถวปัจจุบัน

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

= [ค่าขนส่งสินค้า] + RELATED('Region'[TaxRate])

สูตรนี้ก็จะได้อัตราภาษีของภูมิภาคปัจจุบัน จากตาราง ภูมิภาค คุณไม่าเป็นต้องทราบหรือระบุคีย์ที่เชื่อมต่อตาราง

บริบทหลายแถว

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

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

In Excel, this calculation requires a series of intermediate summaries, which would have to be rebuilt if the data changed. ถ้าคุณเป็นผู้ใช้Excel คุณอาจสามารถสร้างสูตรอาร์เรย์ที่จะได้งาน อีกวิธีหนึ่งคือ ในฐานข้อมูลเชิงสัมพันธ์ คุณสามารถเขียนการเลือกย่อยที่ซ้อนกันได้

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

=MAXX(FILTER(Sales,[ProdKey]=EARLIER([ProdKey])),Sales[OrderQty])

ดูบทสรุปโดยละเอียดของสูตรนี้ที่ ส่วนก่อนหน้านี้

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

ด้านบนของหน้า

บริบทคิวรี

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

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

ตัวอย่างเช่น สมมติว่าคุณสร้างสูตรอย่างง่ายที่รวมค่าในคอลัมน์ กําไร ของตารางยอดขาย:=SUM('Sales'[Profit])

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

อย่างไรก็ตาม โดยทั่วไปแล้ว คุณไม่ต้องดูผลลัพธ์แบบเดียวกันหลายร้อยครั้ง แต่คุณต้องการรับกําไรในปีใดปีหนึ่ง โดยเฉพาะประเทศหรือภูมิภาค โดยเฉพาะผลิตภัณฑ์ใดผลิตภัณฑ์หนึ่ง หรือจากการผสมผสานบางอย่าง แล้วจึงได้ผลรวมทั้งหมด

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

ด้านบนของหน้า

บริบทของตัวกรอง

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

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

For more information about how to create filters within formulas, see the Filter functions.

ตัวอย่างเช่น วิธีการล้างตัวกรองเพื่อสร้างผลรวมทั้งหมด ให้ดูทั้งหมด

For examples of how to selectively clear and apply filters within formulas, see the ALLEXCEPT Function.

ดังนั้น คุณต้องตรวจทานความหมายของการวัดหรือสูตรที่ใช้ใน PivotTable เพื่อให้คุณทราบบริบทของตัวกรองเมื่อแปลผลลัพธ์ของสูตร

ด้านบนของหน้า

การกําหนดบริบทในสูตร

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

บริบทจะถูกกําหนดตามที่อธิบายไว้ในส่วนก่อนหน้านี้ โดยใช้ตารางที่พร้อมใช้งานในเวิร์กบุ๊ก ความสัมพันธ์ใดๆ ระหว่างตาราง และตัวกรองใดๆ ที่ถูกปรับใช้

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

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

ตัวอย่างของบริบทในสูตร

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

  • ฟังก์ชัน FILTER ช่วยให้คุณระบุแถวที่จะรวมในบริบทปัจจุบันได้ ตัวอย่างในหัวข้อนี้ยังแสดงวิธีการฝังตัวกรองภายในฟังก์ชันอื่นๆ ที่รวม

  • ฟังก์ชัน ALL จะตั้งค่าบริบทภายในสูตร You can use it to override filters that are applied as result of query context.

  • ฟังก์ชัน ALLEXCEPT ช่วยให้คุณเอาตัวกรองทั้งหมดออกยกเว้นที่คุณระบุ ทั้งสองหัวข้อมีตัวอย่างที่อธิบายเกี่ยวกับการสร้างสูตรและความเข้าใจบริบทที่ซับซ้อน

  • ฟังก์ชัน EARLIER และ EARLIEST จะให้คุณวนรอบตารางด้วยการคํานวณ ในขณะที่อ้างอิงค่าจากการวนรอบภายใน ถ้าคุณคุ้นเคยกับแนวคิดของการเกิดขึ้นใหม่และกับวงรอบภายในและรอบนอก คุณจะยินดีกับพลังที่ฟังก์ชัน EARLIER และ EARLIEST มีให้ ถ้าคุณยังใหม่กับแนวคิดเหล่านี้ คุณควรปฏิบัติตามขั้นตอนในตัวอย่างอย่างรอบคอบเพื่อดูวิธีการใช้บริบทภายในและบริบทภายนอกในการคํานวณ

ด้านบนของหน้า

Referential Integrity

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

ถ้าคุณเพิ่งเริ่มใช้แนวคิดเกี่ยวกับข้อมูลที่สัมพันธ์กัน เราขอแนะนนะให้คุณอ่านหัวข้อการเกริ่นเริ่ม เรื่อง ภาพรวมของความสัมพันธ์ ก่อน

Referential Integrity and Power Pivot Relationships

Power Pivot บังคับให้มี Referential Integrity ระหว่างตารางสองตารางเพื่อกําหนดความสัมพันธ์ที่ถูกต้อง แถวว่างจะถูกสร้างขึ้นบนจุดสิ้นสุด "หนึ่ง" ของแต่ละความสัมพันธ์แบบหนึ่ง-ต่อ-กลุ่ม และใช้ในการจัดการแถวที่ไม่ตรงกันทั้งหมดจากตารางที่เกี่ยวข้อง โดยจะมีลักษณะการSQLเป็นการรวมภายนอกอย่างมีประสิทธิภาพ

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

การเข้าใจสมาชิกที่ไม่รู้จัก

แนวคิดของสมาชิกที่ไม่รู้จักอาจคุ้นเคยกับคุณถ้าคุณเคยใช้งานระบบฐานข้อมูลหลายมิติ เช่น SQL Server Analysis Services ถ้าระยะเวลานี้เป็นแบบใหม่ต่อคุณ ตัวอย่างต่อไปนี้จะอธิบายว่าสมาชิกที่ไม่รู้จักคืออะไรและมีผลต่อการคํานวณอย่างไร

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

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

การปฏิบัติของค่าว่างกับแถวว่าง

ค่าว่างจะแตกต่างจากแถวว่างที่ถูกเพิ่มเพื่อให้เหมาะกับสมาชิกที่ไม่รู้จัก ค่าว่างคือค่าพิเศษที่ใช้แทนค่า Null สตริงว่าง และค่าที่หายไปอื่นๆ For more information about the blank value, as other DAX data types, see Data types in Data Models.

ด้านบนของหน้า

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ

ชุมชนช่วยให้คุณถามและตอบคําถาม ให้คําติชม และรับฟังจากผู้เชี่ยวชาญที่มีความรู้มากมาย

ข้อมูลนี้เป็นประโยชน์หรือไม่

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

ขอบคุณสำหรับคำติชมของคุณ!

×