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

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

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

=INDEX(Begin,COUNTIF(Cum_Hour,"<"&(I10+((INDEX(Cum_Hour,MATCH(VLOOKUP(J10,Begin,1),Begin,1),1)-INDEX(Working_Hour,MATCH(VLOOKUP(J10,Begin,1),Begin,1),1))+((J10-VLOOKUP(J10,Begin,1))*24))))+1,1)+(((I10+((INDEX(Cum_Hour,MATCH(VLOOKUP(J10,Begin,1),Begin,1),1)-INDEX(Working_Hour,MATCH(VLOOKUP(J10,Begin,1),Begin,1),1))+((J10 - VLOOKUP(J10,  Begin,  1))*24)))-(INDEX(Cum_Hour,(COUNTIF(Cum_Hour,"<"&(I10+((INDEX(Cum_Hour,MATCH(VLOOKUP(J10,Begin,1),Begin,1),1)-INDEX(Working_Hour,MATCH(VLOOKUP(J10,Begin,1),Begin,1),1))+((J10-VLOOKUP(J10,Begin,1))*24))))+1),1)-INDEX(Working_Hour,(COUNTIF(Cum_Hour,"<"&(I10+((INDEX(Cum_Hour,MATCH(VLOOKUP(J10,Begin,1),Begin,1),1)-INDEX(Working_Hour,MATCH(VLOOKUP(J10,Begin,1),Begin,1),1))+((J10-VLOOKUP(J10,Begin,1))*24))))+1),1)))/24)

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

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

นอกจากนี้หลายคนมักหาเรื่องยากของ VBA มาใช้แก้ปัญหา เพราะคิดอย่างเดียวว่าเมื่อตัวเองหมดหนทางก็ต้องแก้โดยใช้ Macro หรือ VBA เท่านั้นทั้งๆที่แค่ใช้สูตรคำนวณธรรมดาก็หาคำตอบได้แล้ว พอเขียนรหัส VBA ก็มักทำร้ายตัวเองโดยใช้รหัสยาวเหยียดนับร้อยบรรทัดเสียอีก พอรหัสไม่ทำงานตามที่คิดไว้ก็แยกแยะขั้นตอนการทำงานของรหัสไม่เจอว่าผิดพลาดตรงไหน ที่แย่กว่านั้นเห็นจะเป็นตอนที่คนสร้างรหัส VBA ลาออกไปแล้วทิ้งแฟ้มให้เพื่อนๆที่ใช้ VBA ไม่เป็นพากันคิดมากจนเป็นโรคกระเพาะ เพราะไม่รู้ว่าสิ่งที่ตัวเองทำไปนั้นจะผิดขั้นตอนตามที่เพื่อนที่ลาออกไปได้กำหนดไว้ใน VBA หรือไม่

Author: สมเกียรติ ฟุ้งเกียรติEmail: This email address is being protected from spambots. You need JavaScript enabled to view it.

E-Learning

Go to top