---
title: COLLAPSE – ยุบผลลัพธ์ให้เหลือค่าสเกลาร์เดียว
url: https://www.thepexcel.com/functions/dax/visual-calculations/collapse-dax/
type: function-explainer
program: DAX
syntax: "COLLAPSE(<value>)"
date: 2025-12-14
updated: 2025-12-17
scores:
  popularity: 3
  difficulty: 5
  usefulness: 3
---

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

> ยุบชุดค่าให้เหลือค่าเดียว หากมีหลายค่าจะได้ BLANK

## คำอธิบาย

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

## Syntax

```excel
COLLAPSE(&lt;value&gt;)
```

**Variant**

```excel
COLLAPSE(&lt;column&gt;)
```

ยุบค่าจากคอลัมน์หนึ่งให้เหลือค่าเดียว หากมีหลายค่าจะได้ BLANK

**Variant**

```excel
COLLAPSE(VALUES(&lt;column&gt;))
```

ใช้ร่วมกับ VALUES เพื่อยุบค่าที่เหลือหลังจากกรอง context

## Arguments

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

## เคสการใช้งาน

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

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

_เหมาะกับ:_ context-validation

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

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

_เหมาะกับ:_ parameter-passing

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

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

_เหมาะกับ:_ dynamic-label

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: ยุบค่าหมวดสินค้าให้เหลือหนึ่งค่า

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

**ผลลัพธ์:** `คืนชื่อ Category เดียว หรือ BLANK หากมีหลายหมวด`

ใช้กับ VALUES เพื่อดึงค่าที่เหลือใน filter context ถ้าเลือกหมวดเดียวจะได้ชื่อนั้น หากเลือกหลายหมวดจะได้ BLANK ช่วยป้องกันการใช้ค่าผิด

### 2. ตัวอย่างที่ 2: ยุบค่าคงที่เพื่อกำหนดดีฟอลต์

```excel
Default Currency = COLLAPSE("THB")
```

**ผลลัพธ์:** `THB`

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

### 3. ตัวอย่างที่ 3: ใช้ร่วมกับ CALCULATE เพื่อเช็กบริบท

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

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

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

## หมายเหตุเพิ่มเติม

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

## คำถามที่พบบ่อย

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

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

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

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

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

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

## ฟังก์ชันที่เกี่ยวข้อง

- [COLLAPSEALL – ยุบทุกระดับรายละเอียดให้เหลือบริบทกว้างสุด](https://www.thepexcel.com/functions/dax/visual-calculations/collapseall-dax/)
- [VALUES – ดึงค่าที่ไม่ซ้ำจากคอลัมน์ (รวม Blank จากข้อผิดพลาดความสัมพันธ์)](https://www.thepexcel.com/functions/dax/table-manipulation/values-dax/)
- [SELECTCOLUMNS – ฟังก์ชัน DAX](https://www.thepexcel.com/functions/dax/table-manipulation/selectcolumns-dax/)
- [SUMMARIZECOLUMNS – สร้างตารางสรุปแบบ Dynamic Query](https://www.thepexcel.com/functions/dax/table-manipulation/summarizecolumns-dax/)
- [CALCULATE – ฟังก์ชันหลักของ DAX ที่ควบคุม Filter Context](https://www.thepexcel.com/functions/dax/filter/calculate-dax/)
- [SELECTEDVALUE – ดึงค่าเดียวจาก Filter Context](https://www.thepexcel.com/functions/dax/filter/selectedvalue-dax/)
- [COALESCE – คืนค่าแรกที่ไม่เป็น BLANK()](https://www.thepexcel.com/functions/dax/logical/coalesce-dax/)
- [FILTER – กรองตารางด้วยเงื่อนไขที่ซับซ้อน (Iterator Function)](https://www.thepexcel.com/functions/dax/filter/filter-dax/)
- [CURRENCY – แปลงค่าเป็นชนิด Currency](https://www.thepexcel.com/functions/dax/math-and-trig/currency-dax/)

## แหล่งข้อมูลเพิ่มเติม

- [DAX Guide: COLLAPSE](https://dax.guide/collapse/) _(documentation)_

---

_Source: [https://www.thepexcel.com/functions/dax/visual-calculations/collapse-dax/](https://www.thepexcel.com/functions/dax/visual-calculations/collapse-dax/)_
