บางโจทย์ต้องคิดหลายขั้นกว่าจะได้คำตอบ เช่น “หาค่าเฉลี่ยแล้วปัดเศษ” หรือ “ค้นหาราคา ถ้าไม่เจอให้ขึ้นว่าไม่พบ” แทนที่จะแยกเป็นหลายเซลล์ เราเขียนรวบในเซลล์เดียวได้ด้วยการ ซ้อนฟังก์ชัน (Nested Functions) คือเอาผลลัพธ์ของฟังก์ชันหนึ่งไปเป็นข้อมูลป้อนให้อีกฟังก์ชันหนึ่ง บทความนี้อธิบายหลักการอ่าน เขียน และไล่ตรวจสูตรซ้อนไม่ให้งง
🎬 ดูวิดีโอสอน (0 นาที 57 วินาที) บน Excel จริง หรืออ่านขั้นตอนละเอียดด้านล่างได้เลย
การซ้อนฟังก์ชันคืออะไร
ปกติฟังก์ชันหนึ่งจะรับข้อมูลเข้า (argument) แล้วคืนผลลัพธ์ออกมา การซ้อนฟังก์ชันคือการเอาฟังก์ชันทั้งตัวไปวางไว้ในช่อง argument ของอีกฟังก์ชัน Excel จะคำนวณจากชั้นในสุดออกมาชั้นนอกสุด เหมือนแกะหัวหอมทีละชั้น
เช่น =ROUND(AVERAGE(B2:B5), 0) Excel จะหา AVERAGE(B2:B5) ให้เสร็จก่อน ได้ตัวเลขหนึ่งออกมา แล้วค่อยเอาตัวเลขนั้นส่งให้ ROUND ปัดเศษ
ตัวอย่างที่ 1: เฉลี่ยแล้วปัดเศษในเซลล์เดียว

ภาพจริงจาก Excel (Microsoft 365): ตัวอย่าง NESTEDS จากคลิปสอน ข้อมูลในภาพเป็นตัวอย่างสมมติ อาจต่างจากตัวเลขในข้อความเล็กน้อย แต่หลักการเหมือนกัน
ตัวอย่างสูตร =ROUND(AVERAGE(B2:B5),0) ได้ผลลัพธ์ 75
ชั้นในสุด AVERAGE(B2:B5) ได้ 74.75 จากนั้น ROUND(74.75, 0) ปัดเป็น 75 อ่านเพิ่มเรื่องการปัดเศษได้ที่ ฟังก์ชัน ROUND และ AVERAGE
ตัวอย่างที่ 2: IF ซ้อน IF สำหรับตัดเกรด
เมื่อมีเงื่อนไขหลายระดับ ให้วาง IF ตัวถัดไปไว้ในช่อง “ค่าถ้าเงื่อนไขเป็นเท็จ” ของ IF ตัวก่อนหน้า
ตัวอย่างสูตร =IF(B2>=80,"A",IF(B2>=70,"B",IF(B2>=60,"C","D"))) ได้ผลลัพธ์ A / B / D
Excel เช็คจากซ้ายไปขวา ถ้า B2>=80 จริงก็หยุดที่ “A” ทันที ถ้าไม่จริงจึงไปเช็คเงื่อนไขถัดไป สูตรแบบนี้อ่านยากขึ้นเมื่อมีหลายชั้น จึงมีสูตร IFS ที่เขียนเงื่อนไขเรียงกันได้โดยไม่ต้องซ้อนวงเล็บซ้อนกันเป็นพืด
ตัวอย่างที่ 3: ซ้อนเพื่อกัน Error
การซ้อนที่ใช้บ่อยที่สุดคือเอาสูตรค้นหาไปไว้ข้างใน แล้วครอบด้วยตัวจับ Error ข้างนอก
ตัวอย่างสูตร =IFERROR(VLOOKUP(A2,$E$2:$F$9,2,FALSE),"ไม่พบสินค้า") ได้ผลลัพธ์ ไม่พบสินค้า / 450
ชั้นใน VLOOKUP พยายามหา P05 ในตารางราคา ถ้าไม่เจอจะเป็น #N/A ชั้นนอก IFERROR ดักไว้แล้วเปลี่ยนเป็นข้อความแทน
ตัวอย่างที่ 4: ทำความสะอาดข้อความ 2 ขั้น
ตัวอย่างสูตร =TRIM(SUBSTITUTE(A2,"-"," ")) ได้ผลลัพธ์ 089 123 4567
ชั้นใน SUBSTITUTE เปลี่ยนขีด - เป็นเว้นวรรค ชั้นนอก TRIM ตัดช่องว่างส่วนเกินทิ้ง
เทคนิคเขียนและอ่านสูตรซ้อนไม่ให้งง
- เขียนจากข้างในออกข้างนอก — ทำฟังก์ชันชั้นในให้ได้ผลถูกต้องก่อน แล้วค่อยเอาไปครอบด้วยฟังก์ชันชั้นนอกทีหลัง
- กด F9 ประเมินบางส่วน — ขณะแก้สูตร ลากคลุมเฉพาะส่วนที่เป็นฟังก์ชันชั้นใน แล้วกด F9 Excel จะแสดงผลลัพธ์ของช่วงนั้นให้ดู (กด Esc เพื่อกลับมาเป็นสูตรเดิม อย่ากด Enter)
- ใช้ Evaluate Formula — ที่แท็บ Formulas ปุ่ม Evaluate Formula จะไล่คำนวณให้ดูทีละชั้น
- ขึ้นบรรทัดใหม่ในแถบสูตร — กด Alt+Enter ระหว่างพิมพ์สูตร เพื่อจัดสูตรยาวๆ ให้อ่านง่ายเป็นชั้นๆ ไม่กระทบผลลัพธ์
- นับวงเล็บเปิด-ปิดให้เท่ากัน — Excel ช่วยไฮไลต์คู่วงเล็บให้เวลาเลื่อนเคอร์เซอร์ผ่าน
ซ้อนได้ลึกแค่ไหน และเมื่อไรควรเลิกซ้อน
ทางเทคนิค Excel ซ้อนฟังก์ชันได้สูงสุด 64 ชั้น แต่ในทางปฏิบัติถ้าเกิน 3–4 ชั้นก็เริ่มอ่านยากและแก้ยาก ทางเลือกที่ดีกว่าคือ
- แตกเป็นคอลัมน์ช่วย (helper column) — คำนวณทีละขั้นในคอลัมน์แยก แล้วอ้างอิงต่อกัน ดีบักง่ายกว่ามาก
- ใช้ LET — ตั้งชื่อผลลัพธ์กลางทางไว้ในสูตรเดียว ทำให้อ่านเป็นขั้นตอนได้โดยไม่ต้องมีคอลัมน์เพิ่ม
- ใช้ IFS หรือ SWITCH — แทน IF ซ้อน IF หลายชั้น
ก่อนเขียนสูตรซ้อน แนะนำให้เข้าใจเรื่อง ลำดับการคำนวณในสูตร ก่อน จะช่วยให้วางวงเล็บถูกตำแหน่ง