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

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

ในบทความนี้

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

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

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

=SUMX(
     FILTER ('ResellerSales_USD', 'ResellerSales_USD'[Quantity] > 5 &&
     'ResellerSales_USD'[ProductStandardCost_USD] > 100)
     'ResellerSales_USD'[SalesAmt]
     )

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

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

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

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

    โปรดทราบว่าฟังก์ชัน เช่น FILTER ที่ส่งกลับตาราง จะไม่ส่งกลับตารางหรือแถวโดยตรง แต่จะฝังอยู่ในฟังก์ชันอื่นเสมอ For more information about FILTER and other functions used for filtering, including more examples, see Filter Functions (DAX).

    หมายเหตุ: นิพจน์ตัวกรองได้รับผลกระทบจากบริบทที่ถูกใช้ ตัวอย่างเช่น ถ้าคุณใช้ตัวกรองตามการวัด และการวัดถูกใช้ใน PivotTable หรือ PivotChart ชุดข้อมูลย่อยที่ส่งกลับอาจได้รับผลกระทบจากตัวกรองเพิ่มเติมหรือตัวแบ่งส่วนข้อมูลที่ผู้ใช้ได้ใช้ใน PivotTable For more information about context, see Context in DAX Formulas.

ตัวกรองที่เอารายการที่คัดลอกออก

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

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

  • ฟังก์ชัน VALUES ยังส่งกลับรายการค่าที่ไม่เป็นค่าที่ไม่แน่นอน แต่ยังส่งกลับสมาชิกที่ไม่รู้จักด้วย ซึ่งจะเป็นประโยชน์เมื่อคุณใช้ค่าจากตารางสองตารางที่รวมเข้าด้วยกันโดยความสัมพันธ์ และค่าหายไปในตารางหนึ่งและจะแสดงในอีกตารางหนึ่ง For more information about the Unknown member, see Context in DAX Formulas.

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

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

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

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

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

For more information, see Context in DAX Formulas.

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

การเอาตัวกรองออก

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

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

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

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

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

=SUM (Sales[Amount])/SUMX(Sales[Amount], FILTER(Sales, ALL(Products)))

  • ส่วนแรกของสูตร SUM (Sales[Amount]) จะคํานวณตัวเศษ

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

  • ส่วนที่สองของสูตรจะคํานวณตัวส่วน ฟังก์ชัน ALL จะแทนที่ตัวกรองใดๆ ที่อาจใช้กับ Products ในตาราง

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

การแทนที่ตัวกรองที่ระบุด้วยฟังก์ชัน ALLEXCEPT

ฟังก์ชัน ALLEXCEPT จะแทนที่ตัวกรองที่มีอยู่ด้วย แต่คุณสามารถระบุได้ว่าตัวกรองที่มีอยู่บางตัวควรจะถูกเก็บรักษาไว้ คอลัมน์ที่คุณตั้งชื่อเป็นอาร์กิวเมนต์ของฟังก์ชัน ALLEXCEPT จะระบุว่าคอลัมน์ใดที่จะถูกกรองต่อไป If you want to override filters from most columns but not all, ALLEXCEPT is more convenient than ALL. ฟังก์ชัน ALLEXCEPT จะมีประโยชน์เป็นพิเศษเมื่อคุณสร้าง PivotTable ที่อาจถูกกรองในคอลัมน์หลายคอลัมน์ และคุณต้องการควบคุมค่าที่ใช้ในสูตร For more information, including a detailed example of how to use ALLEXCEPT in a PivotTable, see ALLEXCEPT Function.

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

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

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

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

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

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

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

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

×