近日,有朋友發現自己用excel登記身份證信息時,身份證号碼居然被Excel偷偷篡改了後3位(修改為0了)。導緻他錄入了半天的身份證有一大半都是錯誤的數據,隻有帶字母的沒事。就算他采用複制粘貼的方式依然會錯誤,不太懂計算機的人徹底蒙圈了,但懂計算機的人很容易就發現問題了。
1、問題原因
根據微軟官方文檔說明,微軟在設計excel時,遵循了有關如何存儲和計算浮點數的 IEEE 754 規範。 因此,Excel 在數字中就隻存儲了 15 位有效位數,并将第十五位後的數字更改為零。這就很好地解釋了為什麼全數字的身份證号碼會被篡改後3位的問題了。
至于帶字母的身份證号碼為什麼沒事,也很好解釋。因為在一長串數字中加入了字母後,excel就不再認為它是數字,轉而認為它是一個Unicode字符串。這個Unicode字符串在excel頂底層存儲時unsigned short數據類型,最大可以包含32767個字符的Unicode字符串。所以,excel單元格最大可以輸入32767個字符,但在工作表上最多隻能顯示1024個字符。
2、解決辦法
要解決這個問題,有兩種方法:
①、輸入長數字之前,在單元格中增加輸入一個單引号“ ’ ”。這樣excel就自動将長串數字轉存為Unicode字符串了。
②、輸入長數字之前,先将單元格的數據格式主動設置為“文本”格式。這樣,你輸入的長串數字也就被excel當作文本信息來存儲了。
除了上面的解決方法外,我們還要養成一個好習慣。那就是做完表格,一定要抽樣檢查一下。以免出現問題,造成不可挽回的後果。
3、副作用
以上兩種方法雖然都能成功解決問題,但是也會帶來副作用。那就是都會把這個單元格的數據當作字符串來存儲,後續如果再用這個信息當作源數據來進行數學計算的話,excel容易出錯,有時候會在結果單元格直接顯示公式給你。因為字符串不是數字,excel自動識别過元數據和計算公式時容易識别錯誤。
excel為了避免未知的錯誤,會在該單元格上的左上方出現綠色小三角标記作提醒。如果将鼠标移動過去,你會看到黃色歎号提醒。會提醒你“該單元的内容為文本格式或者前面有單引号” ’ “。我們看到這樣單元格,就盡量不要用它來做計算了。
總結
微軟的excel雖然做得很好,但這些注意事項也還真的是要非常注意,不然因為軟件不正确的使用導緻你交付的文件有問題就得不償失了。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!