ALLCROSSFILTERED ใช้ล้างตัวกรองทั้งหมดออกจากตารางที่ระบุ รวมถึงตัวกรองที่ส่งผ่านมาจากตารางอื่น (Cross-filter) ใช้ได้เฉพาะเป็น Modifier ใน CALCULATE/CALCULATETABLE เท่านั้น ไม่สามารถคืนค่าเป็นตารางได้
=ALLCROSSFILTERED(table)
=ALLCROSSFILTERED(table)
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| table | table | Yes | ตารางที่ต้องการล้างตัวกรอง |
เมื่อต้องการหายอดรวมทั้งหมดเพื่อคำนวณ Ratio โดยไม่ต้องการให้ Slicer ใดๆ (แม้แต่จากตารางที่สัมพันธ์กันแบบ Many-to-Many หรือ Bi-directional) ส่งผลกระทบ
Pct Sales vs All Products = DIVIDE( SUM(Sales[Sales Amount]), CALCULATE( SUM(Sales[Sales Amount]), ALLCROSSFILTERED('Product') ) )Pct Sales vs All Products =
DIVIDE(
SUM(Sales[Sales Amount]),
CALCULATE(
SUM(Sales[Sales Amount]),
ALLCROSSFILTERED('Product')
)
)
เปอร์เซ็นต์ยอดขายของบริบทปัจจุบันเทียบกับยอดรวมทุกสินค้า (ยังคงตัวกรองอื่น เช่น ปี/ลูกค้า ไว้)
Sales No Product Filter = CALCULATE( SUM(Sales[Sales Amount]), ALLCROSSFILTERED('Product') )Sales No Product Filter =
CALCULATE(
SUM(Sales[Sales Amount]),
ALLCROSSFILTERED('Product')
)
ยอดขายรวมที่ไม่ถูกกรองด้วย Product (เช่น Color/Category) แต่ยังเคารพตัวกรองอื่นที่ไม่ได้มาจาก Product
-- ❌ Incorrect Usage: -- Count Rows = COUNTROWS(ALLCROSSFILTERED('Product')) -- ✅ Correct Usage: Count Rows Valid = VAR Result = CALCULATE(COUNTROWS('Product'),…-- ❌ Incorrect Usage:
-- Count Rows = COUNTROWS(ALLCROSSFILTERED('Product'))
-- ✅ Correct Usage:
Count Rows Valid =
VAR Result = CALCULATE(COUNTROWS('Product'), ALLCROSSFILTERED('Product'))
RETURN Result
จำนวนแถวทั้งหมดของตาราง Product
ALL เป็นได้ทั้ง Table Function (คืนค่าตาราง) และ Modifier ส่วน ALLCROSSFILTERED เป็นได้แค่ Modifier เท่านั้น ในแง่การกรอง ทั้งคู่ทำงานคล้ายกันคือล้าง filter แต่ ALLCROSSFILTERED สื่อความหมายชัดเจนเรื่องการล้าง Cross-filter ในโมเดลที่ซับซ้อน
ไม่ได้ ALLCROSSFILTERED รับ argument เป็นตารางเท่านั้น หากต้องการล้างเฉพาะคอลัมน์ ให้ใช้ ALL(Column)
ALLCROSSFILTERED เป็นฟังก์ชันที่ใช้สำหรับล้างตัวกรอง (Clear Filters) ทั้งหมดที่กระทำต่อตารางที่ระบุ ไม่ว่าจะเป็นตัวกรองที่เกิดจากคอลัมน์ในตารางนั้นโดยตรง หรือตัวกรองที่ถูกส่งมาจากตารางอื่นผ่านความสัมพันธ์ (Cross-filtering)
ข้อแตกต่างสำคัญคือ ALLCROSSFILTERED เป็นได้แค่ Modifier (ตัวปรับแต่ง) ภายในฟังก์ชัน CALCULATE หรือ CALCULATETABLE เท่านั้น ไม่สามารถใช้เป็นฟังก์ชันเดี่ยวๆ เพื่อคืนค่าตารางได้ (ต่างจาก ALL ที่คืนค่าตารางได้)