網友問到:若要對 Excel 的工作表中儲存格內的數字,將其每個位元數字予以加總,該如何處理?(參考下圖,注意:每個儲存格內的數字有不同的位數)

Excel-將數字的每一位元加總(SUMPRODUCT,MID,ROW,LEN,INDIRECT)

【公式解析】

儲存格B2:=SUMPRODUCT(1*MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1))

複製儲存格B2,貼至儲存格B2:B16。

(1) LEN(A2)

利用 LEN 函數求得儲存格A2中的數字長度(幾個位元),例如:8位元數傳回「8」。

(2) ROW(INDIRECT("1:"&LEN(A2)))

將字串「1:」和第(1)式傳回的數字串接,並利用 INDIRECT 函數將其轉成儲存格位址。例如,第(1)式傳回「8」,則將「1:8」轉成位址置於 ROW 函數中使用。

例如,在 SUMPRODCUT 函數中,本公式中ROW(1:8)代表數字「1, 2, 3, 4, 5, 6, 7 ,8」。

(3) MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)

將第(2)式的傳回值置入 MID 函數中,依序由左至右取出儲存格A2內數字的每個位元。

(4) SUMPRODUCT(1*MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1))

最後,透過 SUMPRODUCT 函數將每個位數予以加總,即為所求。其中公式中的「1*」運算乃是將 MID 函數的傳回結果(文字),轉換為數值。

 

【延伸學習】

如果儲存格內的數位是位元數相同者,可以採用以下公式:(假設位元數8)

儲存格B2:=SUMPRODUCT(1*MID(A2,ROW(1:8),1))

 

【延伸閱讀】

參考:本部落格中其他關於 Excel SUMPRODUCT 函數的應用

參考:本部落格中其他關於 Excel MID 函數的應用

參考:本部落格中其他關於 Excel INDIRECT 函數的應用

學不完.教不停.用不盡文章列表

arrow
arrow
    創作者介紹
    創作者 vincent 的頭像
    vincent

    學不完.教不停.用不盡

    vincent 發表在 痞客邦 留言(0) 人氣()