SWITCH
อัปเดต 24 ก.ย. 2569 · ตรวจ syntax และเวอร์ชันกับเอกสารของ Microsoft · ผลในตัวอย่างตรวจด้วยเครื่องมือคำนวณ 2 ชุด
SWITCH คืออะไร
เทียบค่าหนึ่งกับรายการค่าที่กำหนด แล้วคืนผลของค่าแรกที่ตรงกัน ถ้าไม่ตรงค่าใดเลยคืนค่า default ได้
ใช้เมื่อไหร่
- แปลงรหัสจากระบบ เช่น MT, TT เป็นชื่อเต็มในรายงาน
- แปลงรหัสเงื่อนไขชำระเป็นจำนวนวันเครดิต แล้วคิดวันครบกำหนด
- จัดกลุ่มค่าที่ตรงตัว เช่น รหัสภาคหรือวันในสัปดาห์ พร้อมค่า default
รูปแบบสูตร
Argument แต่ละตัว
ชี้ที่ argument ในรูปแบบสูตรด้านบนเพื่อไฮไลต์แถวนั้น
| Argument | จำเป็นไหม | ความหมาย |
|---|---|---|
| expression | จำเป็น | ค่าที่นำไปเทียบ เช่น รหัสในช่อง D5 หรือผลของสูตร เช่น WEEKDAY(B5) |
| value1 | จำเป็น | ค่าแรกที่นำมาเทียบกับ expression |
| result1 | จำเป็น | ค่าที่คืนเมื่อ expression ตรงกับ value1 |
| [default or value2, result2], … | ไม่บังคับ | คู่ value กับ result ถัดไป ได้ถึง 126 คู่ ค่าเดี่ยวที่ไม่มีคู่ต่อท้ายคือ default |
ลองเลย: ตัวอย่างที่เปลี่ยนค่าได้
ข้อมูลชุดเดียวกับไฟล์ฝึก เปลี่ยนค่าในช่องกรอก หรือคลิกตัวเลขในตารางเพื่อแก้ แล้วดูผลลัพธ์เปลี่ยนทันที กดถัดไปเพื่อดูว่า Excel คิดทีละขั้นอย่างไร สีของช่วงในตารางตรงกับสีในสูตร
SWITCH เทียบรหัสในคอลัมน์ D กับ MT, TT, OL, FS แล้วคืนชื่อที่อยู่คู่กัน
| แถว | A | B | C | D | E | F | G | H |
|---|---|---|---|---|---|---|---|---|
| 4 | เลขที่คำสั่งซื้อ | วันที่ | รหัสภาค | รหัสช่องทาง | เงื่อนไขชำระ | ยอดสุทธิ (บาท) | ช่องทาง | |
| 5 | SF-2025-0734 | 1/12/2025 | E | TT | CR30 | 355,320 | Traditional Trade | |
| 6 | SF-2025-0738 | 2/12/2025 | S | MT | CR60 | 1,235,098 | Modern Trade | |
| 7 | SF-2025-0739 | 3/12/2025 | BKK | TT | CASH | 22,878 | Traditional Trade | |
| 8 | SF-2025-0741 | 4/12/2025 | C | TT | CR30 | 298,740 | Traditional Trade | |
| 9 | SF-2025-0746 | 8/12/2025 | C | OL | CASH | 51,062 | Online | |
| 10 | SF-2025-0753 | 9/12/2025 | C | FS | CR45 | 910,714 | Food Service | |
| 11 | SF-2025-0756 | 9/12/2025 | E | MT | CR60 | 1,057,572 | Modern Trade | |
| 12 | SF-2025-0757 | 11/12/2025 | NE | OL | CASH | 100,296 | Online | |
| 13 | SF-2025-0771 | 12/12/2025 | C | OL | CASH | 126,000 | Online | |
| 14 | SF-2025-0784 | 19/12/2025 | N | MT | CR60 | 289,275 | Modern Trade | |
| 15 | ||||||||
| 16 | ||||||||
| 17 | ||||||||
| 18 | ||||||||
| 19 |
ขั้นตอนการคำนวณ (4)
- อ่านสูตร: เทียบ D5 กับ "MT", "TT", "OL", "FS" ทีละค่าจากซ้ายไปขวา ตรงค่าไหนก็คืนชื่อที่อยู่ถัดจากค่านั้น
- SWITCH ไม่แยกตัวพิมพ์เล็กใหญ่ ลองพิมพ์ fs ใน I4 ก็ได้ Food Service เหมือนกัน
- ลองพิมพ์รหัสที่ไม่มีในรายการ เช่น WS จะได้ #N/A เพราะสูตรนี้ไม่มีค่า default (ดูตัวอย่าง 2)
ตัวอย่างทั้งหมด 4 แบบ
- 1แปลงรหัสช่องทางเป็นชื่อเต็ม · SWITCH เทียบรหัสในคอลัมน์ D กับ MT, TT, OL, FS แล้วคืนชื่อที่อยู่คู่กัน
- 2ใส่ค่า default เมื่อรหัสไม่อยู่ในรายการ · ค่าสุดท้ายที่ไม่มีคู่คือ default แถว 7 มีรหัสภาค BKK ซึ่งไม่อยู่ในรายการ จึงได้ ไม่พบรหัส
- 3แปลงเงื่อนไขชำระเป็นวันครบกำหนด · SWITCH คืนจำนวนวันเครดิต 0, 30, 45 หรือ 60 แล้วบวกกับวันที่สั่งซื้อ
- 4เกณฑ์เป็นช่วงต้องใช้ IFS ไม่ใช่ SWITCH · SWITCH เทียบแบบตรงตัวเท่านั้น คะแนน 4.6 ไม่เท่ากับ 4.5 หรือ 4 จึงตกไปที่ค่า default
ข้อผิดพลาดที่พบบ่อย
เคล็ดลับจากห้องเรียน
ใช้กับ Excel ของคุณได้ไหม
| เวอร์ชัน | Excel 2016 | Excel 2019 | Excel 2021 | Excel 2024 | Microsoft 365 |
|---|---|---|---|---|---|
| SWITCH |
ใช้ Excel 2016 ให้ใช้สูตรเหล่านี้แทน ได้ผลเท่ากับตัวอย่างบนหน้านี้ และมีในชีต “Excel 2016” ของไฟล์ฝึก
| แทนตัวอย่าง | สูตรทางเลือก |
|---|---|
| ตัวอย่าง 1 ช่องทาง | =VLOOKUP(D5,$A$18:$B$21,2,FALSE) |
| ตัวอย่าง 2 ภูมิภาคพร้อมค่า default | =IFNA(VLOOKUP(C5,$D$18:$E$22,2,FALSE),"ไม่พบรหัส") |
| ตัวอย่าง 3 วันครบกำหนด (IF ซ้อน) | =B5+IF(E5="CR30",30,IF(E5="CR45",45,IF(E5="CR60",60,0))) |
| ตัวอย่าง 3 วันครบกำหนด (CHOOSE + MATCH) | =B5+CHOOSE(MATCH(E5,{"CASH","CR30","CR45","CR60"},0),0,30,45,60) |
Office 2016 และ 2019 หมดระยะสนับสนุนตั้งแต่ 14 ต.ค. 2568 ไฟล์ยังเปิดได้ แต่ไม่มีอัปเดตความปลอดภัย
เลือกฟังก์ชันให้ถูกงาน
| ฟังก์ชัน | ใช้เมื่อ | ตัวอย่าง |
|---|---|---|
| SWITCH | เทียบค่าตรงตัวหลายค่า มี default (2019 ขึ้นไป) | =SWITCH(D5,"MT","Modern Trade","TT","Traditional Trade","อื่น ๆ") |
| IFS | เกณฑ์เป็นช่วง เช่น ตั้งแต่ 4.5 (2019 ขึ้นไป) | =IFS(E5>=4.5,"ดีเยี่ยม",E5>=4,"ดี",TRUE,"ต้องปรับปรุง") |
| CHOOSE | ค่าเป็นลำดับ 1, 2, 3, … ทุกเวอร์ชัน | =CHOOSE(2,"ม.ค.","ก.พ.","มี.ค.") |
| XLOOKUP / VLOOKUP | รหัสจำนวนมากหรือเปลี่ยนบ่อย เก็บเป็นตาราง (XLOOKUP 2021 ขึ้นไป · VLOOKUP ทุกเวอร์ชัน) | =XLOOKUP(D5,รหัส,ชื่อ,"ไม่พบรหัส") |
ใน Power BI ใช้อะไร
ไฟล์ฝึก SWITCH
9Expert-SWITCH-Practice-v1.2.xlsx
โจทย์ในชีตแบบฝึกหัด
- ข้อ 1ชื่อภาคของรหัสในช่อง I7 (C = กลาง, N = เหนือ, NE = ตะวันออกเฉียงเหนือ, E = ตะวันออก, S = ใต้)
- ข้อ 2ชื่อภาคของรหัสในช่อง I8 ตามข้อ 1 ถ้าไม่ตรงรหัสใดให้แสดง ไม่พบรหัส
- ข้อ 3จำนวนวันเครดิตของเงื่อนไขชำระในช่อง K9 (CASH = 0, CR30 = 30, CR45 = 45, CR60 = 60)
- ข้อ 4ประเภทการชำระของเงื่อนไขในช่อง K10: CASH ให้แสดง เงินสด นอกนั้นแสดง เครดิต
- ข้อ 5วิธีจัดส่งของภาคในช่อง I12: C และ E ใช้ รถบริษัท นอกนั้นใช้ ขนส่งเอกชน
วิดีโอประกอบ
ในเว็บจริงจะฝังคลิปพร้อมตั้งเวลาเริ่มตรงหัวข้อนี้ ในต้นแบบเปิดผลค้นหาในช่องแทน
เปิดใน YouTubeแบบทดสอบ 3 ข้อ
1. =SWITCH("NE","C","กลาง","N","เหนือ") ได้อะไร
ไม่ตรงค่าใดเลยและไม่มี default SWITCH จึงคืน #N/A
2. ข้อใดคือค่า default ใน =SWITCH(D5,"MT","Modern Trade","TT","Traditional Trade","อื่น ๆ")
ค่าสุดท้ายที่ไม่มีคู่คือ default ใช้เมื่อ D5 ไม่ตรงค่าใดเลย
3. ต้องการจัดระดับคะแนน 4.2 ด้วยเกณฑ์ ตั้งแต่ 4.5 และตั้งแต่ 4 ควรใช้ฟังก์ชันใด
SWITCH เทียบแบบเท่ากันพอดีเท่านั้น เกณฑ์ที่เป็นช่วงต้องใช้ IFS
ไปต่อ
ต่อยอดใน Microsoft Excel Advanced: สูตรสรุปผลแบบมีเงื่อนไข สูตรสืบค้นข้อมูล สูตรใหม่ใน Microsoft 365 และการจัดการ Error (2 วัน)