我們知道Excel處理的數字有精度限制,如果數字超過11位就自動轉換成科學記數法,如果超過15位就被近似處理。本文分享給大家Excel中如何輸入超大數字,以及使用Excel對超大數字進行科學記數法、工程記數法(表示成10的3x冪)、以及普通記數法之間相互轉換。
工具/原料
Excel
Excel大數字問題
首先,我們來做幾個Excel實驗,檢查Excel能夠處理多大的數字,以及遇到大數字時,會碰到什麼問題。
首先,我們依次輸入1~12位的數字。
可以發現當輸入的數字超過11位時,被Excel自動更改為科學記數法。
而一旦數字超過15位,後面的數字(哪怕你輸入的不是0)都被Excel統一處理為0。
說明Excel處理超大數字時,會達到精度瓶頸。
我們首先來解決第一個問題,如何避免當數字超過11位時,Excel自動使用科學記數法。
方法很簡單,只需要右擊單元格區域,點選”設定單元格格式“
在”數字“面板,點選”數值“
將小數位數,設為0,然後點選”確定“
注意,這種技巧,只適用於輸入超大整數,如果有小數部分,則不能這麼處理。
而對於超過15位的大數字,我們可以在數字前方輸入一個英文單引號'
這樣Excel就把單元格內容作為文字來處理,即不轉換成科學記數法的數字形式,同時對於15位後面的數字,也不會自作主張地統一變為0。
根據這個原理,我們知道輸入18位身份證號碼時,可以用這種方法,防止Excel自作主張地處理大數字。
Excel轉換科學記數法
Excel預設,針對大數字(1到15位),會自動轉換成科學記數法,小數部分是兩位。
不過我們如果需要得到高精度的科學記數法,可以右擊單元格,設定單元格格式
在數字、科學記數法中,將小數位數調大一些,最大30位。
對於超過15位的超大數字,只能使用公式來得到高精度,甚至是精確表示的科學記數法數字。
=IF(A1<1000,A1,LEFT(A1,1)&"."&MID(A1,2,100)&"E+"&INT(LOG10(A1)))
例如,下圖中示例是26位的超大整數,方框中是用公式得到的科學記數法。
注意,Excel自身不能自動提供,必須使用公式。
如果是小數的情況,可以改一下公式:
=IF(VALUE(MID(E1,3,100))<1000,E1,MID(E1,3,100)&"E-"&INT(LOG10(MID(E1,3,100))))
Excel轉換工程記數法
下面來分享如何將Excel中的超大數字,轉換成工程記數法表示的數字。
方法與科學記數法類似。
公式改為
=IF(A1<1000,A1,LEFT(A1,1+MOD(INT(LOG10(A1)),3))&"."&MID(A1,2+MOD(INT(LOG10(A1)),3),100)&"E+"&MROUND(LOG10(A1),3))
類似地,如果是超長的小數,也可以改一下公式,得到工程記數法表示的小數。
這裡就不詳細贅述了。