กรองข้อมูลในสูตรของ DAX

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

ส่วนนี้อธิบายถึงวิธีการสร้างตัวกรองภายในสูตร Data Analysis Expressions (DAX) คุณสามารถสร้างตัวกรองภายในสูตร การจำกัดค่าจากแหล่งข้อมูลที่ใช้ในการคำนวณ คุณทำเช่นนี้ ด้วยการระบุตารางเป็นข้อมูลป้อนเข้าลงในสูตร นิพจน์ตัวกรองที่กำหนดแล้ว นิพจน์ตัวกรองที่คุณใส่ใช้แบบสอบถามข้อมูล และส่งกลับเฉพาะชุดย่อยของข้อมูลต้นฉบับ ตัวกรองจะถูกนำไปใช้แบบไดนามิกทุกครั้งที่คุณปรับปรุงผลลัพธ์ของสูตร โดยขึ้นอยู่กับบริบทปัจจุบันของข้อมูลของคุณ

ในบทความนี้

การสร้างตัวกรองบนตารางที่ใช้ในสูตร

ตัวกรองที่เอารายการที่ซ้ำกัน

ฉันบริบทมีผลต่อตัวกรอง

เอาตัวกรอง

การแทนตัวกรองทั้งหมด ด้วยฟังก์ชัน ALL

การแทนตัวกรองที่เฉพาะเจาะจง ด้วยฟังก์ชัน ALLEXCEPT

การสร้างตัวกรองบน ตาราง ที่ใช้ใน สูตร

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

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

= SUMX (
ตัวกรอง ('ResellerSales_USD,' 'ResellerSales_USD' [ปริมาณ] > 5 & &
'ResellerSales_USD' [ProductStandardCost_USD] > 100),
'ResellerSales_USD' [SalesAmt]
)

  • ส่วนแรกของสูตรระบุหนึ่งPower Pivot รวมฟังก์ชัน ซึ่งรับตารางเป็นอาร์กิวเมนต์หรือไม่ SUMX คำนวณผลรวมตามตาราง

  • ส่วนสองของสูตรFILTER(table, expression),บอกSUMXข้อมูลใดจะใช้ SUMXจำเป็นต้องใช้ตารางหรือนิพจน์ที่เป็นผลลัพธ์ในตาราง ที่นี่ แทนที่จะใช้ข้อมูลทั้งหมดในตาราง คุณใช้ฟังก์ชันFILTERเพื่อระบุแถวจากตารางใดที่จะใช้

    นิพจน์ filter มีสองส่วน: ส่วนแรกชื่อตารางซึ่งนำตัวกรองไปใช้ ส่วนสองกำหนดนิพจน์ที่ใช้เป็นเงื่อนไขตัวกรอง ในกรณีนี้ คุณจะกรองบนแทนจำหน่ายที่ขายได้เกินกว่า 5 หน่วยและผลิตภัณฑ์ที่ต้นทุนมากกว่า $100 ตัวดำเนินการ & &, is ได้แบบตรรกะ AND ซึ่งหมายความว่า เงื่อนไขทั้งสองชิ้นต้องเป็นจริงสำหรับแถวการเป็นสมาชิกเซตย่อยถูกกรอง

  • ส่วนที่สามของสูตรจะบอกฟังก์ชัน SUMX ว่าควรหาผลรวมของค่าใด ในกรณีนี้คุณใช้เฉพาะยอดขาย

    โปรดสังเกตว่า ฟังก์ชันเช่นตัวกรอง ซึ่งส่งกลับตาราง ไม่ส่งกลับตารางหนึ่งหรือหลายแถวโดยตรง แต่เสมอฝังอยู่ในฟังก์ชันอื่น สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการกรองและฟังก์ชันอื่น ๆ ที่ใช้สำหรับการกรอง รวมตัวอย่างเพิ่มเติม ดูฟังก์ชันตัวกรอง (DAX)

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

ตัวกรองที่เอารายการที่ซ้ำกันออก

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

  • ฟังก์ชัน DISTINCT จะตรวจสอบคอลัมน์เดียวที่คุณระบุเป็นอาร์กิวเมนต์ให้กับฟังก์ชัน และส่งค่ากลับเป็นคอลัมน์ใหม่ที่มีเฉพาะค่าที่ไม่ซ้ำกัน

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

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

=COUNTROWS(DISTINCT('ResellerSales_USD'[ProductKey]))

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

บริบทส่งผลกับตัวกรองอย่างไรบ้าง

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

สำหรับข้อมูลเพิ่มเติม ดูที่บริบทในสูตรของ DAX

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

การเอารายการที่ซ้ำกันออก

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

การแทนที่ตัวกรองทั้งหมดด้วยฟังก์ชัน ALL

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

หมายเหตุ: ถ้าคุณคุ้นเคยกับคำศัพท์เฉพาะเกี่ยวกับฐานข้อมูลเชิงสัมพันธ์ คุณสามารถคิดว่า ALL เป็นการสร้างการรวมค่าภายนอกด้านซ้ายของทุกตาราง

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

= SUM (Sales [จำนวน]) / SUMX (การขาย [จำนวน], ตัวกรอง (ยอดขาย ALL(Products)))

  • ส่วนแรกของสูตร SUM (Sales[Amount]) คำนวณตัวตั้ง

  • ผลรวมจะพิจารณาบริบทปัจจุบัน หมายความว่าถ้าคุณเพิ่มสูตรในคอลัมน์ที่คำนวณ บริบทของแถวจะถูกนำมาใช้ และถ้าคุณเพิ่มสูตรใน PivotTable เป็นการวัด ตัวกรองใดๆ ที่นำมาใช้ใน PivotTable (บริบทของตัวกรอง) จะถูกนำมาใช้

  • ส่วนสองของสูตร คำนวณตัวส่วน ฟังก์ชันทั้งหมดแทนตัวกรองใด ๆ ที่อาจถูกนำไปใช้กับตารางProducts

สำหรับข้อมูลเพิ่มเติม รวมถึงตัวอย่างแบบละเอียด ดูฟังก์ชันทั้งหมด

การแทนที่ตัวกรองที่เฉพาะเจาะจงด้วยฟังก์ชัน ALLEXCEPT

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

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

ขยายทักษะ Office ของคุณ
สำรวจการฝึกอบรม
รับฟีเจอร์ใหม่ก่อนใคร
เข้าร่วม Office Insider

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

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

ขอขอบคุณสำหรับคำติชมของคุณ! เราคิดว่าอาจเป็นประโยชน์ที่จะให้คุณได้ติดต่อกับหนึ่งในตัวแทนฝ่ายสนับสนุน Office ของเรา

×