สามสิบกว่าปีแล้วที่ผมใช้โปรแกรมคำนวณที่มีชื่อว่า Microsoft Excel และได้พบเห็นผู้ใช้ Excel มาหลายแบบ บางคนอวดเก่งว่าตัวเองใช้ Excel ได้สุดยอด แต่พอเปิดแฟ้มดูกลับไม่เห็นมีอะไร บางคนสร้างงานออกแบบหน้ารายงานได้สวยหรูดูดี แต่พบว่าสูตรที่สร้างไว้ผูกกันไปผูกกันมายุ่งเหยิงไปหมด หลายคนทีเดียวที่หลงภูมิใจว่าตัวเองเก่ง Excel เหลือเกินเพราะสามารถสร้างสูตรยากๆยาวๆได้ ตัวผมเองก็เคยเป็นคนหนึ่งที่คิดแบบหลังนี้
สมัยแรกๆที่ผมช่วยตอบปัญหาใน Excel Expert Forum เวลาเจอคำถามอะไรที่ยากๆที่ไม่สามารถใช้สูตรง่ายๆตั้งเป็นกระทู้ถามขึ้นมา จะรู้สึกว่าได้ท้าทายความสามารถของตัวเองอีกแล้ว ก็จะหาทางสร้างสูตรยากๆที่ต้องซ้อนสูตรกันหลายชั้นตอบกลับไป พอใครก็ตามที่เห็นสูตรของผมก็ต้องเอ่ยปากหรือคิดในใจว่าอาจารย์สมเกียรติคนนี้ต้องเก่งจริงๆ แต่ในไม่ช้าคำตอบที่ผมให้ไปกลับมาเป็นดาบสองคมที่ย้อนกลับมาทำร้ายทั้งตัวคนที่เอาสูตรไปใช้และตัวผมเอง เพราะคนนำสูตรไปใช้ก็ไม่เข้าใจที่ไปที่มา พอติดปัญหาว่าสูตรทำงานไม่ได้ก็ย้อนกลับมาถามผมใหม่อีก ตัวผมเองพอเห็นสูตรที่ตัวเองเป็นคนสร้างก็ยังแกะสูตรไม่ออก เพราะลืมไปแล้วว่าเมื่อก่อนคิดหลักอะไรขึ้นมาใช้ ความเก่งแบบนี้ วิธีใช้ Excel แบบนี้ เดี๋ยวนี้ผมไม่เรียกว่าแน่จริงอีกแล้ว
วิธีการใช้ Excel ที่ดี ต้องดีไม่ใช่แค่สำหรับคนสร้าง แต่ต้องดีสำหรับคนใช้แฟ้มนั้นต่อไปด้วย โดยเฉพาะสูตรที่สร้างขึ้นต้องสามารถนำมาใช้คำนวณหาคำตอบได้ถูกต้องตลอดไปโดยไม่ต้องแก้ไขสูตรใหม่อีกเลย ควรไล่หาสาเหตุของปัญหาว่ามาจากอะไร ซึ่งส่วนใหญ่มักพบว่าเกิดจากตารางข้อมูลที่ใช้มีโครงสร้างที่ยากต่อการหาคำตอบ แทนที่จะสร้างสูตรขึ้นโดยต้องซ้อนสูตรกันไปมาจนยาวเหยียด แค่หันไปปรับแต่งตารางใหม่ก็ช่วยทำให้ใช้สูตรง่ายๆได้สะดวกขึ้น
ผลจากการวิจัยพบว่า 94% ของจำนวนแฟ้มสเปรดชีตที่ใชในบริษัททั่วไปและ 5% ของสูตรที่สร้างไว้มีข้อผิดพลาด ซึ่งข้อผิดพลาดที่พบบ่อยที่สุดเกิดจากการสร้างสูตรแบบที่มีในสิ่งที่ไม่ควรมี และไม่มีในสิ่งที่ควรมี
ช่วยกันดูสูตรต่อไปนี้ว่าเห็นข้อผิดพลาดอะไร ทั้งสามสูตรมีข้อผิดพลาดแบบเดียวกัน เป็นข้อผิดพลาดที่ทำให้ Excel คำนวณถูกบ้างผิดบ้าง
=2*3
=VLOOKUP(A2,B5:E60,2)
=SUM(INDIRECT(“A1:B”&COUNTA(C1:C100))
สูตรแรก =2*3 เป็นสูตรที่เรียกว่า Hard Code เพราะใส่ตัวเลขที่เป็นค่าคงที่ลงไปในสูตรและคำนวณให้คำตอบเท่ากับ 6 ไปตลอด หากวันหนึ่งต้องการแก้สูตรใหม่ให้เป็นตัวเลขอื่นมาคูณกัน ก็ต้องไล่หาเซลล์ที่มีสูตรเก่านี้ให้พบก่อนแล้วจึงเหลี่ยนค่าเป็นตัวเลขใหม่แทนลงไป แต่ถ้าหลงลืมไม่ได้แก้ไขก็จะยังคงได้ผลเท่าเดิมไปตลอด
สูตรที่สอง =VLOOKUP(A2,B5:E60,2) มีตัวเลข 2 ที่ใช้ระบุตำแหน่ง Column ของคำตอบที่ต้องการ หากต้องการระบุตัวเลข 2 ไว้ ก็ต้องมีเงื่อนไขสำคัญว่า ห้ามมีการสลับหรือ Insert Column แทรกในพื้นที่ตาราง B5:E60
สูตรที่สาม =SUM(INDIRECT(“A1:B”&COUNTA(C1:C100)) ได้กำหนดตำแหน่งตารางที่เป็นค่าคงที่ “A1:B” เอาไว้ ดังนั้นจึงต้องห้ามโยกย้ายตำแหน่งเซลล์ใดๆใน Column A กับ B อย่างเด็ดขาด และยังห้ามใส่ค่าใดๆที่ไม่เกี่ยวข้องลงไปในพื้นที่ตารางช่วง C1:C100
หลักการแรกสุดที่จะทำให้ผู้ใช้ Excel แน่ใจจริงๆ แทนการใส่ค่าคงที่ใดๆไว้ในสูตรคำนวณ ควรใช้วิธีลิงก์ค่าจากเซลล์อื่นเข้าไปใช้ในสูตรแทน หรือหาทางใช้สูตรคำนวณหาตัวเลขที่จะเปลี่ยนไปตามการเปลี่ยนแปลงใดๆในแฟ้มนั้น เช่น เลขบอกตำแหน่ง Column ในสูตร VLOOKUP ให้ใช้สูตร MATCH ช่วยหาเลขที่ Column ให้จะแน่กว่ามาก
จากนี้ไปช่วยกันตวจสอบดูให้ดีๆก่อนว่า ใครแน่จริง