หน้าเว็บ

วันจันทร์ที่ 14 มิถุนายน พ.ศ. 2553

ทำไม Excel ไม่คำนวณผลลัพธ์

เป็นปัญหาที่พบกันบ่อย ๆ ครับว่าเมื่อ Copy สูตรมาแล้วโปรแกรมไม่แสดงผลที่ถูกต้อง คือแสดงผลลัพธ์ที่เหมือนกันกับเซลล์ที่เรา Copy มา ซึ่งที่จริงแล้วควรแสดงผลต่างกัน
ที่เป็นเช่นนี้นั้นมี 3 สาเหตุหลักครับ

สาเหตุแรก เนื่องจากเราไปกำหนดให้เป็นการคำนวณแบบ Manual อาจจะโดยตั้งใจหรือไม่ตั้งใจก็ตาม จะทำให้โปรแกรมไม่คำนวณผลลัพธ์ให้ทันที จนกว่าเราจะ Save หรือกดแป้น F9 เพื่อให้แสดงผลการคำนวณ

เราสามารถกำหนดให้ Excel คำนวณผลลัพธ์อัตโนมัติดังนี้ครับ

  1. เข้าเมนู Tools
  2. คลิก Options
  3. ที่แถบ Calculation เลือก Automatic
  4. OK

สาเหตุที่ 2 แม้จะปรับให้เป็น Automatic แล้วยังพบว่าโปรแกรมไม่คำนวณผลลัพธ์ให้ ที่เป็นเช่นนี้น่าจะเกิดจากโปรแกรมเกิดการติดขัดบางประการครับ การแก้ไขจะต้องทำการ Activate สูตรทั้งหลายเสียใหม่ เพื่อกระตุ้นให้เกิดการคำนวณ จากนั้นจะสามารถใช้ได้ปกติ สำหรับปัญหานี้ไม่ได้เกิดขึ้นบ่อย แต่ก็ทำให้ใครหลายคนเสียเวลามามากมายแล้วครับ


การ Activate สูตรใหม่ สามารถทำดังนี้ครับ

  1. เข้าเมนู Edit
  2. เลือก Replace
  3. ช่อง Find what: คีย์เครื่องหมาย =
  4. ช่อง Replace with: คีย์เครื่องหมาย =
  5. คลิกปุ่ม Replace All

สาเหตุที่ 3 เนื่องจากการอ้างอิงเป็นวงกลมโดยไม่ตั้งใจ ซึ่งก็คือ การนำเซลล์ผลลัพธ์ไปใช้คำนวณด้วย ยกตัวอย่างเช่นเรากำลังคีย์สูตรในเซลล์ A2 เป็น =A2+A1 จะเห็นว่าเรานำ A2 ไปใช้คำนวณด้วยทั้ง ๆ ที่ปัจจุบันเรากำลังคีย์สูตรอยู่ในเซลล์ A2 โดยปกติเมื่อเราคีย์สูตรเช่นนี้ลงไป โปรแกรมจะฟ้องว่าเรามีการคำนวณอ้างอิงเป็นวงกลม และหากเราคลิกยอมรับ จะทำให้ไฟล์เราคำนวณ "วน" ไปได้ 1000 ครั้ง (ค่าตั้งต้น) จำนวนรอบการคำนวณสามารถไปกำหนดเองได้ว่าให้คำนวณวนได้กี่รอบ เมื่อครบรอบแล้วก็จะไม่สามารถคำนวณต่อได้ แม้เราทำการเปลี่ยนแปลงหรือแก้ไขสูตร โปรแกรมก็จะไม่แสดงการคำนวณให้อีก โดยปกติแล้วที่ Status bar จะมีการแจ้งผู้ใช้ว่า Circula: ตามด้วยเซลล์ที่เป็นต้นเหตุให้เกิดการอ้างอิงแบบวงกลม

แต่หากการคำนวณวนนั้นอยู่ใน Sheet อื่น หรืออยู่ในไฟล์อื่นที่เปิดขึ้นมาพร้อมกันที่ Status bar จะแสดงแค่ Circular เท่านั้นครับ การแก้ไขให้คลิกดูแต่ละ Sheet และแต่ละไฟล์เพื่อหาเซลล์ที่เป็นต้นเหตุของการอ้างอิงแบบวงกลมแล้วแก้ไขให้ถูกต้อง โดยปกติการคำนวณแบบอ้างอิงเป็นวงกลมควรจะเกิดจากการตั้งใจให้คำนวณเพื่องานบางลักษณะเช่นการทำ Solver ครับ

5 ความคิดเห็น:

ไม่ระบุชื่อ กล่าวว่า...

ขอบคุณมากค่ะ...
ทำให้เสียเวลาจริงๆๆ ค่ะ

Unknown กล่าวว่า...

ขอบคุณอาจารย์มากเลยคะ หาวิธีแก้อยู่นานมาเลยคะ

ไม่ระบุชื่อ กล่าวว่า...

ขอบคุณมากจริงๆ เสียเวลาเกี่ยวกับสูตรไม่ทำงานนานหลายวันแล้วค่ะ ขอบคุณอาจารย์มากๆค่ะ

Unknown กล่าวว่า...

กราบขอบพระคุณอย่างสูงเลยค่ะ เสียเวลามานานแล้ว คำนวณตัวเลขเยอะมากค่ะ

ไม่ระบุชื่อ กล่าวว่า...

ขอบคุณค่ะ เจอสาเหตุที่ 2
Malt