在 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 個字元的十六進制數所轉換而得的十進制數予以加總。
留言列表