สิ่งสำคัญของการใช้งาน 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 ที่น่าสนใจ
แนะนำหลักสูตรการอบรม
เรียนรู้คำสั่ง DAX เพื่อใช้งานด้าน Data Analysis, Data Analytic, BI โดยใช้ Power BI
ในหลักสูตร Data Analysis Expression (DAX) for Power BI (2 Days)
และมีหลักสูตรการอบรมเกี่ยวกับ Power BI เพิ่มเติมดังนี้ :
Power BI Advanced Power Query (2 Days)
Data Model for Power BI (2 Days)
หรือรูปแบบ Online Course ที่
Power BI for Data Analytics




