อ้าว! ทำไมตัวเลขมันโดนย่อล่ะ? [Scientific Notation in Excel]

“ผมขอถามสิ่งที่คาใจมานานได้ไหมครับ” จู่ ๆ โจ้ก็เอ่ยเบา ๆ
“ว่ามาเลยโจ้”
“คำถามอาจดูแปลก ๆ อาจดูไม่ค่อยสำคัญนะครับ”
“ไม่เป็นไร ถามได้เลย”
“คือผมไม่รู้ว่าคนอื่นเค้าสงสัยหรือเปล่า แต่ผมสงสัยมานานแล้ว”
“ถามมาโลด”
“พี่อย่าด่าผมนะครับ”
“ถามได้แล้วโว๊ย!”

คือผมสงสัยว่า เวลาพิมพ์ตัวเลขยาว ๆ เช่น เลขบัตรประชาชน 13 หลักลงใน Excel ทำไมมันขึ้นเป็นเลขทศนิยม?

เช่น พิมพ์ 3101701827721

มันขึ้นเป็น 3.1017E+12

อืมม์ พี่กลับมองว่านี่เป็นคำถามที่ดีนะ”

การแสดงผลแบบนี้มีชื่อทางการว่า Exponential Notation หรือบางคนเรียกว่า Scientific Notation
สำหรับคนไทย ขอเรียกง่าย ๆ ว่าการแสดงผลแบบสิบยกกำลังละกัน ^_^

E หมายถึง 10 ยกกำลัง
ตัวเลขหลัง E หมายถึงจำนวนตัวเลขที่ยกกำลัง

เช่น 3.1017E+12
หมายถึง 3.1017 คูณ 10 ยกกำลัง 12
หรือก็คือ 3.1017 * 10^12
หรือมองง่าย ๆ ว่า 3.1017 มีเลขศูนย์ต่อท้าย 12 ตัว

ถ้าแสดงผลเป็นตัวเลข 13 หลักติดกันมันดูลายตา คอลัมน์อาจกว้างไม่พอ
Excel ก็เลยแสดงผลเป็นแบบนี้แทน แม้ว่าไม่ได้ดูง่ายขึ้นเลยก็ตาม ^^

อ้อ! แสดงผลเป็นเลขยกกำลังก็จริง แต่ค่าจริงยังเป็น 3101701827721 เหมือนเดิมนะ

“แต่บางครั้งพิมพ์ตัวเลขยาว ๆ ก็ไม่ขึ้นเป็นเลขยกกำลังนะครับ” โจ้แย้ง
เช่น ถ้าลองพิมพ์ 1234567890 (10 หลัก) มันก็ขึ้นเป็นเลขนั้นเลย

“สังเกตได้ดีมาก”
โดยดีฟอลต์แล้ว ฟอร์แมตของทุกเซลล์คือ General

ถ้าตัวเลขน้อยกว่า 12 หลัก จะแสดงผลเป็นตัวเลขปกติ
แต่ถ้าตัวเลขตั้งแต่ 12 หลักขึ้นไป จะแสดงผลเป็นแบบสิบยกกำลัง

“แต่เอ.. บางครั้งผมเคยเห็นเป็น E+08 นะครับ” โจ้ท้วง

“เป็นไปได้ เท่าที่พี่เคยเจอ เคสพวกนี้มักไม่ได้เกิดจากการพิมพ์ลงใน Excel ตรง ๆ แต่เกิดจากการก็อปปี้ข้อมูลมาจากที่อื่น”

เช่น ก็อปปี้ข้อมูลมากจาก Notepad
สมมติข้อมูลเป็นตัวเลข 9 หลัก หน้าตาประมาณนี้

พอก็อปปี้มาแปะใน Excel จะโดนย่อตัวเลขเป็น E+08 (เสมือนคูณด้วยสิบยกกำลังแปด)

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

“เอ..เวลาคอลัมน์แคบเกินไป จะแสดงผลเป็น ### ไม่ใช่หรือครับ?” โจ้ท้วง
“สังเกตได้ดีมาก”
ถ้าคอลัมน์แคบจะแสดงผลเป็นเลขยกกำลังก่อน แต่ถ้าแคบมาก ๆ จะแสดงผลเป็น ###

“เข้าใจล่ะ งั้นเราจะแก้ปัญหาเรื่องตัวเลขสิบยกกำลังยังไงดีครับ?”
“โดยส่วนตัวพี่ไม่ได้มองว่าเป็นปัญหานะ เพราะค่าจริงยังคงเหมือนเดิม เพียงแต่การแสดงผลอาจดูแปลก ๆ”

ถ้ามองว่าเป็นปัญหา ก็แก้ไขได้ไม่ยาก มองเป็น 2 เคสละกัน

1. ตัวเลขน้อยกว่า 12 หลัก

ถ้าตัวเลขน้อยกว่า 12 หลัก ก็แก้ง่าย ๆ โดยดึงคอลัมน์ให้กว้างขึ้น จบ!

ง่ายสุด ๆ ^_^

2 ตัวเลขตั้งแต่ 12 หลักขึ้นไป

ถ้าตัวเลขตั้งแต่ 12 หลักขึ้นไป ก็แก้ไม่ยากเช่นกัน นั่นคือเปลี่ยน Format Cells เป็น Number

เช่น เดิมมีข้อมูลแบบนี้

คลิกขวาคอลัมน์ที่ต้องการเปลี่ยนฟอร์แมต (จากภาพคือคอลัมน์ B) เลือก Format Cells

เลือกฟอร์แมต Number แล้วปรับ Decimal places ให้เป็น 0 จากนั้นคลิก OK

ได้ผลลัพธ์เป็นตัวเลขตามต้องการแล้ว ^_^

อ้อ! ถ้าตัวเลขดูลายตา อยากใส่คอมมาก็คลิกเลือกตอน Format Cells ได้เช่นกัน

ถ้าชอบแบบนี้ก็จัดไป

ถ้าต้องการให้มีเครื่องหมายขีดกลางคั่น ก็อาจปรับฟอร์แมตเป็น Custom แล้วเซ็ตเป็น
0000-0000-0000

ถ้าชอบแบบนี้ จัดโลด

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

คลิก Vote ได้เลย ไมโครซอฟท์เค้าจะได้รู้ พี่ก็โหวตเหมือนกัน ^_^

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

“ฟังดูแม่ง ๆ นะ”

ถ้าคุณชอบบทความแนวนี้ อัพเดตบทความใหม่โดยคลิกไลก์ เฟซบุ๊กเพจวิศวกรรีพอร์ต

อย่าลืมแชร์ให้เพื่อนอ่านเพื่อเป็นกำลังใจให้คนเขียนด้วยนะครับ ^_^

Reference:
https://support.microsoft.com/en-us/office/display-numbers-in-scientific-exponential-notation-f85a96c0-18a1-4249-81c3-e934cd2aae25
https://support.microsoft.com/en-us/office/excel-specifications-and-limits-1672b34d-7043-467e-8e27-269d656771c3
https://exceljet.net/lessons/how-to-use-scientific-formatting-in-excel#:~:text=When%20cells%20are%20in%20general,of%2012%20or%20more%20digits.
https://www.youtube.com/watch?v=hC0jfmOe3bg
https://www.microsoft.com/en-us/microsoft-365/blog/2008/04/10/understanding-floating-point-precision-aka-why-does-excel-give-me-seemingly-wrong-answers/#:~:text=The%20number%20of%20digits%20of,be%20stored%20in%20binary%20format.

วิศวกรรีพอร์ต

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

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.