Thep Excel

COLLAPSE – ยุบผลลัพธ์ให้เหลือค่าสเกลาร์เดียว

COLLAPSE ยุบผลลัพธ์ตารางหรือคอลัมน์ให้เหลือค่าสเกลาร์เดียว ช่วยบังคับให้บริบทมีค่าเดียวก่อนส่งต่อให้ฟังก์ชันอื่น หากมีหลายค่าจะคืน BLANK ช่วยตรวจสอบความถูกต้องของ filter context และใช้กำหนดค่าพารามิเตอร์ที่ควรมีค่าเดียว

=COLLAPSE(<value>)

By ThepExcel AI Agent
14 December 2025

Function Metrics


Popularity
3/10

Difficulty
5/10

Usefulness
3/10

Syntax & Arguments

=COLLAPSE(<value>)

Argument Type Required Default Description
value scalar or column Yes ค่าสเกลาร์ คอลัมน์ หรือผลลัพธ์ตารางที่คาดหวังว่าจะมีค่าเดียวในบริบท หากมีหลายค่าผลจะเป็น BLANK

How it works

ตรวจว่าบริบทเหลือค่าเดียว

ใช้ COLLAPSE กับ VALUES เพื่อตรวจสอบว่ามี Category เดียวในบริบทหรือไม่ ถ้ามีหลายค่าจะได้ BLANK เพื่อป้องกันการคำนวณผิด

ส่งค่าพารามิเตอร์แบบเดี่ยวให้ Measure

บังคับให้ตัวเลือกพารามิเตอร์ที่มาจาก slicer เหลือค่าเดียวก่อนนำไปใช้ใน Measure อื่น ลดปัญหา error เมื่อมีหลายการเลือก

สร้างข้อความสรุปจากค่าที่กรอง

ยุบค่าที่เลือกแล้วนำไปต่อข้อความ เช่น แสดงชื่อหมวดที่ถูกกรอง หากมีหลายค่าจะปล่อยเป็น BLANK เพื่อหลีกเลี่ยงข้อความผิด

Examples

ตัวอย่างที่ 1: ยุบค่าหมวดสินค้าให้เหลือหนึ่งค่า
Selected Category = COLLAPSE(VALUES(Products[Category]))
ใช้กับ VALUES เพื่อดึงค่าที่เหลือใน filter context ถ้าเลือกหมวดเดียวจะได้ชื่อนั้น หากเลือกหลายหมวดจะได้ BLANK ช่วยป้องกันการใช้ค่าผิด
DAX Formula:

Selected Category = COLLAPSE(VALUES(Products[Category]))

Result:

คืนชื่อ Category เดียว หรือ BLANK หากมีหลายหมวด

ตัวอย่างที่ 2: ยุบค่าคงที่เพื่อกำหนดดีฟอลต์
Default Currency = COLLAPSE("THB")
เมื่อใส่คงที่เพียงค่าเดียว COLLAPSE จะคืนค่าตามที่ระบุ เหมาะสำหรับกำหนดค่าตั้งต้นของ Measure หรือข้อความสรุป
DAX Formula:

Default Currency = COLLAPSE("THB")

Result:

THB

ตัวอย่างที่ 3: ใช้ร่วมกับ CALCULATE เพื่อเช็กบริบท
Current Brand = CALCULATE( COLLAPSE(VALUES(Products[Brand])), Products[Active] = TRUE() )
CALCULATE จำกัดบริบทให้เหลือเฉพาะสินค้าที่ Active แล้ว COLLAPSE ยุบค่า Brand หากบริบทหลังกรองมีหลายแบรนด์ ผลจะเป็น BLANK ช่วยบอกให้ผู้ใช้เลือกให้เหลือแบรนด์เดียวก่อน
DAX Formula:

Current Brand =
CALCULATE(
    COLLAPSE(VALUES(Products[Brand])),
    Products[Active] = TRUE()
)

Result:

ชื่อแบรนด์ที่ถูกกรองเหลือค่าเดียว หรือ BLANK หากยังมีหลายแบรนด์

FAQs

ถ้ามีหลายค่าภายใต้ context เดียวกันจะเกิดอะไรขึ้น?

COLLAPSE จะคืน BLANK เพื่อบอกว่าบริบทมีหลายค่า ไม่ใช่ค่าเดียว ทำให้คุณสามารถจัดการข้อผิดพลาดหรือแจ้งผู้ใช้ให้เลือกให้แคบลง

ต่างจาก VALUES อย่างไร?

VALUES ส่งกลับตารางของค่าที่แตกต่างกันทั้งหมด ส่วน COLLAPSE ยุบให้เหลือค่าเดียวหรือ BLANK เพื่อใช้เป็นสเกลาร์ จึงเหมาะเมื่อฟังก์ชันปลายทางรับได้แค่ค่าเดียว

ใช้แทน SELECTEDVALUE ได้หรือไม่?

COLLAPSE คล้าย SELECTEDVALUE แต่จะคืน BLANK ถ้ามีหลายค่าโดยไม่รองรับค่า alternate result คุณสามารถใช้ร่วมกับ COALESCE เพื่อกำหนดข้อความแจ้งเตือนได้

Resources & Related

Additional Notes

COLLAPSE ใช้ยุบผลลัพธ์ที่เป็นตารางหรือคอลัมน์ให้เหลือค่าสเกลาร์เดียว หากบริบทมีค่าหนึ่งค่า จะคืนค่านั้น หากมีหลายค่าจะได้ BLANK จึงเหมาะสำหรับตรวจสอบว่าบริบทถูกกรองเหลือค่าเดียวหรือไม่ หรือใช้ส่งค่าพารามิเตอร์ให้สูตรอื่น

Leave a Reply

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