Thep Excel

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

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

fx
=CHOOSE(index_num, value1, [value2], …)

ความนิยม7/10
ความยาก4/10
ประโยชน์8/10

อัปเดต 2 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
index_num Number ลำดับที่ต้องการเลือก (1, 2, 3…)
value1 Any ค่าที่ 1
[value2]ไม่บังคับ Any ค่าที่ 2, 3, … (รวมได้สูงสุด 254 ค่า)

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

ฟังก์ชัน CHOOSE ใน Excel ช่วยเลือกค่าจากรายการตามดัชนีที่ระบุ

How it works

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

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

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

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

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

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

Examples

ตารางสินค้าProductTableA1:D6
A B C D
1 รหัสสินค้า ชื่อสินค้า สถานะ ราคา
2 P001 เมาส์ไร้สาย ปิด 590
3 P002 คีย์บอร์ด เปิด 1,290
4 P003 จอ 27 นิ้ว ปิด 8,900
5 P004 หูฟัง เปิด 2,450
6 P005 เว็บแคม ปิด 1,750

ทุกสูตรด้านล่างอ้างถึงตารางนี้ พิมพ์ตามได้เลย ผลลัพธ์จะตรงกับที่เขียนไว้

ตัวอย่างที่ 1: เลือกตามลำดับพื้นฐานCHOOSE(3, B2, B3, B4, B5, B6)

index_num=3 เลือกอาร์กิวเมนต์ตัวที่ 3 ซึ่งคือ B4 นั่นคือ "จอ 27 นิ้ว"

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

ถ้าเปลี่ยน index_num เป็น 1 ก็จะได้ B2 คือ "เมาส์ไร้สาย" แทน

fx
=CHOOSE(3, B2, B3, B4, B5, B6)

ผลลัพธ์จอ 27 นิ้ว
ตัวอย่างที่ 2: แปลงเลขวันเป็นชื่อวันไทยCHOOSE(WEEKDAY(DATE(2025,1,15)), "อา", "จ", "อ", "พ", "พฤ", "ศ", "ส")

วันที่ 15 มกราคม 2025 ตรงกับวันพุธ WEEKDAY จึงคืนค่า 4 (อาทิตย์=1, จันทร์=2, อังคาร=3, พุธ=4 เป็นค่าเริ่มต้น)

CHOOSE จึงเลือกอาร์กิวเมนต์ตัวที่ 4 คือ "พ"

รูปแบบนี้ใช้แปลงตัวเลขจาก WEEKDAY หรือ MONTH ให้เป็นข้อความภาษาไทยได้เลยในสูตรเดียว ไม่ต้องเขียน IF ซ้อนกันหลายชั้น

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

ผลลัพธ์พ
ตัวอย่างที่ 3: เลือกสูตรคำนวณCHOOSE(2, SUM(D2:D6), AVERAGE(D2:D6), MAX(D2:D6))

CHOOSE คำนวณอาร์กิวเมนต์ทั้งสามตัวก่อนเสมอ (SUM, AVERAGE, MAX ของคอลัมน์ราคา D2:D6) แล้วค่อยเลือกตัวที่ 2 ออกมาแสดง

ตัวที่ 2 คือ AVERAGE(D2:D6) ซึ่งคือค่าเฉลี่ยราคาสินค้าทั้ง 5 รายการ ได้ 2,996 บาท

จุดนี้ต่างจาก IF ที่ทำงานแบบ lazy evaluation ครับ IF จะคำนวณเฉพาะกิ่งที่เลือกเท่านั้น แต่ CHOOSE คำนวณทุกตัวเสมอไม่ว่าจะเลือกตัวไหน

fx
=CHOOSE(2, SUM(D2:D6), AVERAGE(D2:D6), MAX(D2:D6))

ผลลัพธ์2996
ตัวอย่างที่ 4: แปลงสถานะเป็นตัวเลขCHOOSE(MATCH(C2, {"ปิด","เปิด"}, 0), 0, 1)

MATCH หาตำแหน่งของค่าในเซลล์ C2 (สถานะของ P001 คือ "ปิด") ในรายการ {"ปิด","เปิด"} เจอที่ตำแหน่ง 1

CHOOSE จึงเลือกอาร์กิวเมนต์ตัวที่ 1 คือ 0 หมายถึงแปลงสถานะข้อความเป็นค่าตัวเลขสำหรับเอาไปคำนวณต่อ

ถ้า C2 เป็น "เปิด" แทน MATCH จะได้ตำแหน่ง 2 และ CHOOSE จะคืนค่า 1 รูปแบบนี้ใช้แปลงป้ายข้อความเป็นคะแนนได้ เหมือนกับการแปลงเกรดเป็น GPA

fx
=CHOOSE(MATCH(C2, {"ปิด","เปิด"}, 0), 0, 1)

ตัวอย่างที่ 5: เลือก Range สำหรับ VLOOKUPVLOOKUP("P002", CHOOSE(1, A2:D3, A2:D6), 4, FALSE)

CHOOSE(1, A2:D3, A2:D6) เลือกอาร์กิวเมนต์ตัวที่ 1 ซึ่งคือช่วง A2:D3 (มีแค่ P001 กับ P002 สองแถวแรก) แล้วส่ง range นั้นให้ VLOOKUP ค้นหาต่อ

VLOOKUP หา "P002" ใน A2:D3 เจอ แล้วดึงราคาจากคอลัมน์ที่ 4 ได้ 1,290 บาท

ถ้าเปลี่ยนตัวแรกของ CHOOSE เป็น 2 จะสลับไปค้นหาใน A2:D6 (ตารางเต็ม) แทน เทคนิคนี้ใช้เลือกช่วงค้นหาแบบมีเงื่อนไขได้ เช่น เลือกระหว่างตารางสาขา A กับสาขา B

fx
=VLOOKUP("P002", CHOOSE(1, A2:D3, A2:D6), 4, FALSE)

ผลลัพธ์1290
ตัวอย่างที่ 6: CHOOSE กับ Array (สร้างไตรมาส)CHOOSE(CEILING(MONTH(DATE(2025,5,12))/3, 1), "Q1", "Q2", "Q3", "Q4")

DATE(2025,5,12) คือวันที่ 12 พฤษภาคม 2025 MONTH จึงคืนค่า 5

CEILING(5/3, 1) ปัดเศษ 1.67 ขึ้นเป็น 2 ทำให้ได้เลขไตรมาสที่ถูกต้อง

CHOOSE จึงเลือกอาร์กิวเมนต์ตัวที่ 2 คือ "Q2" เทคนิคนี้แปลงเดือนเป็นไตรมาสได้ในสูตรเดียว ไม่ต้องเขียน IF ซ้อนกันหลายชั้น

fx
=CHOOSE(CEILING(MONTH(DATE(2025,5,12))/3, 1), "Q1", "Q2", "Q3", "Q4")

ผลลัพธ์Q2

FAQs

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

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

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

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

CHOOSE เลือก Range ได้ไหม?+

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

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

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

index_num เป็นทศนิยมได้ไหม?+

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

Resources & Related

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

ฟังก์ชันนี้CHOOSELookup and reference
Lookup and reference (4)
INDEX

INDEX คืนค่าหรือ reference ของเซลล์จากตำแหน่งที่ระบุใน range หรือ array โดยอ้างอิงจากหมายเลขแถวและคอลัมน์ที่เราระบุ มักถูกใช้ร่วมกับ MATCH เพื่อสร้าง INDEX-MATCH pattern ที่ยืดหยุ่นกว่า VLOOKUP เยอะ เพราะสามารถดึงข้อมูลจากทิศทางไหนก็ได้ และไม่พังเมื่อมีการแทรกหรือลบคอลัมน์

LOOKUP

LOOKUP ค้นหาค่าในช่วงข้อมูลที่เรียงลำดับแล้ว (ascending) และคืนค่าจากตำแหน่งเดียวกันในอีกช่วงหนึ่ง มีเทคนิคพิเศษคือหาค่าสุดท้ายที่ไม่ว่าง แนะนำใช้ XLOOKUP แทนสำหรับ Excel 365

MATCH

MATCH คืนเลขลำดับตำแหน่งของค่าที่ค้นหาในช่วงข้อมูลแถวเดียวหรือคอลัมน์เดียว รองรับการค้นหา 3 โหมด คือ Exact Match (0) ที่ไม่ต้องเรียงข้อมูล, Approximate Match แบบ Less Than or Equal (1) ที่ต้องเรียงจากน้อยไปมาก, และ Greater Than or Equal (-1) ที่ต้องเรียงจากมากไปน้อย รองรับ Wildcard (* และ ?) ในโหมด Exact Match และมักใช้คู่กับ INDEX เป็นรูปแบบ INDEX-MATCH ที่ยืดหยุ่นกว่า VLOOKUP

VLOOKUP

VLOOKUP เป็นฟังก์ชันค้นหาแนวตั้งที่ได้รับความนิยมสูงสุดใน Excel โดยค้นหาค่าที่ต้องการในคอลัมน์ซ้ายสุดของตาราง จากนั้นดึงข้อมูลจากคอลัมน์ที่ระบุในแถวเดียวกัน รองรับทั้งการค้นหาแบบตรงทุกตัวอักษร (Exact Match) และแบบประมาณค่า (Approximate Match) สำหรับข้อมูลที่เรียงลำดับ ข้อจำกัดหลักคือต้องค้นหาจากคอลัมน์ซ้ายสุดเท่านั้น ไม่สามารถดึงข้อมูลจากด้านซ้ายของคอลัมน์ค้นหาได้

Logical (3)
IF

IF เป็นฟังก์ชันตรรกะพื้นฐานที่ใช้ตัดสินใจสองทางตามเงื่อนไข ตรวจสอบว่าเงื่อนไขเป็น TRUE หรือ FALSE แล้วคืนค่าที่แตกต่างกันไปตามผลลัพธ์ สามารถใช้ได้กับการเปรียบเทียบตัวเลข ข้อความ หรือวันที่ และเป็นพื้นฐานสำคัญของการสร้างสูตรแบบมีเงื่อนไข

IFS

IFS ทดสอบหลายเงื่อนไขตามลำดับที่กำหนด และคืนค่าของเงื่อนไขแรกที่เป็น TRUE แล้วหยุดทำงานทันที โครงสร้างเป็นคู่ (เงื่อนไข, ผลลัพธ์) ซ้ำได้สูงสุด 127 คู่ ทำให้อ่านและเขียนง่ายกว่า Nested IF แบบซ้อนชั้น ควรใส่ TRUE เป็นเงื่อนไขสุดท้ายเพื่อกำหนดค่า default ป้องกัน #N/A error มีตั้งแต่ Excel 2019 และ Microsoft 365 เท่านั้น

SWITCH

SWITCH ประเมินนิพจน์หรือค่าหนึ่งค่า แล้วเปรียบเทียบกับรายการค่าที่กำหนดตามลำดับ เมื่อพบค่าที่ตรงกันจะส่งคืนผลลัพธ์ที่เชื่อมโยงทันที หากไม่ตรงกับค่าใดเลยสามารถกำหนด default value ได้ เหมาะสำหรับแทนที่ nested IF หลายชั้นด้วยไวยากรณ์ที่อ่านง่ายกว่ามาก

Math and trigonometry (1)
RANDBETWEEN

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

Comments

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