CHOOSE เลือกค่าจากรายการค่าตามหมายเลขลำดับที่ระบุ เป็นเหมือนการเลือกรายการจากเมนู ส่งคืนค่าที่ตำแหน่งที่กำหนด มีประโยชน์ในการสร้างสูตรแบบเลือกตามเงื่อนไข
| อาร์กิวเมนต์ | ชนิด | คำอธิบาย |
|---|---|---|
| index_num | Number | ลำดับที่ต้องการเลือก (1, 2, 3…) |
| value1 | Any | ค่าที่ 1 |
| [value2]ไม่บังคับ | Any | ค่าที่ 2, 3, … (รวมได้สูงสุด 254 ค่า) |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
ฟังก์ชัน CHOOSE ใน Excel ช่วยเลือกค่าจากรายการตามดัชนีที่ระบุ
แปลงรหัสตัวเลข 1,2,3 เป็นชื่อหมวดหมู่ สถานะ หรือระดับ
ให้ผู้ใช้เลือกว่าจะใช้ SUM, AVERAGE หรือ MAX ตามค่าใน Config Cell
ใช้กับ INDEX/MATCH เพื่อเลือก Return Column ตามเงื่อนไข
| 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 |
ทุกสูตรด้านล่างอ้างถึงตารางนี้ พิมพ์ตามได้เลย ผลลัพธ์จะตรงกับที่เขียนไว้
index_num=3 เลือกอาร์กิวเมนต์ตัวที่ 3 ซึ่งคือ B4 นั่นคือ "จอ 27 นิ้ว"
CHOOSE ไม่สนว่าอาร์กิวเมนต์แต่ละตัวจะเป็นค่าคงที่หรือการอ้างอิงเซลล์ ใส่เป็นเซลล์ได้เหมือนกัน สะดวกกว่าเวลาข้อมูลอยู่บนชีตอยู่แล้ว
ถ้าเปลี่ยน index_num เป็น 1 ก็จะได้ B2 คือ "เมาส์ไร้สาย" แทน
วันที่ 15 มกราคม 2025 ตรงกับวันพุธ WEEKDAY จึงคืนค่า 4 (อาทิตย์=1, จันทร์=2, อังคาร=3, พุธ=4 เป็นค่าเริ่มต้น)
CHOOSE จึงเลือกอาร์กิวเมนต์ตัวที่ 4 คือ "พ"
รูปแบบนี้ใช้แปลงตัวเลขจาก WEEKDAY หรือ MONTH ให้เป็นข้อความภาษาไทยได้เลยในสูตรเดียว ไม่ต้องเขียน IF ซ้อนกันหลายชั้น
CHOOSE คำนวณอาร์กิวเมนต์ทั้งสามตัวก่อนเสมอ (SUM, AVERAGE, MAX ของคอลัมน์ราคา D2:D6) แล้วค่อยเลือกตัวที่ 2 ออกมาแสดง
ตัวที่ 2 คือ AVERAGE(D2:D6) ซึ่งคือค่าเฉลี่ยราคาสินค้าทั้ง 5 รายการ ได้ 2,996 บาท
จุดนี้ต่างจาก IF ที่ทำงานแบบ lazy evaluation ครับ IF จะคำนวณเฉพาะกิ่งที่เลือกเท่านั้น แต่ CHOOSE คำนวณทุกตัวเสมอไม่ว่าจะเลือกตัวไหน
MATCH หาตำแหน่งของค่าในเซลล์ C2 (สถานะของ P001 คือ "ปิด") ในรายการ {"ปิด","เปิด"} เจอที่ตำแหน่ง 1
CHOOSE จึงเลือกอาร์กิวเมนต์ตัวที่ 1 คือ 0 หมายถึงแปลงสถานะข้อความเป็นค่าตัวเลขสำหรับเอาไปคำนวณต่อ
ถ้า C2 เป็น "เปิด" แทน MATCH จะได้ตำแหน่ง 2 และ CHOOSE จะคืนค่า 1 รูปแบบนี้ใช้แปลงป้ายข้อความเป็นคะแนนได้ เหมือนกับการแปลงเกรดเป็น GPA
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
DATE(2025,5,12) คือวันที่ 12 พฤษภาคม 2025 MONTH จึงคืนค่า 5
CEILING(5/3, 1) ปัดเศษ 1.67 ขึ้นเป็น 2 ทำให้ได้เลขไตรมาสที่ถูกต้อง
CHOOSE จึงเลือกอาร์กิวเมนต์ตัวที่ 2 คือ "Q2" เทคนิคนี้แปลงเดือนเป็นไตรมาสได้ในสูตรเดียว ไม่ต้องเขียน IF ซ้อนกันหลายชั้น
รับได้สูงสุด 254 ค่า (value1 ถึง value254) ถ้ามากกว่านั้นต้องใช้ SWITCH หรือ INDEX
ไม่ได้ ต้องเป็น 1 ถึงจำนวนค่าที่ระบุ (1-254) มิฉะนั้นจะได้ #VALUE! error
ได้ เช่น =CHOOSE(2, A1:A10, B1:B10, C1:C10) จะเลือก B1:B10 ทั้ง Range
CHOOSE ใช้ลำดับ 1,2,3… ส่วน SWITCH ใช้ค่าจับคู่ (เช่น "A"->4, "B"->3) SWITCH ยืดหยุ่นกว่า
ได้ แต่จะถูกปัดเศษลง (truncate) เช่น 2.9 จะกลายเป็น 2
ฟังก์ชันที่ผู้เขียนโยงไว้กับ CHOOSE จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
INDEX คืนค่าหรือ reference ของเซลล์จากตำแหน่งที่ระบุใน range หรือ array โดยอ้างอิงจากหมายเลขแถวและคอลัมน์ที่เราระบุ มักถูกใช้ร่วมกับ MATCH เพื่อสร้าง INDEX-MATCH pattern ที่ยืดหยุ่นกว่า VLOOKUP เยอะ เพราะสามารถดึงข้อมูลจากทิศทางไหนก็ได้ และไม่พังเมื่อมีการแทรกหรือลบคอลัมน์
LOOKUP ค้นหาค่าในช่วงข้อมูลที่เรียงลำดับแล้ว (ascending) และคืนค่าจากตำแหน่งเดียวกันในอีกช่วงหนึ่ง มีเทคนิคพิเศษคือหาค่าสุดท้ายที่ไม่ว่าง แนะนำใช้ XLOOKUP แทนสำหรับ Excel 365
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 เป็นฟังก์ชันค้นหาแนวตั้งที่ได้รับความนิยมสูงสุดใน Excel โดยค้นหาค่าที่ต้องการในคอลัมน์ซ้ายสุดของตาราง จากนั้นดึงข้อมูลจากคอลัมน์ที่ระบุในแถวเดียวกัน รองรับทั้งการค้นหาแบบตรงทุกตัวอักษร (Exact Match) และแบบประมาณค่า (Approximate Match) สำหรับข้อมูลที่เรียงลำดับ ข้อจำกัดหลักคือต้องค้นหาจากคอลัมน์ซ้ายสุดเท่านั้น ไม่สามารถดึงข้อมูลจากด้านซ้ายของคอลัมน์ค้นหาได้
IF เป็นฟังก์ชันตรรกะพื้นฐานที่ใช้ตัดสินใจสองทางตามเงื่อนไข ตรวจสอบว่าเงื่อนไขเป็น TRUE หรือ FALSE แล้วคืนค่าที่แตกต่างกันไปตามผลลัพธ์ สามารถใช้ได้กับการเปรียบเทียบตัวเลข ข้อความ หรือวันที่ และเป็นพื้นฐานสำคัญของการสร้างสูตรแบบมีเงื่อนไข
IFS ทดสอบหลายเงื่อนไขตามลำดับที่กำหนด และคืนค่าของเงื่อนไขแรกที่เป็น TRUE แล้วหยุดทำงานทันที โครงสร้างเป็นคู่ (เงื่อนไข, ผลลัพธ์) ซ้ำได้สูงสุด 127 คู่ ทำให้อ่านและเขียนง่ายกว่า Nested IF แบบซ้อนชั้น ควรใส่ TRUE เป็นเงื่อนไขสุดท้ายเพื่อกำหนดค่า default ป้องกัน #N/A error มีตั้งแต่ Excel 2019 และ Microsoft 365 เท่านั้น
SWITCH ประเมินนิพจน์หรือค่าหนึ่งค่า แล้วเปรียบเทียบกับรายการค่าที่กำหนดตามลำดับ เมื่อพบค่าที่ตรงกันจะส่งคืนผลลัพธ์ที่เชื่อมโยงทันที หากไม่ตรงกับค่าใดเลยสามารถกำหนด default value ได้ เหมาะสำหรับแทนที่ nested IF หลายชั้นด้วยไวยากรณ์ที่อ่านง่ายกว่ามาก
RANDBETWEEN คืนค่าจำนวนเต็มสุ่มที่อยู่ระหว่างค่าต่ำสุดและสูงสุดที่ระบุ ใช้สำหรับจำลองข้อมูล สร้างรหัสสุ่ม หรือเลือกข้อมูลแบบสุ่ม
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่