FILTERS คืนค่าตารางของค่าที่ถูกกรองโดยตรงบนคอลัมน์ที่ระบุ จึงนิยมใช้เพื่อตรวจสอบว่าคอลัมน์ถูกกรองอยู่หรือไม่ และใช้เป็นส่วนประกอบในการสร้างตรรกะที่ตอบสนองต่อการเลือกของผู้ใช้
=FILTERS(<column>)
=FILTERS(<column>)
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| column | column | Yes | คอลัมน์ที่ต้องการดึง “รายการค่าที่ถูกกรองโดยตรง” ออกมาเป็นตาราง |
นับจำนวนค่าที่ถูกกรองโดยตรงบนคอลัมน์ เพื่อแยกกรณี filtered vs not filtered
นำ FILTERS ไปใช้ใน CALCULATE เพื่อให้ Measure เคารพเฉพาะค่าที่ผู้ใช้เลือกโดยตรงในคอลัมน์นั้น
Direct Selection Count = COUNTROWS( FILTERS( Product[Category] ) )Direct Selection Count =
COUNTROWS(
FILTERS( Product[Category] )
)
จำนวนค่าที่ถูกเลือก/ถูกกรองโดยตรงบน Product[Category] (เช่น 0, 1, 3)
Category Selection Status = IF( COUNTROWS(FILTERS(Product[Category])) > 0, "Selected", "Not Selected" )Category Selection Status =
IF(
COUNTROWS(FILTERS(Product[Category])) > 0,
"Selected",
"Not Selected"
)
"Filtered" หรือ "Not Filtered"
Sales (Direct Category Filters) = CALCULATE( [Total Sales], FILTERS(Product[Category]) )=Sales (Direct Category Filters) =
CALCULATE(
[Total Sales],
FILTERS(Product[Category])
)
ยอดขายที่คงตัวกรองเฉพาะค่าที่ถูกกรองโดยตรงบน Category ตามบริบทปัจจุบัน
FILTERS คืนค่าเป็น “ตาราง” เสมอ (เป็นรายการค่าที่ถูกกรอง) ดังนั้นถ้าต้องการใช้เป็นเงื่อนไขหรือเอาไปนับ มักใช้ COUNTROWS ครอบ
เหมาะกับงานตรวจสอบ/อธิบายบริบทตัวกรอง เช่น ทำ Debug measure, ทำ Tooltip, หรือทำตรรกะที่ต้องรู้ว่าผู้ใช้กรองคอลัมน์นั้นโดยตรงอยู่หรือไม่
FILTERS เป็นฟังก์ชันที่คืนค่าเป็น “ตาราง” ของค่าที่ถูกกรอง โดยตรง บนคอลัมน์ที่ระบุ เช่น ค่าที่ผู้ใช้เลือกจากตัวแบ่งส่วนข้อมูล (Slicer) ของคอลัมน์นั้น ๆ จึงเหมาะกับงานตรวจสอบว่าคอลัมน์ถูกกรองอยู่หรือไม่ และเหมาะกับการสร้างตรรกะที่ต้องอาศัย “รายการค่าที่ผู้ใช้เลือก” ในบริบทปัจจุบัน
หมายเหตุสำคัญ: FILTERS ไม่ได้บอก “ตัวกรองทั้งหมดที่มีผลต่อการคำนวณ” ในทุกกรณี แต่เน้นค่าที่ถูกกรองโดยตรงบนคอลัมน์นั้น ดังนั้นควรใช้เพื่อการตรวจสอบและอธิบายบริบทตัวกรองมากกว่าการสรุปผลทางธุรกิจโดยตรง