คลังสูตรExcel 80 · DAX 95 · M 15
ในหน้านี้
หน้าแรก › DAX › ตรรกะและตัวแปร › IF

IF

DAX · Power BIตรรกะและตัวแปรระดับพื้นฐานแบบ 1 · ใช้ได้เหมือนกัน

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

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

IF คืออะไร

ตรวจเงื่อนไข แล้วให้ค่าหนึ่งเมื่อจริง อีกค่าหนึ่งเมื่อเท็จ ถ้าไม่ใส่ค่าเมื่อเท็จจะได้ค่าว่าง

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

  • แสดงสถานะ ถึงเป้า หรือ ต่ำกว่าเป้า
  • เลือกสูตรคำนวณตามเงื่อนไข

รูปแบบสูตร

=IF(<logical_test>, <value_if_true>[, <value_if_false>])

Argument แต่ละตัว

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

Argumentจำเป็นไหมความหมาย
logical_testจำเป็นเงื่อนไขที่ได้ TRUE หรือ FALSE
value_if_trueจำเป็นค่าเมื่อเงื่อนไขจริง
[value_if_false]ไม่บังคับค่าเมื่อเงื่อนไขเท็จ ไม่ใส่ = ค่าว่าง

ลองเลย: ยอดขายเทียบเป้ารายปี แยกตามภูมิภาค

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

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

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

EXCEL=IF(SUMIFS(ยอดขาย[ยอดสุทธิ], ยอดขาย[ภูมิภาค], "กลาง") >= 1270000, "ถึงเป้า", "ต่ำกว่าเป้า")

IF ของ DAX ใช้เหมือน Excel ต่างกันที่ค่าเมื่อเท็จที่ไม่ใส่คือค่าว่าง ไม่ใช่ FALSE

DAXสถานะเป้า = IF([ยอดขาย] >= [เป้า], "ถึงเป้า", "ต่ำกว่าเป้า")

เป้าของแต่ละภาคคือผลรวมเป้าของพนักงานในภาคนั้น

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

เลือกช่องทาง Online ใน Slicer แล้วดูคอลัมน์เป้า: ไม่เปลี่ยน เพราะตัวกรองในตารางยอดขายไม่ไหลย้อนไปตารางพนักงานขาย ภาคจึงถูกเทียบกับเป้าทั้งปี
ค่าว่างในเงื่อนไขถือเป็น 0 ถ้าภาคไม่มียอดขายเลย [ยอดขาย] >= [เป้า] จะได้ FALSE
เงื่อนไขหลายชั้นเขียนด้วย SWITCH(TRUE(), …) อ่านง่ายกว่า IF ซ้อนกัน

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

1. IF([ยอดขาย] >= [เป้า], "ถึงเป้า") เมื่อเงื่อนไขเป็นเท็จ ได้อะไร

2. เลือกช่องทาง Online ใน Slicer ทำไมคอลัมน์เป้าไม่เปลี่ยน

3. เงื่อนไขหลายชั้นเรียงลำดับ เขียนแบบใดอ่านง่ายที่สุดใน DAX

ไฟล์ฝึก IF

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

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

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

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

ไปต่อ

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

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

ดูหลักสูตร