Thep Excel

COALESCE – คืนค่าแรกที่ไม่เป็น BLANK()

COALESCE คืนค่าแรกที่ไม่เป็น BLANK() จากหลายอาร์กิวเมนต์ เหมาะกับการกำหนดค่าเริ่มต้น (fallback) เช่น ใช้ค่า 0 เมื่อ Measure เป็น BLANK หรือเลือกค่าจากหลายแหล่งตามลำดับความสำคัญ

=COALESCE(<expression1>, <expression2>[, ...])

By ThepExcel AI Agent
13 December 2025

Function Metrics


Popularity
6/10

Difficulty
3/10

Usefulness
6/10

Syntax & Arguments

=COALESCE(<expression1>, <expression2>[, ...])

Argument Type Required Default Description
expression1 scalar Yes นิพจน์ตัวแรกที่ต้องการตรวจสอบ (ถ้าไม่เป็น BLANK จะถูกเลือกทันที)
expression2 scalar Yes นิพจน์สำรอง ถ้า expression1 เป็น BLANK() จะเลือกตัวนี้แทน
expression3 scalar Optional ไม่มีนิพจน์สำรองเพิ่มเติม นิพจน์สำรองเพิ่มเติม (ถ้ามี) สามารถใส่ได้หลายตัว

How it works

แทนค่า BLANK ด้วย 0

ใช้เมื่ออยากให้ตาราง/การ์ดแสดง 0 แทนช่องว่าง เพื่ออ่านง่ายและนำไปคำนวณต่อได้

เลือกค่าจากหลายแหล่งตามลำดับความสำคัญ

เช่น ใช้ค่า Actual ก่อน ถ้าไม่มีค่อยใช้ Budget และถ้ายังไม่มีให้เป็น 0

Examples

ตัวอย่างที่ 1: แทน BLANK ด้วย 0
Sales (Zero) = COALESCE([Total Sales], 0)
เหมาะกับการแสดงผลในตารางหรือการ์ดเพื่อไม่ให้มีช่องว่าง และทำให้การรวม/คำนวณต่ออ่านง่ายขึ้น
DAX Formula:

=Sales (Zero) =
COALESCE([Total Sales], 0)

Result:

ถ้า [Total Sales] เป็น BLANK() จะได้ 0

ตัวอย่างที่ 2: เลือกค่าตามลำดับ Actual → Budget → 0
Value = COALESCE([Actual], [Budget], 0)
ถ้ามีค่า Actual จะใช้ Actual ทันที ถ้าไม่มีค่อยใช้ Budget และถ้ายังไม่มีอีกจึงใช้ 0 เป็นค่าเริ่มต้น
DAX Formula:

Value =
COALESCE([Actual], [Budget], 0)

Result:

คืนค่าแรกที่หาได้

ตัวอย่างที่ 3: ทำข้อความ fallback
Selected Label = COALESCE(SELECTEDVALUE(Product[Category]), "(หลายค่า)")
ใช้ COALESCE ร่วมกับ SELECTEDVALUE เพื่อกำหนดข้อความสำรองเมื่อไม่ได้เลือกค่าเดียว
DAX Formula:

Selected Label =
COALESCE(SELECTEDVALUE(Product[Category]), "(หลายค่า)")

Result:

คืนชื่อ Category เมื่อมีค่าเดียว มิฉะนั้นคืน "(หลายค่า)"

FAQs

COALESCE ต่างจาก IF ที่เช็ค BLANK อย่างไร?

COALESCE เขียนสั้นและชัดเจนกว่าเมื่อคุณต้องการค่า fallback หลายระดับ (หลายอาร์กิวเมนต์) ส่วน IF เหมาะกับตรรกะที่ซับซ้อนกว่า

COALESCE คืนค่าแบบไหน (ตัวเลข/ข้อความ) ได้ไหม?

คืนค่าแบบ scalar ตามชนิดของนิพจน์ที่ส่งเข้าไป แต่ควรให้ชนิดข้อมูลสอดคล้องกันเพื่อหลีกเลี่ยงการแปลงชนิดที่ไม่คาดคิด

Resources & Related

Additional Notes

COALESCE ใช้สำหรับเลือก “ค่าแรกที่ไม่เป็น BLANK()” จากรายการอาร์กิวเมนต์ที่ส่งเข้าไป ถ้าทุกอาร์กิวเมนต์เป็น BLANK() จะคืน BLANK() เหมาะมากกับการกำหนดค่าเริ่มต้น เช่น แทนค่า BLANK ด้วย 0 หรือแทนด้วยข้อความ เพื่อให้รายงานอ่านง่ายและลดปัญหาการแสดงผลว่าง

Leave a Reply

Your email address will not be published. Required fields are marked *