Font s :
Background :

การคำนวณแบบวงกลม

เมื่อผู้ใช้ Excel สร้างสูตร link กันไป link กันมาเป็นแล้ว ถ้าเผลอสร้างสูตร link ย้อนกลับมาใช้เซลล์ผลลัพธ์ร่วมลงไปในเซลล์สูตรต้นทาง เช่น ในเซลล์ A3 สร้างสูตร =A1+A2+A3 จะทำให้ Excel เปิดคำเตือนขึ้นมาทันทีว่า Excel ไม่สามารถคำนวณ เนื่องจากเกิดการอ้างอิงแบบวงกลมในสูตรที่สร้างขึ้น เป็นการคำนวณแบบวงกลม

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

ในงานทั่วไป ควรกำหนดให้้ Excel เตือนเมื่อเกิดการคำนวณแบบวงกลมเสมอ โดยสั่ง

Tools > Options > Calculation >
ตัดกาช่อง Iterations ทิ้ง

โดยทั่วไปเมื่อปิดโปรแกรม Excel แล้วเปิดใช้ Excel ขึ้นใหม่ Excel จะใช้ระบบการคำนวณแบบปกติ โดยตัดกาช่อง Iterations ให้เองเสมอ แต่ถ้ากาช่อง Iterations แล้วปิดไฟล์ทุกไฟล์จนหมด (โดยไม่ได้ปิดโปรแกรม Excel) พอเปิดไฟล์ใหม่ขึ้นมา จะพบว่าช่อง Iterations จะกาค้างไว้ จึงต้องระวังในประเด็นนี้เป็นอย่างยิ่ง

หากต้องการสร้างสูตรคำนวณแบบวงกลมโดยเจตนา ขอให้สร้างสูตรอื่นๆซึ่งคำนวณตามปกติให้เสร็จก่อน จากนั้นจึงสร้างสูตรที่คำนวณแบบวงกลมเป็นสูตรสุดท้าย พอ Excel เปิดคำเตือนขึ้นมาให้เห็นด้านล่างของจอว่า Circular : ตำแหน่งเซลล์ จึงค่อยกลับไปกาช่อง Iterations

สาเหตุที่ให้เก็บสูตรคำนวณแบบวงกลมไว้สร้างหลังสุด เพราะสูตรอื่นที่สร้างก่อนหน้า การกาช่อง Iterations จะทำให้ Excel ยังคงเตือนให้ทราบถ้าเกิดสูตรคำนวณแบบวงกลมขึ้นเสมอ

ขอให้ตั้งชื่อไฟล์ที่ใช้การคำนวณแบบวงกลมให้ต่างไปจากไฟล์อื่น และอย่าเปิดใช้งานร่วมกับไฟล์อื่น เพราะจะทำให้ช่อง Iterations ที่กาไว้นั้น ถูกส่งต่อไปใช้ยังไฟล์อื่นที่เปิดคำนวณพร้อมกันต่อไปอีก

หากพลั้งเผลอสร้างสูตรคำนวณแบบวงกลมโดยไม่เจตนา ให้แก้ไขโดยตรวจสอบว่า ตัดกาช่อง Iterations ทิ้งอยู่แล้ว จากนั้นให้ดูที่ด้านล่างซ้ายของจอซึ่งจะแสดง Circular : ตำแหน่งเซลล์ ให้ลบเซลล์ตามตำแหน่งที่ Excel เตือนทิ้งไป ลบเซลล์ที่เตือนทิ้งไปเรื่อยๆ จนกว่่าจะหมดคำเตือน แล้วจึงไล่สร้างสูตรขึ้นใหม่ทีละเซลล์ที่ถูกลบ

วิธีใช้การคำนวณแบบวงกลม

เมื่อต้องการสั่งให้ Excel คำนวณแบบวงกลม ให้เริ่มจากกาช่อง Iterations เพื่อสั่งให้ Excel คำนวณครั้งละหลายๆรอบ โดยช่อง Maximum iterations ใช้ควบคุมจำนวนรอบสูงสุดที่ใช้ในการคำนวณ หรือจนกว่าตัวเลขผลลัพธ์ที่ได้จากการคำนวณแต่ละรอบ ต่างกันไม่เกินตัวเลขที่ที่กำหนดไว้ในช่อง Maximum change

ตัวเลขที่ Excel กำหนดไว้เดิม คือ Maximum iterations = 100 และ Maximum Change = 0.001 จึงเป็นการสั่งให้ Excel คำนวณสูงสุด 100 รอบ หรือจนกว่าผลลัพธ์จากการคำนวณแต่ละรอบต่างกันไม่เกิน 0.001 แล้ว Excel จึงจะหยุดคำนวณ

โดยทั่วไปตัวเลขที่กำหนดไว้นี้สามารถใช้กับโจทย์ทั่วไปได้อยู่แล้ว เว้นกรณีที่เราใช้สูตรคำนวณสลับซับซ้อนและต้องการความละเอียดสูง จึงค่อยปรับตัวเลขจำนวนรอบและความละเอียดให้สูงขึ้น

ตัวอย่างงานซึ่งใช้การคำนวณแบบวงกลม
  • งานบุุคคล เช่น กรณีบริษัทรับภาระภาษีเงินได้บุคคลธรรมดาแทนพนักงาน เงินภาษีที่จ่ายแทนนี้จะนำไปรวมเป็นเงินได้เพิ่มขึ้น และต้องนำเงินได้ส่วนเพิ่มไปคำนวณภาษีซ้ำอีก
  • งานการเงิน เช่น กรณีบริษัทขอกู้เงิน ซึ่งดอกเบี้ยจ่ายจะทำให้ยอดเงินกู้เพิ่ม ทำให้ดอกเบี้ยเพิ่ม จึงต้องมียอดเงินกู้เพิ่มขึ้นต่อไปอีก
  • งานวางแผนการผลิต เช่น เมื่อใช้เซลล์เดียว คำนวณหายอดสินค้าคงเหลือต้นงวดปลายงวดร่วมกัน
  • งานวางแผนงบประมาณ เช่น วางแผนงบค่าโฆษณาให้ผูกพันตามกำไร หากกำไรเพิ่ม ทำให้สามารถโฆษณาเพิ่ม แต่ค่าใช้จ่ายที่เพิ่มขึ้นย่อมทำให้กำไรลด ส่งผลให้ได้งบค่าโฆษณาลดตาม แต่กลับทำให้กำไรเพิ่มอีก
  • งานวางแผนโครงการ เช่น บริษัทต้องจ่ายคืนกำไรให้กับรัฐ แต่รัฐมีข้อกำหนดห้ามนำค่าใช้จ่ายส่วนนี้ไปหักลดภาษี ซึ่งส่งผลต่อกำไร
  • งานทดสอบตัวเลข เช่น เมื่อต้องการปรับตัวเลขให้เพิ่มขึ้นครั้งละ 5 สมมติในเซลล์ A1 ให้สร้างสูตร =1+A1 โดยสั่ง Tools > Options > Calculation > กาช่อง Iterations และปรับ Maximum iterations = 5 จะทำให้ตัวเลขปรับเพิ่มทีละ 5 เมื่อกดปุ่ม F9 สั่งคำนวณ แต่ถ้าเปลี่ยนสูตรเป็น =5+A1 จะทำให้ตัวเลขเพิ่มทีละ 25
  • งานเก็บคะแนนสูงสุด โดยใช้สูตรสมมติในเซลล์ A1
    =Max(เซลล์เก็บคะแนน, A1)
  • งานบันทึกข้อมูล เช่น ต้องการเก็บเวลาที่เซลล์ A1 ถูกบันทึกข้อมูลเป็นครั้งแรก โดยสมมติให้ใช้เซลล์ B1 แสดงเวลาที่บันทึก ในเซลล์ B1 ให้สร้างสูตร
    =If( Not(IsBlank(A1)), MIN(B1,NOW()), "")

 

Categories

About this Entry

This page contains a single entry by สมเกียรติ ฟุ้งเกียรติ published on May 5, 2005 1:15 PM.

Link ข้อมูลมาใช้แบบจิ๋วและแจ๋ว was the previous entry in this blog.

Upgrade to MovableType 3.16 is the next entry in this blog.

Find recent content on the main index.

Font s :
Background :