DAX Function FILTER พร้อมตัวอย่างการใช้งาน

สิ่งสำคัญของการใช้งาน Power BI ที่ขาดไม่ได้และเป็นเรื่องสำคัญมาก ๆ อย่างหนึ่งนั้นคือ DAX (Data Analysis Expressions) ซึ่งจะมาช่วยคำนวณสรุปผลข้อมูลที่มี โดย DAX จะถูกไปใช้ในการคำนวณ 3 ส่วนหลัก ๆ ได้แก่
- Measures – สร้างการคำนวณในรูปแบบของ Aggregation หลาย ๆ แถวในตาราง
- Calculated columns – สร้างการคำนวณให้เกิดคอลัมน์ใหม่ เป็นการคำนวณแบบทีละแถว
- Calculated table – สร้างการคำนวณให้เกิดตารางใหม่
DAX Function FILTER
ส่งคืนตาราง table ที่ถูกกรอง filterexpression
รูปแบบของ Syntax
FILTER(<table>, <filterexpression>)
พารามิเตอร์
พารามิเตอร์ | รายละเอียด |
table | ตารางที่ต้องการกรอง |
filterexpression | Boolean (True/False) expression สำหรับประเมินแต่ละแถวของตาราง |
การคืนค่า
ตารางที่มีเฉพาะแถวที่กรองแล้วเท่านั้น
ข้อสังเกตที่ควรทราบ
- สามารถใช้ฟังก์ชัน FILTER เพื่อลดจำนวนแถวในตารางที่ทำงานด้วยได้ และใช้กับข้อมูลที่เฉพาะเจาะจงในการคำนวณเท่านั้น
- ฟังก์ชัน FILTER ปกติไม่ได้ใช้เพื่อได้ตารางที่กรองออกมาเท่านั้น แต่เป็นฟังก์ชันที่ใช้ร่วมกับฟังก์ชันอื่นที่ต้องการตารางเป็นค่าพารามิเตอร์ในฟังก์ชัน
- ฟังก์ชัน FILTER สามารถกรองแถวจากตารางโดยใช้ expression ที่ถูกต้องในบริบทของแถว การใช้ measure ใน filterexpression ทำให้สามารถกรองตารางตามการคำนวณ measure แบบไดนามิกที่เกี่ยวข้องกับแถว และ/หรือ ตารางอื่น ๆ
- ฟังก์ชันนี้ไม่ได้รับการสนับสนุนสำหรับใช้ในโหมด DirectQuery เมื่อใช้ในการ calculated column หรือกฎ row-level security (RLS)
ตัวอย่างการใช้งาน
ตัวอย่างการใช้ฟังก์ชัน FILTER ในการสร้าง measure ยอดขายรวมของรายการขายที่มียอดขายมากกว่า 1000
จากข้อมูลตาราง Sales ที่มีรายละเอียดการขายสินค้าที่มียอดขายสินค้าอยู่ที่คอลัมน์ Sales amount

โดยสร้าง measure หายอดขายรวม Total Sales จะได้
Total Sales = SUM(Sales[Sales amount])
ฉะนั้นจากข้อมูลในตาราง Sales กับ measure Total Sales สามารถที่จะหายอดขายรวมของรายการขายที่มียอดขายมากกว่า 1000 ได้ ด้วยการสร้าง measure โดยใช้ฟังก์ชัน FILTER ในการกรองเพื่อให้ได้ตาราง Sales เฉพาะรายการที่มี Total Sales มากกว่า 1000 ได้ และนำผลลัพธ์ของฟังก์ชัน FILTER มาใช้เป็นส่วนหนึ่งของฟังก์ชัน CALCULATE ซึ่งจะได้ measure Sales over 1000 ดังนี้
Sales over 1000 = CALCULATE([Total sales],FILTER(Sales,[Total sales]>1000)) //ยอดขายรวมของรายการขายที่มียอดขายมากกว่า 1000
ตัวอย่างการใช้งาน FILTER ใน Visualization
ในตัวอย่างนี้นำ measure Sales over 1000 มาแสดงเป็น Visualization- แบบ Card ชื่อ Title ว่า Sales over 1000 เพื่อแสดงยอดขายรวมของรายการขายที่มียอดขายมากกว่า 1000
- แบบ Clustered column chart ที่แสดงยอดขาย Total Sales กับ Sales over 1000 โดย CategoryName ซึ่งแสดงการเปรียบเทียบยอดขายระหว่างยอดขายรวมทุกรายการ กับ ยอดขายรวมของรายการขายที่มียอดขายมากกว่า 1000 ในแต่ละกลุ่มสินค้า
- แบบ Table ที่แสดงตารางสรุปยอดขายระหว่าง Total Sales ยอดขายรวมทุกรายการ กับ Sales over 1000 ยอดขายรวมของรายการขายที่มียอดขายมากกว่า 1000 ตามรายชื่อพนักงานขาย เพื่อแสดงให้เห็นว่าในยอดขายรวมของพนักงานขายแต่ละคนนั้น มียอดขายรวมของรายการขายที่มียอดขายมากกว่า 1000 เป็นเท่าไร

Download
DAX Function FILTER
รับข่าวสารจาก 9Expert Trainingการดาวน์โหลดไฟล์นั้น แสดงว่าคุณได้ยอมรับ Privacy Policy ของเราแล้ว
ข้อมูลอ้างอิงจากเว็บไซต์
บทความเกี่ยวกับ DAX ที่น่าสนใจ
- Data Analysis Expression (DAX) คืออะไร
- DAX Measures และ Calculated Column
- การสร้าง DAX Measures ใน Power BI
- DAX Functions A to Z รวมสูตร 26 สูตร ที่น่าสนใจ พร้อมวิธีใช้งาน
แนะนำหลักสูตรการอบรม
เรียนรู้คำสั่ง DAX เพื่อใช้งานด้าน Data Analysis, Data Analytic, BI โดยใช้ Power BIในหลักสูตร Data Analysis Expression (DAX) for Power BI (2 Days)
- Power BI Desktop for Business Analytics (2 Days)
- Power BI Advanced Visualization and AI (2 Days)
- Power BI Advanced Power Query (2 Days)
- Data Model for Power BI (2 Days)