COALESCE คืนค่าแรกที่ไม่เป็น BLANK() จากหลายอาร์กิวเมนต์ เหมาะกับการกำหนดค่าเริ่มต้น (fallback) เช่น ใช้ค่า 0 เมื่อ Measure เป็น BLANK หรือเลือกค่าจากหลายแหล่งตามลำดับความสำคัญ
=COALESCE(<expression1>, <expression2>[, ...])
=COALESCE(<expression1>, <expression2>[, ...])
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| expression1 | scalar | Yes | นิพจน์ตัวแรกที่ต้องการตรวจสอบ (ถ้าไม่เป็น BLANK จะถูกเลือกทันที) | |
| expression2 | scalar | Yes | นิพจน์สำรอง ถ้า expression1 เป็น BLANK() จะเลือกตัวนี้แทน | |
| expression3 | scalar | Optional | ไม่มีนิพจน์สำรองเพิ่มเติม | นิพจน์สำรองเพิ่มเติม (ถ้ามี) สามารถใส่ได้หลายตัว |
ใช้เมื่ออยากให้ตาราง/การ์ดแสดง 0 แทนช่องว่าง เพื่ออ่านง่ายและนำไปคำนวณต่อได้
เช่น ใช้ค่า Actual ก่อน ถ้าไม่มีค่อยใช้ Budget และถ้ายังไม่มีให้เป็น 0
Sales (Zero) = COALESCE([Total Sales], 0)=Sales (Zero) =
COALESCE([Total Sales], 0)
ถ้า [Total Sales] เป็น BLANK() จะได้ 0
Value = COALESCE([Actual], [Budget], 0)Value =
COALESCE([Actual], [Budget], 0)
คืนค่าแรกที่หาได้
Selected Label = COALESCE(SELECTEDVALUE(Product[Category]), "(หลายค่า)")Selected Label =
COALESCE(SELECTEDVALUE(Product[Category]), "(หลายค่า)")
คืนชื่อ Category เมื่อมีค่าเดียว มิฉะนั้นคืน "(หลายค่า)"
COALESCE เขียนสั้นและชัดเจนกว่าเมื่อคุณต้องการค่า fallback หลายระดับ (หลายอาร์กิวเมนต์) ส่วน IF เหมาะกับตรรกะที่ซับซ้อนกว่า
คืนค่าแบบ scalar ตามชนิดของนิพจน์ที่ส่งเข้าไป แต่ควรให้ชนิดข้อมูลสอดคล้องกันเพื่อหลีกเลี่ยงการแปลงชนิดที่ไม่คาดคิด
COALESCE ใช้สำหรับเลือก “ค่าแรกที่ไม่เป็น BLANK()” จากรายการอาร์กิวเมนต์ที่ส่งเข้าไป ถ้าทุกอาร์กิวเมนต์เป็น BLANK() จะคืน BLANK() เหมาะมากกับการกำหนดค่าเริ่มต้น เช่น แทนค่า BLANK ด้วย 0 หรือแทนด้วยข้อความ เพื่อให้รายงานอ่านง่ายและลดปัญหาการแสดงผลว่าง