2015年1月15日 星期四

Excel-手動計算十六進制數轉十進制數(OFFSET,MATCH,N,MID,ROW)

在 Excel 中有時會用到十六進制數,運算時也可能需要先轉換為十進制數,所幸 Excel 提供的 HEX2DEC 函數,可以直接轉換這兩種進制數。

儲存格E2:=HEX2DEC(D2)

複製儲存格E2,貼至儲存格E2:E7。

但是,對於那些沒有 HEX2DEC 函數的 Excel 版本使用者,要如何轉換呢?藉著這個範例來順便練習陣列的應用。

儲存格E2:={SUM(N(OFFSET($B$1,MATCH(MID(D2,ROW($1:$4),1),$A$2:$A$17,0),0))
*16^(4-ROW($1:$4)))}

這是陣列公式,輸入完成按 Ctrl+Shift+Enter 鍵,Excel 自動加上「{}」

複製儲存格E2,貼至儲存格E2:E7。

 

【分析公式】

儲存格E2:={SUM(N(OFFSET($B$1,MATCH(MID(D2,ROW($1:$4),1),$A$2:$A$17,0),0))
*16^(4-ROW($1:$4)))}

MID(D2,ROW($1:$4),1):在陣列公式中取出儲存格D2的第1,2,3,4個字元。

MATCH(MID(D2,ROW($1:$4),1),$A$2:$A$17,0):藉由 MATCH 函數找出每個字元(十六進制數)所對應的十進制數的位置。

接著利用 OFFSET 函數將上式的位置在B欄中找到對應的十進制數。

16^(4-ROW($1:$4)):十六進制數的第一個字元其實是對應到 16 的 3 次方,第二個字元對應到 16 的 2 次方,第三個字元對應到 16 的 1 次方,第四個字元對應到 16 的 0 次方。

最後再以 SUM 函數將 1 ~ 4 個字元的十六進制數所轉換而得的十進制數予以加總。

沒有留言:

張貼留言

檢視其他文章

好康東東