แก้ Excel ขึ้น #SPILL! สูตรไม่กระจายผลลัพธ์ ต้องเช็คอะไรบ้าง

เวลาใช้สูตรรุ่นใหม่ใน Excel เช่น FILTER, SORT, UNIQUE หรือ SEQUENCE แล้วขึ้น #SPILL! หลายคนจะคิดว่าสูตรผิด ทั้งที่จริง ๆ Excel อาจคำนวณได้แล้ว แต่ไม่สามารถ “กระจายผลลัพธ์” ลงไปในช่องรอบ ๆ ได้ เพราะมีอะไรบางอย่างขวางอยู่

บทความนี้จะพาไล่เช็คสาเหตุที่พบบ่อย พร้อมวิธีแก้แบบไม่ต้องลบสูตรทิ้งทันที เหมาะกับคนที่เริ่มใช้สูตร Dynamic Array แล้วเจอผลลัพธ์ไม่ออกตามที่คาด

#SPILL! คืออะไร

#SPILL! เกิดเมื่อสูตรต้องแสดงผลมากกว่า 1 เซลล์ แต่พื้นที่ปลายทางไม่ว่างพอ ตัวอย่างเช่น =UNIQUE(A2:A100) อาจต้องแสดงรายชื่อลูกค้าไม่ซ้ำลงมาหลายแถว ถ้าช่องด้านล่างมีข้อมูลอยู่ Excel จะไม่เขียนทับให้เองและจะแสดง #SPILL! แทน

วิธีที่ 1 เช็คว่ามีข้อมูลขวางอยู่หรือไม่

  1. คลิกเซลล์ที่ขึ้น #SPILL!
  2. ดูกรอบเส้นประที่ Excel แสดงเป็นพื้นที่ผลลัพธ์
  3. มองหาข้อมูล ช่องว่างที่มีสูตรซ่อนอยู่ หรือข้อความเล็ก ๆ ในกรอบนั้น
  4. ย้ายหรือลบสิ่งที่ขวางออก แล้วรอให้สูตรคำนวณใหม่

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

วิธีที่ 2 ระวัง Merge Cells

ถ้าพื้นที่ที่สูตรต้องกระจายผลลัพธ์มีเซลล์ที่ Merge อยู่ Excel มักกระจายผลลัพธ์ไม่ได้ ให้เลือกพื้นที่นั้นแล้วไปที่ Home > Merge & Center > Unmerge Cells จากนั้นจัดรูปแบบใหม่ด้วย Center Across Selection หรือใช้ตารางที่ไม่ merge จะปลอดภัยกว่า

วิธีที่ 3 อย่าใส่สูตร Dynamic Array ใน Excel Table บางกรณี

สูตรที่ต้อง spill หลายเซลล์อาจมีข้อจำกัดเมื่ออยู่ใน Excel Table ถ้าขึ้น #SPILL! ให้ลองย้ายสูตรออกมานอก Table ก่อน แล้วอ้างอิงข้อมูลใน Table ด้วย structured reference เช่น =UNIQUE(Table1[สินค้า])

วิธีที่ 4 เผื่อพื้นที่ให้ผลลัพธ์ขยายในอนาคต

สูตรอย่าง FILTER หรือ UNIQUE อาจคืนผลลัพธ์จำนวนไม่เท่ากันในแต่ละวัน ถ้าวางสูตรติดกับตารางอื่นมากเกินไป วันหนึ่งข้อมูลเพิ่มขึ้นแล้วอาจชนพื้นที่ข้างล่างจนขึ้น #SPILL! ได้ ควรเว้นพื้นที่ว่างหรือวางผลลัพธ์ไว้ในชีตแยกสำหรับรายงาน

ตัวอย่างงานจริง

ถ้าต้องการดึงรายชื่อลูกค้าไม่ซ้ำจากคอลัมน์ A ให้ใช้:

=UNIQUE(A2:A500)

ถ้าขึ้น #SPILL! ให้เช็คว่าช่องใต้สูตรมีข้อมูลเก่าหรือไม่ เมื่อล้างพื้นที่แล้ว Excel จะกระจายรายชื่อลงมาให้อัตโนมัติ

ข้อควรระวัง

อย่ารีบแก้สูตรก่อนดูพื้นที่ spill เพราะหลายครั้งสูตรถูกต้องแล้ว แต่มีข้อมูลเดิมขวางอยู่ ถ้าเป็นไฟล์ที่ใช้ร่วมกัน ควรบอกทีมว่าโซนนี้เป็นพื้นที่ผลลัพธ์อัตโนมัติ ไม่ควรพิมพ์ข้อมูลทับ

สรุป

ถ้า Excel ขึ้น #SPILL! ให้เริ่มจากคลิกเซลล์ error แล้วดูกรอบพื้นที่ผลลัพธ์ จากนั้นเคลียร์ข้อมูลที่ขวาง เช็ค Merge Cells และย้ายสูตรออกจากพื้นที่ที่จำกัด สูตร Dynamic Array จะใช้งานได้ดีเมื่อมีพื้นที่ว่างพอให้ผลลัพธ์กระจายตัว