ตัวอย่างที่ 1: CALCULATE Modifier – ยอดขายรวมของสิ่งที่เลือก
Selected Total =
CALCULATE(
SUM(Sales[Amount]),
ALLSELECTED(Sales)
)
ยอดขายรวมตาม Slicer (Visual Total)
พฤติกรรมคู่: คืนตารางตาม Slicer หรือลบ Filter ใน Visual (ไม่มี REMOVEFILTERS คู่)
ALLSELECTED มี 2 พฤติกรรม: (1) Table Function – คืนตารางจริงตาม Shadow Filter Context (Slicer/Page Filter) (2) CALCULATE Modifier – ลบ Filter ภายใน Visual แต่คง Filter จากภายนอก เหมาะคำนวณ Visual Total และ % สัดส่วนใน Visual ไม่มี REMOVEFILTERS เวอร์ชันที่ทำงานเหมือน ALLSELECTED
=ALLSELECTED( [Table | Column1, Column2, ...] )
=ALLSELECTED( [Table | Column1, Column2, ...] )
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| Table หรือ Column | table/column | Optional | ตารางหรือคอลัมน์ที่ต้องการล้างตัวกรอง (ถ้าไม่ระบุจะหมายถึงตารางที่เกี่ยวข้องทั้งหมดใน Context) |
ใช้ ALLSELECTED ส่งคืนตารางที่มีแถวตาม Filter จาก Slicer/Page Filter โดยไม่สน Filter ภายใน Visual มักใช้ร่วมกับ FILTER, COUNTROWS
ใช้ ALLSELECTED ภายใน CALCULATE เพื่อลบ Filter ภายใน Visual แต่คง Slicer ไว้ หา % เทียบกับยอดรวมที่เลือก (Visual Total)
สร้างเส้น Constant Line ในกราฟที่ขยับตาม Slicer แต่ไม่ขยับตามแกน X ใช้ ALLSELECTED เพื่อลบ Filter จากแกน
Selected Total =
CALCULATE(
SUM(Sales[Amount]),
ALLSELECTED(Sales)
)
ยอดขายรวมตาม Slicer (Visual Total)
% of Selected =
DIVIDE(
SUM(Sales[Amount]),
CALCULATE(
SUM(Sales[Amount]),
ALLSELECTED()
)
)
สัดส่วน % เทียบกับ Visual Total
Selected Products =
COUNTROWS(
ALLSELECTED( Product[ProductKey] )
)
จำนวนสินค้าตาม Slicer (เช่น 15)
Pareto % =
DIVIDE(
CALCULATE(
SUM(Sales[Amount]),
FILTER(
ALLSELECTED(Product),
[Sales Amount] >= [Sales Amount]
)
),
CALCULATE(
SUM(Sales[Amount]),
ALLSELECTED(Product)
)
)
% ยอดขายสะสม
เมื่อใช้นอก CALCULATE (เช่น ใน FILTER, COUNTROWS) ALLSELECTED จะคืนตารางจริงตาม Shadow Filter Context (Slicer/Page Filter) แต่เมื่อใช้ใน CALCULATE มันจะไม่คืนตาราง แต่ทำหน้าที่ลบ Filter ภายใน Visual แต่คง Filter จากภายนอกไว้
ALL ลบ Filter ทั้งหมด (ได้ Grand Total) ส่วน ALLSELECTED ลบ Filter ภายใน Visual เท่านั้น แต่ยังคง Filter จาก Slicer/Page Filter ไว้ (ได้ Visual Total)
ไม่มี REMOVEFILTERS ทำงานเหมือน ALL เมื่อใช้เป็น CALCULATE Modifier (ลบ Filter ทั้งหมด) ไม่มีฟังก์ชันที่ชัดเจนกว่าสำหรับพฤติกรรมแบบ ALLSELECTED ต้องใช้ ALLSELECTED เท่านั้น
เป็น Filter Context ที่ถูกเก็บไว้ตอน Visual ยังไม่ถูกแสดง ประกอบด้วย Filter จาก Slicer และ Page Filter ALLSELECTED ใช้ Shadow Filter Context นี้แทนที่จะใช้ Filter Context ปัจจุบัน
เมื่อใช้ ALLSELECTED(FactTable) จะมีผลกับ Dimension ทุกตารางที่เชื่อมผ่าน Relationship ด้วย เหมือนกับ ALL ถ้าต้องการลบ Filter เฉพาะบางคอลัมน์ ให้ระบุคอลัมน์ชัดเจน
ALLSELECTED เป็นฟังก์ชันที่มี 2 พฤติกรรมแตกต่างกัน ขึ้นอยู่กับบริบทการใช้งาน:
คืนค่า ตารางจริง ที่มีแถวตาม Shadow Filter Context (Filter จาก Slicer/Page Filter) โดยไม่สน Filter ภายใน Visual มักใช้ใน FILTER, COUNTROWS
ทำหน้าที่ ลบตัวกรองภายใน Visual แต่ยังคง Filter จากภายนอก (Slicer) ไว้ ไม่ได้คืนค่าตาราง แต่แก้ไข Filter Context ให้ CALCULATE มักใช้คำนวณ Visual Total หรือหา % สัดส่วนใน Visual
หมายเหตุ: ALLSELECTED ซับซ้อนกว่า ALL เพราะทำงานกับ Shadow Filter Context และมี Expanded Table Caveat เช่นกัน