ตอนที่เห็นชื่อคำว่า Solver เป็นครั้งแรก ไม่เข้าใจว่ามันคืออะไร แต่พอลองใช้ Solver ไปสักพักจึงเข้าใจว่าที่แท้ Solver ก็คือเครื่องมือที่ช่วยในการคำนวณประเภท Linear Programming นั่นเอง แต่พอเอ่ยถึงคำว่า Linear Programming ก็อาจทำให้หลายคนที่ไม่เคยเรียนเรื่องนี้ในสมัยมหาวิทยาลัยงงมากขึ้นก็ได้ จึงขออธิบายแบบภาษาชาวบ้านกันดีกว่า
ขอให้นึกถึง Solver ต่อเมื่อปัญหาหนึ่งสามารถมีคำตอบได้หลายคำตอบ เช่น ถ้าคุณมีเงินอยู่หนึ่งแสนบาท จะขอแลกธนบัตรใบละ 1,000 บาท 500 บาท 100 บาท 50 บาท หรือ 20 บาทได้อย่างละกี่ฉบับ หรือถ้าต้องการส่วนผสมที่เป็นน้ำรวม 100 ซีซี จะนำของเหลว 3 อย่างมาผสมกันในอัตราส่วนอย่างละเท่าใดเพื่อให้รวมกันแล้วเป็นน้ำ 100 ซีซี ซึ่งจะเห็นว่า ในสองปัญหานี้ เราสามารถแลกธนบัตรได้หลายแบบ และมีอัตราส่วนของเหลวได้หลายแบบ
การคิดแก้ปัญหาการคำนวณใน Excel มีหลักอยู่ว่า ถ้าปัญหาหนึ่งๆมีคำตอบเพียงคำตอบเดียว ขอรับรองว่า Excel มีสูตรที่สามารถนำมาใช้คำนวณหาคำตอบที่ต้องการนั้นได้แน่ๆ ซึ่งถึงจะไม่สามารถใช้สูตรสำเร็จรูปที่ Excel เตรียมไว้ให้ใช้ได้โดยตรง เราก็สามารถนำสูตรมาซ้อนต่อกันหรือใช้หลายสูตรมาคำนวณร่วมกันเพื่อแก้ปัญหานั้น ขออย่าใจร้อนรีบตอบว่าไม่มีสูตรใน Excel ที่ทำได้ ขอให้ใจเย็นๆค่อยๆคิด เพราะบางปัญหากว่าจะคิดสูตรออกมาได้ต้องคิดกันเป็นสิบปีก็เป็นได้
แต่ถ้าปัญหาหนึ่งๆอาจจะมีหลายคำตอบ ก็จำเป็นต้องใช้สูตรคำนวณของ Excel นำมาใช้ร่วมกับคำสั่ง Solver โดยต้องหาทางสร้างสูตรคำนวณที่เกี่ยวข้องไว้ตารางให้เรียบร้อยก่อน จากนั้นจึงใช้ Solver นำผลลัพธ์จากสูตรที่คำนวณได้ไปใช้ต่อ ทั้งนี้ในตัวคำสั่ง Solver เองจะไม่สามารถรับสูตรคำนวณ ดังนั้นจึงเป็นหน้าที่ของเราที่ต้องสร้างสูตรไว้ในเซลล์ต่างๆเพื่อ Solver จะทำหน้าที่ค้นหาตัวเลขคำตอบที่เป็นไปได้ แล้วนำผลลัพธ์ที่คำนวณได้ไปเปรียบเทียบระหว่างเซลล์สูตรคำนวณที่เกี่ยวข้องว่าได้คำตอบตามขอบเขตเงื่อนไขที่กำหนดทั้งหมดแล้วหรือไม่
Solver กับ Goal Seek มีลักษณะการทำงานคล้ายกันและต่างกัน ดังนี้
- เครื่องมือทั้งคู่ทำหน้าที่ทดลองค่าแทนลงไปในเซลล์รับตัวแปร (Changing Cells) ซึ่งห้ามเป็นเซลล์สูตร โดย Solver สามารถใช้ตัวแปรได้มากถึง 200 ตัว (หรือมากกว่านั้นหากใช้ Solver แบบพิเศษของ www.Solver.com) ส่วน Goal Seek ใช้ตัวแปรได้เพียงตัวเดียว
- เซลล์ผลลัพธ์เป้าหมาย (Target Cell) ของ Solver สามารถเลือกให้เป็นค่า Maximize, Minimize, หรือ Optimize ให้ได้ค่าใดค่าหนึ่ง ในขณะที่ Goal Seek หาค่าแบบ Optimize เท่านั้น
- Solver รับเงื่อนไข (Constraints) ได้โดยตรง เพื่อใช้ควบคุมให้คำตอบที่ได้นั้นต้องบรรลุเงื่อนไขที่กำหนดด้วย ส่วน Goal Seek ใช้ Constraint ของ Calculation Options
- การสั่ง Solver ต้องเรียกใช้ผ่าน Add-ins ซึ่ง Microsoft จัดเตรียมไว้ให้ใช้โดยไม่ต้องหาซื้อเพิ่มแต่อย่างใด ส่วน Goal Seek เป็นคำสั่งมาตรฐานที่เรียกใช้ได้ทันที
เนื่องจาก Solver มีขั้นตอนการใช้งานที่ค่อนข้างซับซ้อน ดังนั้นจึงขอยกตัวอย่างที่ไม่ยากนักเพื่อสร้างความคุ้นเคยกับพื้นฐานการใช้งาน หากต้องการศึกษาการใช้งานโดยละเอียดขอให้ดูได้จาก www.Solver.com
ในตัวอย่างนี้กำหนดให้มีตัวเลข 3 ตัวอยู่ในเซลล์ B2:B4 มีค่าเท่ากับ 15, 25, 35 ตามลำดับ ให้ตอบคำถามว่ามีเซลล์ใดบ้างที่สามารถนำมารวมกันแล้วได้คำตอบเป็นเลข 40
ถ้าคิดในใจก็ตอบว่าต้องใช้ตัวเลขในเซลล์ B2+B3 = 15+25 ทำให้ได้ผลลัพธ์เท่ากับ 40 แต่เราต้องการใช้ Solver ในการบอกตำแหน่ง B2 และ B3 จึงต้องหาทางสร้างสูตรที่เกี่ยวข้องลงไปในตารางให้เสร็จก่อนดังนี้
- เซลล์ C2:C4 เว้นไว้เพื่อให้ Solver หาตัวเลขเฉพาะเลข 1 หรือ 0 ใส่ลงไป เพื่อใช้เป็นการชี้ตำแหน่งที่จะนำมาใช้ เช่น ถ้า C2:C4 ได้ตัวเลข 1, 1, 0 ตามลำดับ ก็แสดงว่าใช้เซลล์ C2 และ C3 ส่วนเซลล์ C4 ไม่ต้องนำมาใช้
- เซลล์ D2:D4 ต้องสร้างสูตรนำตัวเลขใน B2:B4 มาคูณกับตัวเลข 1 หรือ 0 ที่ Solver จะหาให้จากเซลล์ C2:C4 เป็นผลลัพธ์ที่คูณกันทีละเซลล์
- เซลล์ D5 สร้างสูตร =SUM(D2:D4) เพื่อหายอดรวมทั้งหมดของผลคูณ ซึ่งเราต้องการคำตอบในเซลล์นี้เท่ากับ 40
หลังจากที่ออกแบบตารางและสร้างสูตรคำนวณข้างต้นเรียบร้อยแล้ว ให้เริ่มใช้ Solver ตามขั้นตอนต่อไปนี้
- สั่ง File > Options > Add-ins เลือก Manage : Excel Add-ins แล้วกดปุ่ม Go
- กาช่อง Solver Add-in แล้วกดปุ่ม OK
- สั่ง Data > Solver
- ในช่อง Set Objective: ให้คลิกเลือกเซลล์ D5 ซึ่งเป็นสูตรหายอดรวมของผลคูณ แล้วคลิกเลือกช่อง Value of: พิมพ์เลขคำตอบ 40 ลงไป
- ในช่อง By Changing Variable Cells: ให้คลิกเลือกเซลล์ C2:C4 ซึ่งเป็นเซลล์รับตัวแปรที่ต้องการหาค่าใหม่
- เพิ่ม Constraints โดยกดปุ่ม Add แล้วกำหนดเซลล์ C2:C4 = binary
- กดปุ่ม Solve จะเห็นตัวเลข 1 หรือ 0 แสดงในเซลล์ C2:C4 แล้วทำให้ได้ตัวเลขยอดรวมของผลคูณในเซลล์ D5 = 40 ตามต้องการแล้วกดปุ่ม OK เพื่อยอมรับ
ข้อควรระวังในการใช้ Solver
- หากต้องการสั่งให้ Solver พิมพ์รายงาน ให้คลิกเลือกชื่อรายงานในช่อง Reports (เป็นช่องด้านขวาของ Solver Results ตามภาพข้างบนนี้) แต่มีข้อแม้ว่าต้องไม่สั่ง Protect Workbook ไว้ก่อน
- เงื่อนไขในส่วนของ Constraints เป็นสิ่งสำคัญที่ทำให้ Solver สามารถหาค่าที่ต้องการ หากกำหนด Constraints ไว้ไม่ครบถ้วนก็จะส่งผลให้ไม่สามารถหาคำตอบที่ต้องการหรืออาจเกิดคำตอบที่ไม่น่าจะเป็นไปได้ เช่น ในปัญหาการผลิตถ้าลืมกำหนด Constraints ให้เป็นจำนวนเต็ม ก็จะได้คำตอบจำนวนผลิตที่มีเศษทศนิยม หรือถ้าไม่ได้กำหนดให้เป็นค่าที่มากกว่าหรือเท่ากับ 0 ก็จะได้คำตอบที่เป็นเลขติดลบ