#SPILL ข้อผิดพลาดจะถูกส่งกลับเมื่อสูตรส่งกลับหลายผลลัพธ์ และ Excel ไม่สามารถส่งกลับผลลัพธ์ไปยังตารางได้ สําหรับรายละเอียดเพิ่มเติมเกี่ยวกับชนิดข้อผิดพลาดเหล่านี้ ให้ดูหัวข้อวิธีใช้ต่อไปนี้:
ข้อผิดพลาดนี้เกิดขึ้นเมื่อช่วงการหกสําหรับสูตรอาร์เรย์ที่หกไม่ว่างเปล่า
เลือกสูตรเพื่อแสดงเส้นขอบที่เป็นเส้นประที่ระบุช่วงสปิลล์ที่ต้องการ เมื่อเลือกสูตร การแจ้งเตือนการตรวจสอบข้อผิดพลาดจะปรากฏขึ้น
เลือกการแจ้งเตือนการตรวจสอบข้อผิดพลาด แล้วเลือกตัวเลือก เลือกเซลล์ที่กีดขวาง เพื่อไปยังเซลล์ที่กีดขวางทันที จากนั้นคุณสามารถล้างข้อผิดพลาดได้โดยการลบ หรือย้ายรายการเซลล์ที่บดบัง ทันทีที่ล้างสิ่งกีดขวางสูตรอาร์เรย์จะหกตามที่ต้องการ
Excel ไม่สามารถระบุขนาดของอาร์เรย์ที่หกได้ เนื่องจากอาร์เรย์นั้นเปลี่ยนแปลงได้ และปรับขนาดระหว่างการส่งผ่านการคํานวณ ตัวอย่างเช่น สูตรต่อไปนี้จะทริกเกอร์ #SPILL นี้! ความผิดพลาด:
=SEQUENCE(RANDBETWEEN(1,1000))
การปรับขนาดอาร์เรย์แบบไดนามิกอาจทริกเกอร์การส่งผ่านการคํานวณเพิ่มเติมเพื่อให้แน่ใจว่าสเปรดชีตได้รับการคํานวณอย่างเต็มรูปแบบ ถ้าขนาดของอาร์เรย์ยังคงเปลี่ยนแปลงต่อไประหว่างการส่งผ่านเพิ่มเติมเหล่านี้และไม่มีความเสถียร Excel จะแก้ไขอาร์เรย์แบบไดนามิกเป็น #SPILL!
ค่าความผิดพลาดนี้โดยทั่วไปจะเชื่อมโยงกับการใช้ฟังก์ชัน RAND, RANDARRAY และ RANDBETWEEN ฟังก์ชันที่มีความผันผวนอื่นๆ เช่น OFFSET, INDIRECT และ TODAY จะไม่ส่งกลับค่าที่แตกต่างกันในทุกๆ การส่งผ่านการคํานวณ
ตัวอย่างเช่น เมื่อวางในเซลล์ E2 ดังตัวอย่างด้านล่าง สูตร =VLOOKUP(A:A,A:C,2,FALSE) จะค้นหาเฉพาะ ID ในเซลล์ A2 เท่านั้น อย่างไรก็ตาม ในอาร์เรย์แบบไดนามิก Excel สูตรจะทําให้เกิด #SPILL! เนื่องจาก Excel จะค้นหาทั้งคอลัมน์ ให้ส่งกลับผลลัพธ์ 1,048,576 รายการ แล้วกดจุดสิ้นสุดของเส้นตาราง Excel
มีสามวิธีง่ายๆ ในการแก้ไขปัญหานี้:
# |
การเข้าใกล้ |
สูตร |
---|---|---|
1 |
อ้างอิงเฉพาะค่าการค้นหาที่คุณสนใจ สูตรลักษณะนี้จะส่งกลับอาร์เรย์แบบไดนามิก แต่จะไม่ทํางานกับตาราง Excel
|
=VLOOKUP(A2:A7,A:C,2,FALSE) |
2 |
อ้างอิงเฉพาะค่าบนแถวเดียวกัน แล้วคัดลอกสูตรลงมา สไตล์สูตรแบบดั้งเดิมนี้ใช้ได้ในตาราง แต่จะไม่ส่งกลับอาร์เรย์แบบไดนามิก
|
=VLOOKUP(A2,A:C,2,FALSE) |
3 |
ขอให้ Excel ดําเนินการอินเทอร์เซกชันโดยนัยโดยใช้ตัวดําเนินการ @ แล้วคัดลอกสูตรลงมา รูปแบบของสูตรนี้ใช้ได้ในตาราง แต่จะไม่ส่งกลับอาร์เรย์แบบไดนามิก
|
=VLOOKUP(@A:A,A:C,2,FALSE) |
สูตรอาร์เรย์ที่สปิลล์ไม่ได้รับการสนับสนุนในตาราง Excel ลองย้ายสูตรของคุณออกจากตาราง หรือแปลงตารางเป็นช่วง (เลือก ออกแบบตาราง > เครื่องมือ > แปลงเป็นช่วง)
สูตรอาร์เรย์ที่สปิลล์ที่คุณพยายามใส่ทําให้ Excel มีหน่วยความจําไม่เพียงพอ โปรดลองอ้างอิงอาร์เรย์หรือช่วงที่มีขนาดเล็กกว่า
สูตรอาร์เรย์ที่สปิลล์ไม่สามารถหกลงในเซลล์ที่ผสาน โปรด ยกเลิกการผสานเซลล์ที่ มีปัญหา หรือย้ายสูตรไปยังช่วงอื่นที่ไม่ตัดกับเซลล์ที่ผสาน
เลือกสูตรเพื่อแสดงเส้นขอบที่เป็นเส้นประที่ระบุช่วงสปิลล์ที่ต้องการ เมื่อเลือกสูตร การแจ้งเตือนการตรวจสอบข้อผิดพลาดจะปรากฏขึ้น
คุณสามารถเลือกการแจ้งเตือนการตรวจสอบข้อผิดพลาด แล้วเลือกตัวเลือก เลือกเซลล์ที่เป็นสิ่งกีดขวาง เพื่อไปยังเซลล์ที่กีดขวางได้ทันที ทันทีที่ล้างเซลล์ที่ผสานสูตรอาร์เรย์จะหกตามที่ต้องการ
Excel ไม่รู้จัก หรือไม่สามารถทําให้สาเหตุของข้อผิดพลาดนี้สอดคล้องกันได้ โปรดตรวจสอบให้แน่ใจว่าสูตรของคุณมีอาร์กิวเมนต์ที่จําเป็นทั้งหมดสําหรับสถานการณ์สมมติของคุณ
ต้องการความช่วยเหลือเพิ่มเติมไหม
ดูเพิ่มเติม
คุณสามารถสอบถามผู้เชี่ยวชาญใน Excel Tech Community หรือรับการสนับสนุนใน ชุมชน