คลังสูตรExcel 80 · DAX 95 · M 15
ในหน้านี้
หน้าแรก › DAX › ตัวกรอง (Filter) › FILTER

FILTER

DAX · Power BIตัวกรอง (Filter)ระดับกลางแบบ 2 · ชื่อเดียวกัน ทำงานต่างกัน

อัปเดต 26 ก.ย. 2569 · ตัวเลขในตัวอย่างตรงกับตัวคำนวณอ้างอิงที่เขียนแยก และสูตร Excel ที่คำนวณจากข้อมูลชุดเดียวกัน · ยังไม่ได้ตรวจใน Power BI Desktop

เอกสารอ้างอิง: FILTER (Microsoft Learn) · syntax และหมายเหตุในหน้านี้ตรวจกับหน้านี้ของ Microsoft · ตัวจำลองในหน้านี้รองรับเฉพาะรูปแบบที่ใช้ในตัวอย่าง (เช่น ไม่รองรับ calendar-based time intelligence)

FILTER คืออะไร

คืนตารางที่มีเฉพาะแถวที่ตรงเงื่อนไข ใช้เป็นตัวกรองใน CALCULATE หรือส่งให้ฟังก์ชันที่รับตาราง เช่น COUNTROWS

ใช้เมื่อไหร่

  • กรองด้วยเงื่อนไขที่ต้องคำนวณ เช่น จำนวน × ราคา ≥ 20,000
  • ส่งตารางที่กรองแล้วให้ COUNTROWS หรือ SUMX

รูปแบบสูตร

=FILTER(<table>, <filter>)

Argument แต่ละตัว

ชี้ที่ argument ในรูปแบบสูตรด้านบนเพื่อไฮไลต์แถวนั้น

Argumentจำเป็นไหมความหมาย
tableจำเป็นตารางที่จะกรอง ถูกกรองตามรายงานก่อน
filterจำเป็นเงื่อนไขที่ตรวจทีละแถว อ้างหลายคอลัมน์หรือคำนวณได้

ลองเลย: คำสั่งซื้อตั้งแต่ 40 ลัง แยกตามภูมิภาค

คลิกตัวเลขในตารางเพื่อดูตัวกรองไหลผ่านโมเดลจนเป็นตัวเลขนั้น เลือกค่าใน Slicer แก้ Measure ได้ หรือกด Excel เพื่อดูสูตร Excel ที่ได้คำตอบเดียวกัน

[ยอดขาย] = SUMX('ยอดขาย', 'ยอดขาย'[จำนวน] * 'ยอดขาย'[ราคาต่อหน่วย] * (1 - 'ยอดขาย'[ส่วนลด]))
[ยอดจากคำสั่งซื้อใหญ่] = CALCULATE([ยอดขาย], FILTER('ยอดขาย', 'ยอดขาย'[จำนวน] >= 40))
Ctrl + Enter คำนวณ · พิมพ์ ' เลือกตาราง · [ เลือกคอลัมน์หรือ Measure
  • พนักงานขาย[ภูมิภาค] = "กลาง"
  • สินค้าไม่มีตัวกรอง
  • วันที่[ปี] = 2025
  • ยอดขายเหลือ 37 จาก 495 แถว · หนึ่งจุดคือหนึ่งคำสั่งซื้อ
คำสั่งซื้อตั้งแต่ 40 ลัง แยกตามภูมิภาค
คำสั่งซื้อตั้งแต่ 40 ลัง แยกตามภูมิภาค · ใช้ลูกศรเลื่อนระหว่างช่อง Enter เพื่อดูว่าตัวเลขนั้นคำนวณอย่างไร
ภูมิภาคยอดขายคำสั่งซื้อใหญ่ยอดจากคำสั่งซื้อใหญ่
กลาง
เหนือ
ตะวันออกเฉียงเหนือ
ตะวันออก
ใต้
ยอดรวม
37คำสั่งซื้อใหญ่ · กลาง · 2025
ดูทีละขั้นขั้น 4 / 4

ถ้าคุณเขียน Excel อยู่แล้ว

EXCEL=COUNTIFS(ยอดขาย[จำนวน], ">=40", ยอดขาย[ภูมิภาค], "กลาง")

FILTER ของ Excel คืนแถวที่ spill ลงชีต FILTER ของ DAX คืนตารางไว้ใช้ต่อในสูตร ไม่แสดงเป็นแถว

DAXคำสั่งซื้อใหญ่ = COUNTROWS(FILTER('ยอดขาย', 'ยอดขาย'[จำนวน] >= 40))

นับคำสั่งซื้อที่สั่งตั้งแต่ 40 ลัง

ข้อผิดพลาดและเคล็ดลับ

เงื่อนไขบนคอลัมน์ เช่น 'ยอดขาย'[ช่องทาง] = "Online" เขียนใน CALCULATE ตรง ๆ ได้ ใช้ FILTER เมื่อเงื่อนไขต้องใช้ Measure หรือคอลัมน์จากหลายตาราง
FILTER ทั้งตารางยอดขายต้องตรวจทุกแถว ถ้าเงื่อนไขอยู่บนคอลัมน์เดียว เขียนเป็นเงื่อนไขใน CALCULATE ตรง ๆ (หรือครอบด้วย KEEPFILTERS เมื่อต้องการเคารพตัวกรองเดิม) เร็วกว่าและอ่านง่ายกว่า
FILTER ให้ผลเป็นตาราง ใส่เป็น Measure เดี่ยว ๆ ไม่ได้ ต้องครอบด้วยฟังก์ชันที่สรุปตาราง เช่น COUNTROWS หรือใช้ใน CALCULATE

แบบทดสอบ 3 ข้อ

1. FILTER ของ DAX ให้ผลเป็นอะไร

2. Measure = FILTER('ยอดขาย', 'ยอดขาย'[จำนวน] >= 40) เป็นอย่างไร

3. เงื่อนไข ช่องทาง = Online อย่างเดียว เขียนแบบใดกระชับที่สุด

ไฟล์ฝึก FILTER

9Expert-DAX-FILTER-Practice-v1.0.xlsx

รุ่น 1.0 · 26/9/2026 · 70 KB · ไม่มี Macro · นำเข้า Power BI แล้วทำโจทย์ พิมพ์คำตอบกลับในไฟล์ ตรวจเอง
เริ่มต้นยอดขายสินค้าพนักงานขายวันที่คงคลังเป้าภูมิภาคแบบฝึกหัดเฉลย

โจทย์ในชีตแบบฝึกหัด

  1. ข้อ 1[คำสั่งซื้อใหญ่] จำนวนคำสั่งซื้อที่สั่งตั้งแต่ 40 ลัง · กรอง ภูมิภาค = ใต้, ปี = 2024
  2. ข้อ 2[คำสั่งซื้อใหญ่] จำนวนคำสั่งซื้อที่สั่งตั้งแต่ 40 ลัง · กรอง ภูมิภาค = ตะวันออกเฉียงเหนือ, ช่องทาง = Online, ปี = 2025
  3. ข้อ 3[ยอดขาย] ยอดขายสุทธิ (จำนวน × ราคาต่อหน่วย × (1 − ส่วนลด)) · กรอง ภูมิภาค = เหนือ, ปี = 2025
  4. ข้อ 4[ยอดจากคำสั่งซื้อใหญ่] ยอดขายจากคำสั่งซื้อที่สั่งตั้งแต่ 40 ลัง · กรอง ภูมิภาค = ตะวันออก, ช่องทาง = Modern Trade, ปี = 2024
  5. ข้อ 5[ยอดขาย] ยอดขายสุทธิ (จำนวน × ราคาต่อหน่วย × (1 − ส่วนลด)) · กรอง ปี = 2025

ไปต่อ

อยากเขียน DAX สำหรับรายงานจริงทั้งระบบ

ต่อยอดใน Data Analysis Expression (DAX) for Power BI: Measures, X Aggregation, CALCULATE, Date Table และ Time Intelligence (2 วัน)

ดูหลักสูตร