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

COALESCE

DAX · Power BIตรรกะและตัวแปรระดับพื้นฐานแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชัน

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

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

COALESCE คืออะไร

คืนค่าแรกที่ไม่ว่างจากรายการที่ให้ ใช้แทนค่าว่างด้วย 0 หรือค่าสำรองในสูตรสั้นกว่า IF กับ ISBLANK

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

  • แทนค่าว่างด้วย 0 ในสูตรสั้น ๆ
  • เลือกค่าแรกที่มีจากหลาย Measure

รูปแบบสูตร

=COALESCE(<expression>, <expression>[, <expression>]…)

Argument แต่ละตัว

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

Argumentจำเป็นไหมความหมาย
expressionจำเป็นค่าหรือ Measure ที่ต้องการตรวจตามลำดับ ใส่อย่างน้อยสองค่า ต่างชนิดข้อมูลกันได้

ลองเลย: แทนค่าว่างของยอดปีก่อนด้วย 0 รายเดือน

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

[ยอดขาย] = SUMX('ยอดขาย', 'ยอดขาย'[จำนวน] * 'ยอดขาย'[ราคาต่อหน่วย] * (1 - 'ยอดขาย'[ส่วนลด]))
[ยอดขายปีก่อน] = CALCULATE([ยอดขาย], SAMEPERIODLASTYEAR('วันที่'[Date]))
Ctrl + Enter คำนวณ · พิมพ์ ' เลือกตาราง · [ เลือกคอลัมน์หรือ Measure
  • พนักงานขายไม่มีตัวกรอง
  • สินค้าไม่มีตัวกรอง
  • วันที่[Date] 1/1/2024 ถึง 31/1/2024
  • ยอดขายเหลือ 21 จาก 495 แถว · หนึ่งจุดคือหนึ่งคำสั่งซื้อ
แทนค่าว่างของยอดปีก่อนด้วย 0 รายเดือน
แทนค่าว่างของยอดปีก่อนด้วย 0 รายเดือน · ใช้ลูกศรเลื่อนระหว่างช่อง Enter เพื่อดูว่าตัวเลขนั้นคำนวณอย่างไร
เดือนยอดขายยอดขายปีก่อนยอดปีก่อน (แสดง 0)
ม.ค.
ก.พ.
มี.ค.
เม.ย.
พ.ค.
มิ.ย.
ก.ค.
ส.ค.
ก.ย.
ต.ค.
พ.ย.
ธ.ค.
ยอดรวม
339,060ยอดปีก่อน (แสดง 0) · ม.ค. · 2025
ดูทีละขั้นขั้น 6 / 6

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

EXCEL=IFERROR(C2, 0)

Excel ใช้ IFERROR หรือ IFNA แทนค่าที่ใช้ไม่ได้ DAX ใช้ COALESCE แทนค่าว่าง

DAXยอดปีก่อน (แสดง 0) = COALESCE([ยอดขายปีก่อน], 0)

เท่ากับ IF(ISBLANK([ยอดขายปีก่อน]), 0, [ยอดขายปีก่อน])

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

เลือกปี 2024 แล้วยอดปีก่อนว่าง COALESCE จึงให้ 0 แทน
COALESCE([ก], [ข], 0) ลองทีละค่าจากซ้ายไปขวา ได้ค่าแรกที่ไม่ว่าง
0 ไม่ใช่ค่าว่าง ถ้า Measure ให้ 0 จริง COALESCE จะคืน 0 นั้นโดยไม่ไปดูค่าถัดไป

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

1. COALESCE(BLANK(), 0) ได้อะไร

2. COALESCE([ยอดขายปีก่อน], 0) เท่ากับสูตรใด

3. ถ้า Measure ให้ 0 จริง COALESCE(Measure, 99) ได้อะไร

ไฟล์ฝึก COALESCE

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

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

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

  1. ข้อ 1[ยอดปีก่อน (แสดง 0)] ยอดขายปีก่อน ถ้าไม่มีข้อมูลให้เป็น 0 · กรอง ปี = 2025, เดือน = ก.ค.
  2. ข้อ 2[ยอดปีก่อน (แสดง 0)] ยอดขายปีก่อน ถ้าไม่มีข้อมูลให้เป็น 0 · กรอง ช่องทาง = Online, ปี = 2025, เดือน = ธ.ค.
  3. ข้อ 3[ยอดขาย] ยอดขายของช่วงที่กรอง · กรอง ปี = 2025, เดือน = พ.ค.
  4. ข้อ 4[ยอดขายปีก่อน] ยอดขายของช่วงเดียวกันในปีก่อน · กรอง ช่องทาง = Modern Trade, ปี = 2025, เดือน = ต.ค.
  5. ข้อ 5[ยอดขาย] ยอดขายของช่วงที่กรอง · กรอง ปี = 2025

ไปต่อ

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

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

ดูหลักสูตร