วิธีคิดคำนวณของ Excel
สิ่งซึ่งผู้ใช้ Excel หลงผิดไปใช้กันโดยหารู้ไม่ว่า สิ่งที่ตนเองทำลงไปนั้นเป็นการทำร้ายตนเองก็คือ การเลือกใช้ Format เปลี่ยนแปลงรูปแบบการแสดงผล ไม่ว่าจะเป็นรูปแบบที่จัดให้ค่าในเซลล์ชิดซ้าย ชิดขวา หรือแสดงตรงกลางเซลล์ หรือจัดให้ตัวเลขแสดงหลักทศนิยมตามที่ตนต้องการก็ตามการใช้คำสั่ง Format ไม่ได้ส่งผลให้ค่าในเซลล์เปลี่ยนแปลงไปจากเดิม มีแต่รูปแบบที่แสดงออกมาเท่านั้นที่เปลี่ยนไปยกตัวอย่างเช่น เมื่อนำเซลล์ 2 เซลล์ซึ่งมีตัวเลข 0.33 เหมือนกันมาบวกกันให้แสดงผลลัพธ์ในเซลล์อีกเซลล์หนึ่งได้ผลลัพธ์เป็น 0.66 แล้วเราเปลี่ยน Format ให้แสดงทศนิยมเพียงหลักเดียว
เลข 0.33 จะแสดงเป็น 0.3
เลข 0.66 จะแสดงเป็น 0.7
เมื่อเป็น 0.7 แล้วจะทำให้ผู้ใช้ Excel สงสัยกันทีเดียวว่า ไฉน 0.3 บวกกัน 2 ครั้งจึงได้ผลลัพธ์ออกมาเป็น 0.7 ไปได้ ... นี่แหละตัวอย่างง่ายๆ ซึ่งช่วยให้เห็นความน่ากลัวของการใช้คำสั่ง Format โดยไม่รู้ตัวว่า เมื่อใดควรจะใช้ Format จึงจะทำให้เห็นว่า 0.3 บวกกัน 2 ครั้ง ย่อมได้ผลเป็น 0.6 ถูกต้องตามที่เห็น
ขอให้ใช้สูตรปรับค่าที่ได้จากการคำนวณก่อนExcel ใช้วิธีคำนวณตัวเลข โดยคิดแบบเลขฐาน 2 จากนั้นพอได้ผลลัพธ์แล้วจะแปลงกลับมาเป็นเลขฐาน 10 ซึ่งมีความละเอียดของตัวเลขสูงสุด (Excel Precision) 15 หลักเท่านั้น เช่น เมื่อพิมพ์เลข 12345678901234567890 ลงไปในเซลล์ จะพบว่า Excel ปรับตัวเลขใหม่เหลือเพียง 12345678901234500000 เท่านั้น
เพื่อให้ได้ค่ามีผลลัพธ์เท่ากับที่ต้องการอย่างแท้จริง
จากนั้นจึงค่อยใช้คำสั่ง Format ตามทีหลัง
Repeating Binary Numbers
ตัวเลขซึ่งมักใช้เป็นตัวอย่างให้เห็นปัญหาของ Repeating Binary Numbers เช่น เลข 0.1 ซึ่งเป็นผลจากการคำนวณจากสูตรใดๆก็ได้เมื่อสร้างสูตร =22.3-22.2 หรือ =2.3-2.2 จะพบว่าในเซลล์ได้ผลลัพธ์เป็น 0.1 แต่ถ้าปรับ Format ให้แสดงทศนิยมให้เห็นหลายๆตำแหน่ง จะพบว่า 0.1 ที่ได้นั้น ไม่ใช่ 0.1 จริงๆหรอก
สูตร =22.3-22.2 จะได้ผลลัพธ์ 0.100000000000001สาเหตุที่ครั้งแรกตัวเลขในเซลล์แสดงผลลัพธ์ 0.1 เท่านั้น เนื่องจาก Excel จะใช้ Format ตัวเลขตามแบบตัวเลขที่เราพิมพ์ลงไป ในเมื่อ 22.3 หรือ 22.2 หรือ 2.3 หรือ 2.2 ใช้ทศนิยมหลักเดียว จึงทำให้ผลลัพธ์แสดงด้วยทศนิยมหนึ่งหลักตาม
สูตร =2.3-2.2 จะได้ผลลัพธ์ 0.0999999999999996
ค่า 0.1 ซึ่ง Excel คำนวณได้ในเลขฐานสอง จะเป็นเลข 000110011001100110011 ซ้ำไม่รู้จบ แต่เมื่อแปลงกลับมาเป็นเลขฐานสิบ ภายใต้ Precision ของตัวเลข 15 หลัก จึงต้องถูกปัดหรือตัดทิ้งให้เหลือเท่าที่จะนำไปใช้ต่อได้
สูตรคำนวณ 0.1 นี้เป็นเพียงตัวอย่างง่ายๆที่ช่วยให้เห็นความน่ากลัวของ Excel ได้ดี ซึ่งยังมีโอกาสอีกมากมายที่สูตรคำนวณอื่นๆ ทั้งที่เป็นสูตรบวกลบคูณหารและสูตรที่เป็น Function สำเร็จรูป สามารถคำนวณแล้วให้ผลลัพธ์ถูกต้องตามแบบของ Excel แต่ผิดเพี้ยนไม่ถูกต้องตามความต้องการของมนุษย์ ซึ่ง Format ไม่ได้ช่วยให้ตัวเลขเกิดความแม่นยำต่างไปจากเดิมแต่อย่างใด เราต้องใช้สูตรอื่นๆมาช่วยปรับค่าตัวเลขให้ถูกต้องตรงตามที่ต้องการก่อน จากนั้นจึงค่อยใช้ Format ตามทีหลัง
สูตร Round
สูตร Round นี้เชื่อว่าผู้ใช้ Excel ทั่วไปรู้จักกันดี แต่ไม่เคยนำมาสูตรใช้กันกับการคำนวณทุกเซลล์ เนื่องจากไม่ทราบเรื่อง Repeating Binary Numbers กันมาก่อนสูตร Round ทำหน้าที่ปัดตัวเลขทั้งเลขหลักทศนิยมหรือเลขหลักอื่น ให้เหลือค่าเท่าจำนวนหลักที่ต้องการ
=Round( ตัวเลข, จำนวนหลัก)จำนวนหลักในสูตร ถ้าเป็นเลขบวก เช่น =Round(1234.567,2) จะปัดหลักทศนิยมให้เป็นแค่ 2 หลัก จึงได้ค่าเป็น 1234.57 (เนื่องจากทศนิยมหลักที่ 3 เป็นเลข 7 ซึ่งมากกว่าหรือเท่ากับเลข 5 จึงปัดขึ้น)
จำนวนหลักในสูตร ถ้าเป็นเลข 0 เช่น =Round(1234.567,0) จะปัดหลักทศนิยมให้เป็นแค่ 0 หลัก จึงได้ค่าเป็น 1235.00 (เนื่องจากทศนิยมหลักที่ 1 เป็นเลข 5 ซึ่งมากกว่าหรือเท่ากับเลข 5 จึงปัดขึ้น)
จำนวนหลักในสูตร ถ้าเป็นเลขลบ เช่น =Round(1234.567,-2) จะปัดตัวเลขหลักหน่วยและสิบให้เป็นหลักร้อย จึงได้ค่าเป็น 1200.00 (เนื่องจากเลขหลักที่ 2 เป็นเลข 3 ซึ่งไม่มากกว่าหรือเท่ากับเลข 5 จึงตัดทิ้ง)
สูตร Trunc
สูตร Trunc ทำหน้าที่ตัดตัวเลขทั้งเลขหลักทศนิยมหรือเลขหลักอื่น ให้เหลือค่าเท่าจำนวนหลักที่ต้องการ โดยไม่ต้องดูว่าหลักถัดไปเป็นเลขใดสูตร Trunc ย่อมาจากคำว่า Truncate แปลว่า ตัดทิ้ง
=Trunc( ตัวเลข, จำนวนหลัก)จำนวนหลักในสูตร ถ้าเป็นเลขบวก เช่น =Trunc(1234.567,2) จะตัดหลักทศนิยมให้เป็นแค่ 2 หลัก จึงได้ค่าเป็น 1234.56
จำนวนหลักในสูตร ถ้าเป็นเลข 0 เช่น =Trunc(1234.567,0) หรือ =Trunc(1234.567) จะตัดดหลักทศนิยมให้เป็นแค่ 0 หลัก จึงได้ค่าเป็น 1234.00
จำนวนหลักในสูตร ถ้าเป็นเลขลบ เช่น =Round(1234.567,-2) จะตัดตัวเลขหลักหน่วยและสิบให้เป็นหลักร้อย จึงได้ค่าเป็น 1200.00
สูตร Int
สูตร Int ทำหน้าที่ตัดตัวเลขหลักทศนิยม ให้เหลือเป็นเลขจำนวนเต็มที่น้อยกว่าเลขเดิม=Int( ตัวเลข)=Int(1234.567) จะได้ผลลัพธ์ 1234
แต่ถ้าใช้สูตรหาจำนวนเต็มของค่าลบ =Int(-1234.567) จะได้ผลลัพธ์ -1235
สูตร Mod
สูตร Mod ย่อมาจากคำว่า Modulus แปลว่า เศษที่เหลือจากการหาร ดังนั้นสูตร Mod จึงทำหน้าที่หาเศษที่เหลือจากการหารกัน=Mod( เลขตัวตั้ง, เลขตัวหาร)=Mod(7,3) ได้ผลลัพธ์ 1
=Mod(7,4) ได้ผลลัพธ์ 3
=Mod(7,5) ได้ผลลัพธ์ 2
=Mod(1234.567,1) น่าจะได้ผลลัพธ์เฉพาะเศษ 0.567 แต่กลับได้ 0.567000000000007 มีส่วนท้ายเกินมา ซึ่งต้องอาศัยสูตร Round หรือ Trunc ช่วยแก้ไขอีกชั้นหนึ่ง
เมื่อใดที่ควรใช้สูตรก่อน Format
เมื่อเห็นสูตรข้างต้น หลายคนอาจบอกว่า ตนรู้จักสูตรเหล่านี้มานาน หรือใช้เป็นกันอยู่แล้ว และเห็นว่าเป็นสูตรง่ายๆ แต่ที่น่าคิดน่าถามตัวเองก็คือ แล้วตนเคยนำสูตร Round Trunc Int และ Mod มาใช้กันบ่อยมากน้อยแค่ไหนในงานสำคัญซึ่งต้องใช้ตัวเลขในการวางแผนตัดสินใจ เช่น งานบัญชี งานการเงิน งานภาษีอากร ตลอดจนงานอื่นๆซึ่งมีข้อจำกัดของตัวเลข ซึ่งเกิดจากข้อกำหนดจากภายนอกที่เราควบคุมไม่ได้ เช่น กฎเกณฑ์บัญชี กฎภาษีอากร หรือกฎทางการเงินที่ประกาศให้ลูกค้าและบุคคลภายนอกทราบ ในงานเหล่านี้จำเป็นต้องใช้สูตรดังกล่าวในทุกขั้นตอนของการคำนวณ ห้ามละไว้ใช้สูตรครั้งเดียวกับผลลัพธ์สุดท้าย เพราะจะทำให้ตัวเลขที่อยู่ระหว่างการคำนวณถูกตัดสินผิดพลาดจากกฎที่มีอยู่
ส่วนงานซึ่งใช้ตัวเลขเป็นการภายใน สามารถคลาดเคลื่อนได้บ้าง และไม่เกี่ยวข้องกับการตัดสินใจ เราไม่ต้องใช้สูตรเหล่านี้เลยก็ได้ แต่ต้องเป็นที่ทราบกันทั่วไปว่า ผลลัพธ์ที่เห็นอาจไม่ตรงกับค่าที่แท้จริงเสมอไป
ยังมีอีกสูตรหนึ่ง เป็นสูตรที่ 5 ซึ่งขาดไม่ได้ นั่นคือสูตร If จะนำมาเสนอแบบละเอียดในบทต่อไป แต่ If จะคำนวณได้ถูกต้องเสมอไปหรือไม่ ย่อมต้องอาศัยสูตร Round Trunc Int และ Mod เพื่อปรับค่าให้ถูกต้องก่อนที่จะนำ If มาช่วยตัดสินใจ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น