---
title: CHOOSE – เลือกค่าตามลำดับ
url: https://www.thepexcel.com/functions/excel/lookup-and-reference/choose/
type: function-explainer
program: Excel
syntax: "=CHOOSE(index_num, value1, [value2], ...)"
date: 2025-12-02
updated: 2025-12-17
scores:
  popularity: 7
  difficulty: 4
  usefulness: 8
---

# CHOOSE – เลือกค่าตามลำดับ

> เลือกค่าตามลำดับ

## คำอธิบาย

CHOOSE เลือกค่าจากรายการค่าตามหมายเลขลำดับที่ระบุ เป็นเหมือนการเลือกรายการจากเมนู ส่งคืนค่าที่ตำแหน่งที่กำหนด มีประโยชน์ในการสร้างสูตรแบบเลือกตามเงื่อนไข

## Syntax

```excel
=CHOOSE(index_num, value1, [value2], ...)
```

**excel**

```excel
=CHOOSE(A1, "Gold", "Silver", "Bronze")
```

เลือกรางวัลตามอันดับ

**excel**

```excel
=CHOOSE(WEEKDAY(TODAY()), "อา", "จ", "อ", "พ", "พฤ", "ศ", "ส")
```

แปลงเลขวันเป็นชื่อวันไทย

**excel**

```excel
=CHOOSE(Option, SUM(Data), AVERAGE(Data), MAX(Data))
```

เลือกสูตรคำนวณแบบ Dynamic

**excel**

```excel
=INDEX(CHOOSE({1,2}, A:A, B:B), MATCH(...))
```

ใช้กับ INDEX/MATCH เลือก lookup column

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| index_num | Yes | Number |  | ลำดับที่ต้องการเลือก (1, 2, 3...) |
| value1 | Yes | Any |  | ค่าที่ 1 |
| value2 | No | Any |  | ค่าที่ 2, 3, ... (รวมได้สูงสุด 254 ค่า) |

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

### แปลงรหัสเป็นข้อความ

แปลงรหัสตัวเลข 1,2,3 เป็นชื่อหมวดหมู่ สถานะ หรือระดับ

_เหมาะกับ:_ data-transformation

### สูตรคำนวณแบบเลือกได้

ให้ผู้ใช้เลือกว่าจะใช้ SUM, AVERAGE หรือ MAX ตามค่าใน Config Cell

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

### สร้าง Lookup หลายคอลัมน์

ใช้กับ INDEX/MATCH เพื่อเลือก Return Column ตามเงื่อนไข

_เหมาะกับ:_ lookup

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: เลือกตามลำดับพื้นฐาน

```excel
=CHOOSE(2, "Gold", "Silver", "Bronze")
```

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

index_num=2 เลือกค่าตำแหน่งที่ 2 คือ "Silver"

### 2. ตัวอย่างที่ 2: แปลงเลขวันเป็นชื่อวันไทย

```excel
=CHOOSE(WEEKDAY(DATE(2025,1,15)), "อา", "จ", "อ", "พ", "พฤ", "ศ", "ส")
```

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

15 ม.ค. 2025 = วันพุธ (WEEKDAY=4) ดังนั้น CHOOSE เลือกตัวที่ 4 = "พ"

### 3. ตัวอย่างที่ 3: เลือกสูตรคำนวณ

```excel
=CHOOSE(2, SUM(A1:A5), AVERAGE(A1:A5), MAX(A1:A5))
```

**ผลลัพธ์:** `30 (ค่าเฉลี่ย)`

ถ้า A1:A5={10,20,30,40,50} และ index=2 จะใช้ AVERAGE ได้ 30

### 4. ตัวอย่างที่ 4: แปลงเกรดเป็นคะแนน

```excel
=CHOOSE(MATCH(B1, {"F","D","C","B","A"}, 0), 0, 1, 2, 3, 4)
```

**ผลลัพธ์:** `4 (ถ้า B1="A")`

MATCH หาตำแหน่งเกรด แล้ว CHOOSE แปลงเป็นคะแนน GPA

### 5. ตัวอย่างที่ 5: เลือก Range สำหรับ VLOOKUP

```excel
=VLOOKUP(A1, CHOOSE(Region, Products!A:D, Services!A:D), 2, FALSE)
```

**ผลลัพธ์:** `ค่าจาก Products หรือ Services`

ถ้า Region=1 ค้นหาจาก Products ถ้า Region=2 ค้นหาจาก Services

### 6. ตัวอย่างที่ 6: CHOOSE กับ Array (สร้างไตรมาส)

```excel
=CHOOSE(CEILING(MONTH(A1)/3, 1), "Q1", "Q2", "Q3", "Q4")
```

**ผลลัพธ์:** `Q1 (ถ้าเดือน 1-3)`

CEILING หารเดือนด้วย 3 ปัดขึ้น แปลงเป็นเลขไตรมาส 1-4

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

**CHOOSE vs SWITCH vs IFS:**

| Feature | CHOOSE | SWITCH | IFS |
|---------|--------|--------|-----|
| ใช้ลำดับ 1,2,3 | Yes | No | No |
| จับคู่ค่า | No | Yes | No |
| เงื่อนไขซับซ้อน | No | No | Yes |
| รองรับ Range | Yes | No | No |
| Default value | No | Yes | No |

**Pattern การใช้งาน:**
```
=CHOOSE(n, v1, v2, v3)              -> เลือกค่าตามลำดับ
=CHOOSE(WEEKDAY(date), d1...d7)     -> แปลงวัน
=CHOOSE(n, SUM(..), AVG(..), MAX()) -> เลือกสูตร
=VLOOKUP(x, CHOOSE(n, R1, R2), ...)  -> เลือก lookup range
```

**Tips:**
- CHOOSE คำนวณทุก argument ก่อนเลือก (ต่างจาก IF ที่ lazy evaluation)
- ใช้ CHOOSE กับ WEEKDAY/MONTH สะดวกกว่า nested IF
- ใช้ SWITCH แทน CHOOSE เมื่อค่าไม่ต่อเนื่อง (1,3,5...)

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

**Q: CHOOSE รับได้สูงสุดกี่ค่า?**

รับได้สูงสุด 254 ค่า (value1 ถึง value254) ถ้ามากกว่านั้นต้องใช้ SWITCH หรือ INDEX

**Q: index_num=0 หรือติดลบได้ไหม?**

ไม่ได้ ต้องเป็น 1 ถึงจำนวนค่าที่ระบุ (1-254) มิฉะนั้นจะได้ #VALUE! error

**Q: CHOOSE เลือก Range ได้ไหม?**

ได้ เช่น =CHOOSE(2, A1:A10, B1:B10, C1:C10) จะเลือก B1:B10 ทั้ง Range

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

CHOOSE ใช้ลำดับ 1,2,3... ส่วน SWITCH ใช้ค่าจับคู่ (เช่น "A"->4, "B"->3) SWITCH ยืดหยุ่นกว่า

**Q: index_num เป็นทศนิยมได้ไหม?**

ได้ แต่จะถูกปัดเศษลง (truncate) เช่น 2.9 จะกลายเป็น 2

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

- [AVERAGE – หาค่าเฉลี่ยของตัวเลข](https://www.thepexcel.com/functions/excel/statistical/average/)
- [CEILING – ปัดเศษขึ้นตามจำนวนที่กำหนด](https://www.thepexcel.com/functions/excel/compatibility/ceiling/)
- [CHOOSECOLS – เลือกและจัดเรียงคอลัมน์จากตาราง](https://www.thepexcel.com/functions/excel/lookup-and-reference/choosecols/)
- [IF – ฟังก์ชันตรรกะพื้นฐาน](https://www.thepexcel.com/functions/excel/logical/if/)
- [IFERROR – ดักจับ Error และเปลี่ยนเป็นค่าอื่น](https://www.thepexcel.com/functions/excel/logical/iferror/)
- [INDEX – ดึงค่าจากตำแหน่งที่ระบุใน Range หรือ Array](https://www.thepexcel.com/functions/excel/lookup-and-reference/index/)
- [LOOKUP – ค้นหาข้อมูลแบบดั้งเดิม](https://www.thepexcel.com/functions/excel/lookup-and-reference/lookup/)
- [MATCH – ค้นหาตำแหน่งของค่าในรายการ](https://www.thepexcel.com/functions/excel/lookup-and-reference/match/)
- [MAX – ฟังก์ชันหาค่าสูงสุด](https://www.thepexcel.com/functions/excel/statistical/max/)
- [SUM – ฟังก์ชันรวมตัวเลข](https://www.thepexcel.com/functions/excel/math-and-trigonometry/sum/)
- [SWITCH – ฟังก์ชันเลือกค่าตามเงื่อนไขหลายทาง](https://www.thepexcel.com/functions/excel/logical/switch/)
- [TODAY – แสดงวันที่ปัจจุบัน (อัปเดตอัตโนมัติ)](https://www.thepexcel.com/functions/excel/date-and-time/today/)
- [VLOOKUP – ฟังก์ชันค้นหาค่าแนวตั้งจากตาราง](https://www.thepexcel.com/functions/excel/lookup-and-reference/vlookup/)
- [WEEKDAY – หาลำดับวันในสัปดาห์ (จันทร์-อาทิตย์)](https://www.thepexcel.com/functions/excel/date-and-time/weekday/)

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

- [Official Documentation](https://support.microsoft.com/en-us/office/choose-function-fc5c184f-cb62-4ec7-a46e-38653b98f5bc) _(official)_
- [ExcelJet](https://exceljet.net/excel-functions/excel-choose-function) _(guide)_

---

_Source: [https://www.thepexcel.com/functions/excel/lookup-and-reference/choose/](https://www.thepexcel.com/functions/excel/lookup-and-reference/choose/)_
