2011年5月14日 星期六

Excel-取出小數的每個位數

在 Excel 中顯示一個小數,可以調整要顯示的小數位數,如何取出每一個小數位數呢?而如何以這些小數位數來還原成原來的小數呢?(參考下圖)

(1) 取出小數的每一個位數

儲存格B2:=VALUE(MID($A2,COLUMN(C:C),1))

複製儲存格B2至儲存格B2:P2,複製儲存格B2:P2,往下貼上。

根據A欄中的小數,透過MID函數即可取出每個小數位數。

COLUMN(C:C)=3,表示要由第三個字(「0和.」二個字不要)開始取出。

向右複製公式時,COLUMN(C:C)=3→COLUMN(D:D)=4→COLUMN(E:E)=5→…COLUMN(P:P)=15

因為取出的數字其實是一個文字,透過VALUE函數將其轉換為數字。

(2) 將每個小數位數轉回小數

儲存格Q2:{=SUM((B2:P2)*(1/(10^COLUMN($A:$O))))}

這是陣列公式,輸入完成請按 Ctrl+Shift+Enter 鍵。複製儲存格Q2,往下貼上。

COLUMN($A:$O)陣列內容為{1,2,3, … ,14,15}

10^COLUMN($A:$O)陣列內容為{10,100,1000, … ,1000000000000000}

1/(10^COLUMN($A:$O))陣列內容為{0.1,0.01,0.001, … ,0.000000000000001}

SUM((B2:P2)*(1/(10^COLUMN($A:$O))))

=B2*0.1+C2*0.01+D2*0.001+ … + P2*0.000000000000001

其和即為原來的小數。

你還可以使用不同方式:

儲存格Q2:=SUMPRODUCT((B2:P2)*(1/(10^COLUMN($A:$O))))

其觀念和上述陣列公式是完全一樣的。

沒有留言:

張貼留言

檢視其他文章

好康東東