Thep Excel

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

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

fx
=COLLAPSE(<value>)

ความนิยม3/10
ความยาก5/10
ประโยชน์3/10

อัปเดต 14 December 2025

Syntax & Arguments

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

COLLAPSE ใช้ยุบผลลัพธ์ที่เป็นตารางหรือคอลัมน์ให้เหลือค่าสเกลาร์เดียว หากบริบทมีค่าหนึ่งค่า จะคืนค่านั้น หากมีหลายค่าจะได้ 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 ช่วยป้องกันการใช้ค่าผิด

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

ผลลัพธ์คืนชื่อ Category เดียว หรือ BLANK หากมีหลายหมวด
ตัวอย่างที่ 2: ยุบค่าคงที่เพื่อกำหนดดีฟอลต์Default Currency = COLLAPSE("THB")

เมื่อใส่คงที่เพียงค่าเดียว COLLAPSE จะคืนค่าตามที่ระบุ เหมาะสำหรับกำหนดค่าตั้งต้นของ Measure หรือข้อความสรุป

fx
Default Currency = COLLAPSE("THB")

ผลลัพธ์THB
ตัวอย่างที่ 3: ใช้ร่วมกับ CALCULATE เพื่อเช็กบริบทCurrent Brand = CALCULATE( COLLAPSE(VALUES(Products[Brand])), Products[Active] = TRUE() )

CALCULATE จำกัดบริบทให้เหลือเฉพาะสินค้าที่ Active แล้ว COLLAPSE ยุบค่า Brand หากบริบทหลังกรองมีหลายแบรนด์ ผลจะเป็น BLANK ช่วยบอกให้ผู้ใช้เลือกให้เหลือแบรนด์เดียวก่อน

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

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

FAQs

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

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

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

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

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

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

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ COLLAPSE จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้COLLAPSEVisual calculations
Visual calculations (2)
COLLAPSEALL

COLLAPSEALL ลบระดับรายละเอียดทั้งหมดในบริบทปัจจุบันแล้วคืนค่าหรือประเมินนิพจน์ในบริบทที่กว้างที่สุด ช่วยให้สามารถเปลี่ยนจากรายละเอียดลึกกลับไปคำนวณระดับสูงได้ในสูตรเดียว และเป็นฟังก์ชันคู่ตรงข้ามกับ EXPANDALL

EXPANDALL

EXPANDALL นำทางไปยังระดับการแสดงรายละเอียดต่ำสุด (Lowest Detail Level) บนแกน (Axis) ที่ระบุในการคำนวณภาพ (Visual Calculations) ส่งกลับบริบทที่มีระดับรายละเอียดที่เพิ่มเข้ามากำหนดการขยายลำดับชั้น (Hierarchy) ใช้สำหรับการคำนวณที่ต้องเข้าถึงข้อมูลระดับต่ำสุด

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่