Applies ToExcel for Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

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

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

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

การทําความเข้าใจบริบท

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

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

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

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

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

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

บริบทแถว

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

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

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

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

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

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

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

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

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

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

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

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

สําหรับบทสรุปโดยละเอียดของสูตรนี้ ให้ดูที่ ฟังก์ชัน EARLIER

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

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

บริบทของคิวรี

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

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

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

=SUM('Sales'[Profit])

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

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

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

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

กรองบริบท

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

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

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการสร้างตัวกรองภายในสูตร ให้ดูฟังก์ชันตัวกรอง

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

สําหรับตัวอย่างของวิธีเลือกล้างและนําตัวกรองไปใช้ภายในสูตร ให้ดูที่ ฟังก์ชัน ALLEXCEPT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Referential Integrity

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

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

Referential Integrity และความสัมพันธ์ Power Pivot

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

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

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

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

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

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

การรักษาค่าว่างกับแถวว่าง

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

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

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

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

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

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