---
title: SELECTEDVALUE – ดึงค่าเดียวจาก Filter Context
url: https://www.thepexcel.com/functions/dax/filter/selectedvalue-dax/
type: function-explainer
program: DAX
syntax: "SELECTEDVALUE(<columnName>[, <alternateResult>])"
date: 2025-12-13
updated: 2025-12-20
scores:
  popularity: 8
  difficulty: 4
  usefulness: 8
---

# SELECTEDVALUE – ดึงค่าเดียวจาก Filter Context

> SELECTEDVALUE ตรวจสอบว่า Filter Context ลดลงเหลือเพียงค่าเดียวแล้ว ถ้าใช่ให้คืนค่านั้น ถ้าไม่ใช่ให้ค

## คำอธิบาย

SELECTEDVALUE ตรวจสอบว่า Filter Context ลดลงเหลือเพียงค่าเดียวแล้ว ถ้าใช่ให้คืนค่านั้น ถ้าไม่ใช่ให้คืนค่าอื่นแทน

## Syntax

```excel
SELECTEDVALUE(&lt;columnName&gt;[, &lt;alternateResult&gt;])
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| columnName | Yes | Column Reference |  | คอลัมน์ที่ต้องการตรวจสอบ ต้องเป็นการอ้างอิงคอลัมน์โดยตรง (ไม่ใช่นิพจน์) |
| alternateResult | No | Scalar Value | BLANK() | ค่าที่จะคืนกลับเมื่อมี 0 หรือหลายค่าใน Filter Context หากไม่ระบุจะคืน BLANK() |

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

### Dynamic Title / Header

แสดงชื่อสินค้าที่ถูกเลือกใน Slicer บนหัวรายงาน

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

### Conditional Measure Calculation

คำนวณ Measure ที่แตกต่างกันขึ้นอยู่กับว่าผู้ใช้เลือกสินค้าหมวดหมู่เดียว หรือหลายหมวดหมู่

_เหมาะกับ:_ conditional-logic

## ตัวอย่าง

### 1. แสดงสีที่เลือกในแบบง่ายๆ

```excel
Selected Color =
SELECTEDVALUE(
    Products[Color],
    "Multiple Colors Selected"
)
```

**ผลลัพธ์:** `เลือก Red → "Red" | เลือก Red และ Blue → "Multiple Colors Selected" | ไม่เลือก → "Multiple Colors Selected"`

ใช้ในการแสดงสีผลิตภัณฑ์ที่ผู้ใช้เลือก หากมีการเลือกมากกว่า 1 สี ให้แสดงข้อความแทน เป็นการป้องกัน BLANK() ที่ดูแปลกๆในรายงาน

### 2. ดึงปีที่เลือกสำหรับเปรียบเทียบปีต่อปี

```excel
Selected Year =
VAR SelectedYr = SELECTEDVALUE(
    'Calendar'[Year],
    YEAR(TODAY())
)
RETURN SelectedYr
```

**ผลลัพธ์:** `เลือก 2024 → 2024 | ไม่เลือก → ปีปัจจุบัน`

ถ้าผู้ใช้ไม่เลือกปี ให้ใช้ปีปัจจุบันเป็นค่าดีฟอลต์ แล้วใช้ค่านี้ในการคำนวณอื่นๆ ช่วยให้ dashboard มีความชาญฉลาด (smart default)

### 3. ตรวจสอบก่อนคำนวณการเปลี่ยนแปลงแบบปีต่อปี

```excel
YoY Growth =
VAR CurrentYear = SELECTEDVALUE(
    'Calendar'[Year],
    BLANK()
)
VAR PreviousYear = CurrentYear - 1
VAR CurrentSales = CALCULATE(
    SUM(Sales[Amount]),
    'Calendar'[Year] = CurrentYear
)
VAR PreviousSales = CALCULATE(
    SUM(Sales[Amount]),
    'Calendar'[Year] = PreviousYear
)
RETURN
    DIVIDE(CurrentSales - PreviousSales, PreviousSales, BLANK())
```

**ผลลัพธ์:** `เลือก 2024 → % เปลี่ยนแปลงจาก 2023 | ไม่เลือก → BLANK()`

โปรแกรมนี้ใช้ SELECTEDVALUE เพื่อดึงปีที่เลือก แล้วคำนวณการเปลี่ยนแปลงเมื่อเทียบกับปีก่อนหน้า เป็นตัวอย่าง Advanced ที่ SELECTEDVALUE ช่วยให้โปรแกรมมีความชัดเจนมากขึ้นครับ

### 4. เทียบเท่ากับ IF + HASONEVALUE + VALUES

```excel
Manual Equivalent =
IF(
    HASONEVALUE(Products[Category]),
    VALUES(Products[Category]),
    "No Single Category"
)
```

**ผลลัพธ์:** `ผลลัพธ์เดียวกับ SELECTEDVALUE(Products[Category], "No Single Category")`

นี่คือวิธีที่ SELECTEDVALUE ทำงานจริงๆด้านหลัง คือ "ถ้ามีค่าเดียว ให้คืนค่า ถ้าไม่ใช่ให้คืนค่าอื่น" - SELECTEDVALUE เพียงแค่เขียนสั้นกว่าและอ่านง่ายกว่านี่ครับ

### 5. สร้างตัวอักษร Tooltip ที่ขึ้นอยู่กับการเลือก

```excel
Region Filter Status =
VAR RegionSelected = SELECTEDVALUE(
    'Geography'[Region],
    "All Regions"
)
RETURN
    "Viewing data for: " & RegionSelected
```

**ผลลัพธ์:** `เลือก "North" → "Viewing data for: North" | ไม่เลือก → "Viewing data for: All Regions"`

ใช้ SELECTEDVALUE ในการสร้างข้อความคำแนะนำ (Tooltip) หรือชื่อเรื่องที่บอกผู้ใช้ว่า "คุณกำลังมองหาข้อมูลของ [Region]" เพื่อเพิ่มความเข้าใจของผู้ใช้ครับ

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

- ใช้ SELECTEDVALUE เพื่อสร้าง "Smart defaults" - เมื่อผู้ใช้ไม่เลือก ให้ใช้ค่าดีฟอลต์อัจฉริยะ เช่น ปีปัจจุบัน หรือค่าเฉลี่ย ช่วยให้ Dashboard ไม่ว่างเปล่า

- ใช้ alternateResult เพื่อให้ feedback แก่ผู้ใช้ว่า "หากต้องการรายงานนี้ ให้เลือก [filter]" ช่วยให้ UX ดีขึ้นครับ

- ผสมกับ VAR เพื่อให้โค้ด DAX ชัดเจนมากขึ้น เลยเห็นว่า "เลือก X" มีการคำนวณ Y ครับ

- alternateResult สามารถเป็นข้อความ ตัวเลข นิพจน์ หรือแม้แต่การเรียก DAX ฟังก์ชันอื่น (เช่น TODAY(), SUM() ฯลฯ) ได้

- ไม่จำเป็นต้องใช้ IF + HASONEVALUE + VALUES - ใช้ SELECTEDVALUE ช่วยให้โค้ดสั้น อ่านง่าย และประสิทธิภาพดีกว่า

- หากต้องแสดงหลายค่าที่เลือก ให้ใช้ CONCATENATEX + VALUES แทน ส่วน SELECTEDVALUE ใช้เมื่อต้องการ 1 ค่าเท่านั้นครับ

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

**Q: SELECTEDVALUE ต่างจาก VALUES กันยังไง?**

VALUES() คืนตารางมี (Table) สำหรับค่าทั้งหมด ส่วน SELECTEDVALUE() คืนค่าสเกลาร์เมื่อมี 1 ค่าพอดี หากมี 0 หรือหลายค่าให้คืน alternateResult ที่คุณระบุ ทำให้ SELECTEDVALUE ปลอดภัยกว่าและอ่านง่ายกว่าครับ โดยเฉพาะเมื่อต้องการข้อความคำเตือน (alert message)

**Q: ใช้ SELECTEDVALUE ใน Calculated Column ได้ไหม?**

ได้เต็มที่ในโหมด Import Mode ครับ เพราะมี Row Context ที่ชัดเจน ส่วน DirectQuery Mode ไม่สนับสนุนใน Calculated Column หรือ RLS Rules ถ้าต้องใช้ ให้สร้างเป็น Measure แทน

**Q: ถ้าไม่ระบุ alternateResult จะคืนค่าอะไร?**

จะคืน BLANK() ซึ่งแสดงผลว่างเปล่า ถ้าอยากให้ชัดเจนว่า "ไม่ได้เลือก" ให้ระบุ alternateResult เช่น "No selection" หรือ 0 ได้ครับ

**Q: SELECTEDVALUE ทำงานใน DirectQuery Mode ได้ไหม?**

ใน Measure ได้นะครับ แต่ Calculated Column และ RLS Rules ใน DirectQuery ไม่สนับสนุน ทั่วไปคุณจะใช้ Import Mode หรือ Dual Mode ได้นครับ

**Q: ทำไมไม่ใช้ SELECTEDVALUE กับ Fields Parameter ได้?**

Fields Parameter เป็นคอลัมน์ Virtual ไม่ใช่คอลัมน์ที่แท้จริง SELECTEDVALUE ต้องการอ้างอิงคอลัมน์จริง ถ้าต้องใช้ให้ใช้ SELECTCOLUMNS + SUMMARIZE เป็นวิธีแก้ไขครับ

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

- [HASONEVALUE – ตรวจสอบว่ามีค่าเดียวในบริบท](https://www.thepexcel.com/functions/dax/information/hasonevalue-dax/)
- [VALUES – ดึงค่าที่ไม่ซ้ำจากคอลัมน์ (รวม Blank จากข้อผิดพลาดความสัมพันธ์)](https://www.thepexcel.com/functions/dax/table-manipulation/values-dax/)
- [CALCULATE – ฟังก์ชันหลักของ DAX ที่ควบคุม Filter Context](https://www.thepexcel.com/functions/dax/filter/calculate-dax/)
- [IF – ตรวจสอบเงื่อนไขและคืนค่าตามผลลัพธ์ TRUE/FALSE](https://www.thepexcel.com/functions/dax/logical/if-dax/)
- var-dax

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

- [Microsoft Learn: SELECTEDVALUE](https://learn.microsoft.com/en-us/dax/selectedvalue-function-dax) _(official)_
- [DAX Guide: SELECTEDVALUE](https://dax.guide/selectedvalue/) _(guide)_

---

_Source: [https://www.thepexcel.com/functions/dax/filter/selectedvalue-dax/](https://www.thepexcel.com/functions/dax/filter/selectedvalue-dax/)_
