กรองข้อมูลในสูตรของ 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 ว่าควรหาผลรวมของค่าใด ในกรณีนี้คุณใช้เฉพาะยอดขาย

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

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

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

นอกเหนือจากการกรองค่าเฉพาะ คุณสามารถส่งกลับชุดของค่าที่ไม่ซ้ำกันจากตารางหรือคอลัมน์อื่นได้ ซึ่งอาจมีประโยชน์เมื่อคุณต้องการนับจำนวนของค่าในคอลัมน์ที่ไม่ซ้ำกัน หรือใช้รายการของค่าที่ไม่ซ้ำกันสำหรับการดำเนินการอื่น DAX จัดเตรียมสองฟังก์ชันสำหรับการส่งกลับค่าที่ไม่ซ้ำกัน คือ ฟังก์ชัน DISTINCT และ ฟังก์ชัน 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

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

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

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

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

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

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

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

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

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

×