HEX2DEC 是 Excel 內建的進位轉換函數,能將十六進位(Hexadecimal)字串直接轉為十進位(Decimal)數值。 本文完整教學函數語法、0x 前綴處理公式、負數原理、3 種常見錯誤解法,並提供 8 筆範例對照表與批次轉換技巧。
什麼是 HEX2DEC?十六進位與十進位轉換基礎概念
十六進位是一種以 16 為基數的計數系統,使用 0-9 加上 A-F 共 16 個符號來表示數值。其中 A=10、B=11、C=12、D=13、E=14、F=15,不區分大小寫。相較於我們日常使用的十進位(以 10 為基數),十六進位能用更少的字元表示更大的數字——例如十進位的 255,在十六進位中只需要 FF 兩個字元。
在實際工作中,你會在以下場景遇到十六進位數據:
- IoT 設備回傳值:感測器、控制器的原始數據常以 HEX 格式傳輸
- 程式日誌與錯誤碼:Windows 錯誤碼(如 0x80070005)、系統日誌中的記憶體位址
- 網頁色碼:CSS 色彩值如 #FF5733,其中 FF、57、33 各代表 R、G、B 的十六進位值
- 網路協議分析:MAC 位址、封包內容常以 HEX 表示
Excel 的 HEX2DEC 函數讓你不需要手動計算,一個公式就能完成轉換。如果你正在系統性學習 Excel,建議先瀏覽Excel 函數總覽,了解各類函數的分類與應用場景。

HEX2DEC 函數語法與參數說明
基本語法
HEX2DEC 的語法非常簡潔,只有一個參數:
=HEX2DEC(number)
number(必填):要轉換的十六進位字串。可以是直接輸入的文字(用雙引號包住,如 "3F7A"),也可以是儲存格參照(如 A2)。這個參數不區分大小寫,"3f7a" 和 "3F7A" 會得到相同結果。
使用時需注意三個核心限制:
- 最多 10 位字元:輸入超過 10 位十六進位數會回傳 #NUM! 錯誤
- 僅接受合法 HEX 字元:只能包含 0-9 和 A-F,出現 G、Z、空格等會回傳 #VALUE! 錯誤
- 支援有符號數(Signed Number):第 10 位為符號位,當最高位 ≥ 8 時,結果為負數
這些限制在實務中經常導致錯誤,後面的章節會逐一教你如何處理。想深入了解更多Excel 公式的通用規則,可以參考我們的公式教學指南。
有符號數與負數結果說明
很多人第一次看到 =HEX2DEC("FFFFFFFF") 回傳 -1 時會感到困惑。這是因為 HEX2DEC 使用「二補數(Two’s Complement)」來處理有符號整數。
白話來說,二補數的規則是:當十六進位字串的最高位(最左邊的字元)大於或等於 8 時,Excel 會將它解讀為負數。 這是因為在二進位中,8 對應的是 1000,最高位元為 1,代表負號。
快速判斷方法:
- HEX 首位是 0-7 → 結果一定是正數(如
7FFFFFFF→ 2,147,483,647) - HEX 首位是 8-F → 結果一定是負數(如
FFFFFFFF→ -1,8000000000→ -549,755,813,888)
如果你的資料來源不需要處理負數(例如色碼、設備 ID),而 HEX 值的首位恰好 ≥ 8,你可能需要在前面補零來避免被誤判為負數。例如 "FF" 回傳 255(正數),但 "FFFFFFFFFF" 回傳 -1(負數),因為後者剛好是 10 位且首位為 F。

基本操作步驟:在 Excel 中使用 HEX2DEC
步驟一:準備 HEX 資料
這一步是最容易出錯的地方。在輸入十六進位數據之前,務必先將儲存格格式設為「文字」。
操作方式:選取目標儲存格 → 右鍵 →「儲存格格式」→ 在「數值」分頁選擇「文字」→ 確定。
為什麼這很重要?因為 Excel 會「自作聰明」地解讀你的輸入:
- 輸入
A2:Excel 以為你在參照 A2 儲存格,而非十六進位字串 “A2” - 輸入
1E3:Excel 以為你在輸入科學記號(1×10³ = 1000),而非十六進位的 1E3(= 483) - 輸入
0010:Excel 會自動去掉前導零,變成 10
先設好「文字」格式再輸入資料,就能避免這些問題。如果資料已經輸入且被 Excel 轉換了,你需要重新設定格式後再重新輸入。
步驟二:輸入 HEX2DEC 公式
在相鄰的空白儲存格(例如 B2)輸入公式:
=HEX2DEC(A2)
按下 Enter,B2 就會顯示轉換後的十進位數值。如果你要直接輸入 HEX 值而非參照儲存格,記得用雙引號包住:
=HEX2DEC("3F7A")
步驟三:驗證結果
轉換完成後,建議用手動計算驗證至少一筆資料,確保來源資料沒有格式問題。十六進位轉十進位的計算方式是:每一位數字乘以 16 的對應次方,再加總。
以 3F7A 為例:
- 3 × 16³ = 3 × 4096 = 12,288
- F(15)× 16² = 15 × 256 = 3,840
- 7 × 16¹ = 7 × 16 = 112
- A(10)× 16⁰ = 10 × 1 = 10
- 合計:12,288 + 3,840 + 112 + 10 = 16,250 ✓
如果你需要更多Excel 公式教學的基礎知識,包括參照方式、運算子優先順序等,可以參考我們的完整指南。

實際範例對照表:8 種常見轉換情境
以下表格涵蓋你在實務中最常遇到的轉換情境,包含正數、負數、邊界值、色碼片段,以及帶 0x 前綴的處理方式:
| 十六進位輸入 | 公式 | 十進位結果 | 說明 |
|---|---|---|---|
| 3F7A | =HEX2DEC("3F7A") |
16250 | 一般正數轉換 |
| FFFFFFFF | =HEX2DEC("FFFFFFFF") |
-1 | 有符號負數(二補數) |
| 7FFFFFFF | =HEX2DEC("7FFFFFFF") |
2147483647 | 32 位元最大正值 |
| 7FFFFFFFFF | =HEX2DEC("7FFFFFFFFF") |
549755813887 | 10 位 HEX 最大正值 |
| A | =HEX2DEC("A") |
10 | 單字元轉換 |
| FF | =HEX2DEC("FF") |
255 | RGB 色碼片段(如紅色 R 值) |
| 0x3F7A(需處理) | =HEX2DEC(SUBSTITUTE(A2,"0x","")) |
16250 | 移除 0x 前綴後轉換 |
| 0X1A3B(需處理) | =HEX2DEC(SUBSTITUTE(LOWER(A2),"0x","")) |
6715 | 移除大寫 0X 前綴後轉換 |
處理「0x」前綴的兩種公式
許多程式語言和系統日誌會在十六進位數值前加上 0x 前綴(如 0x3F7A、0X1A3B)。HEX2DEC 無法直接處理這種格式,你需要先移除前綴。
方法一:SUBSTITUTE 法(推薦,最直覺)
=HEX2DEC(SUBSTITUTE(LOWER(A2),"0x",""))
先用 LOWER 統一為小寫,再用 SUBSTITUTE 移除 0x。這個方法同時處理了 0x 和 0X 兩種寫法。
方法二:RIGHT + LEN 法(適合前綴固定為 2 字元的情況)
=HEX2DEC(RIGHT(A2,LEN(A2)-2))
從右邊取出去掉前 2 個字元後的內容。這個方法假設前綴一定是 2 個字元,如果資料中混合了有前綴和無前綴的值,建議改用方法一搭配 IF 判斷。
想了解更多 Excel 中文字轉數字的技巧,包括 VALUE、TEXT 等函數的用法,可以參考我們的專題教學。

錯誤處理與資料清理
三種常見錯誤與解決方式
在批次處理 HEX 資料時,以下三種錯誤最常出現:
| 錯誤類型 | 觸發原因 | 解決方式 |
|---|---|---|
| #NUM! | HEX 超過 10 位,或數值超出範圍(小於 -549,755,813,888 或大於 549,755,813,887) | 分段處理(見下方說明) |
| #VALUE! | 含非 HEX 字元(如 G、Z、空格、特殊符號),或儲存格為空值 | =HEX2DEC(TRIM(UPPER(A2))) 清理後轉換 |
| 顯示 0 或非預期值 | 儲存格格式非「文字」,Excel 將輸入誤判為數值或公式參照 | 先將儲存格格式設為「文字」,重新輸入資料 |
VALUE! 錯誤中最隱蔽的情況是「看不見的空格」——資料從外部系統匯入時,前後常帶有空白字元。用 TRIM 函數可以有效清除。
防錯公式組合(可直接複製使用)
以下三個公式由簡到繁,根據你的資料品質選擇適合的版本:
基本防錯(處理一般錯誤):
=IFERROR(HEX2DEC(TRIM(A2)), "格式錯誤,請檢查")
含大小寫統一(資料來源混合大小寫):
=IFERROR(HEX2DEC(TRIM(UPPER(A2))), "格式錯誤")
完整版:含 0x 前綴移除 + 大小寫統一 + 空格清理:
=IFERROR(HEX2DEC(SUBSTITUTE(TRIM(UPPER(A2)),"0X","")), "格式錯誤")
這個完整版公式的處理順序是:TRIM 去空格 → UPPER 統一大寫 → SUBSTITUTE 移除 0X → HEX2DEC 轉換 → IFERROR 攔截錯誤。建議在批次處理時一律使用完整版,省去逐筆排查的時間。
超過 10 位 HEX 的處理方式
HEX2DEC 的 10 位限制是 Excel 函數設計的硬性上限,無法繞過。但在實務中,你可能會遇到 12 位甚至 16 位的 HEX 值(例如 64 位元系統的記憶體位址)。
分段轉換公式(以 12 位 HEX 為例):
假設 A2 中有 12 位 HEX 值(如 "1A2B3C4D5E6F"),可以拆成高 2 位 + 低 10 位:
=HEX2DEC(LEFT(A2,2)) * 16^10 + HEX2DEC(RIGHT(A2,10))
原理:將高位部分乘以 16 的 10 次方(因為低位有 10 位),再加上低位的轉換結果。
不過,當 HEX 位數更長或資料量很大時,分段公式會變得複雜且難以維護。這時建議改用 Power Query,下一節會詳細說明。

批次轉換技巧:從拖曳公式到 Power Query
拖曳公式批次處理
最基本的批次轉換方式:在 B2 輸入公式 =HEX2DEC(TRIM(A2)) 後,將滑鼠移到 B2 右下角的填滿控點(小方塊),向下拖曳到需要的範圍(如 B100)。
操作前請確認:
- A 欄所有儲存格格式已設為「文字」
- 建議使用完整版防錯公式,避免單筆錯誤導致整欄中斷
你也可以用Excel 快捷鍵 Ctrl + D 快速向下填滿公式,或選取範圍後按 Ctrl + Enter 一次填入。
動態陣列公式(Excel 365 / Excel 2021)
如果你使用的是 Excel 365 或 Excel 2021,可以用動態陣列一次輸出整欄結果:
=HEX2DEC(TRIM(A2:A100))
只需在 B2 輸入這個公式,按 Enter 後結果會自動「溢出」到 B3、B4…直到 B100。不需要拖曳,也不需要按 Ctrl+Shift+Enter。
版本注意:這個功能僅限 Excel 365 和 Excel 2021。如果你使用 Excel 2019 或更早版本,動態陣列不可用,請改用拖曳法。
如果需要搭配防錯,動態陣列版本的完整公式為:
=IFERROR(HEX2DEC(SUBSTITUTE(TRIM(UPPER(A2:A100)),"0X","")),"格式錯誤")
Power Query 批次轉換(處理大量或超長 HEX)
當你的資料有以下特徵時,Power Query 是比函數更好的選擇:
- HEX 值超過 10 位(函數無法處理)
- 資料量超過數千筆(函數計算速度較慢)
- 資料來源是外部系統匯入的 CSV 或資料庫
操作路徑:資料 → 取得資料 → 從表格/範圍 → 在 Power Query 編輯器中 → 新增資料行 → 自訂資料行 → 輸入公式:
Number.FromText([HEX欄位名稱], 16)
其中 [HEX欄位名稱] 替換為你的實際欄位名稱,16 代表來源是十六進位。Power Query 的 Number.FromText 沒有 10 位限制,能處理更大範圍的 HEX 值。
完成後按「關閉並載入」,轉換結果會自動回到 Excel 工作表中。未來資料更新時,只需按「重新整理」即可重新計算,不需要重新設定公式。
想進一步學習 Power Query 和其他 Excel 進階功能,可以參考我們的 Excel 教學指南,從入門到進階都有涵蓋。
如果你想系統性地提升 Excel 數據分析能力,Coursera 上有 Microsoft 官方認證的 Excel 課程,從基礎函數到進階資料分析都有完整的學習路徑。

Excel 進位轉換函數完整對照
HEX2DEC 只是 Excel 進位轉換函數家族的一員。以下是完整的對照表,幫助你在不同進位之間靈活切換:
| 函數 | 功能 | 範例公式 | 結果 |
|---|---|---|---|
| HEX2DEC | 十六進位 → 十進位 | =HEX2DEC("FF") |
255 |
| DEC2HEX | 十進位 → 十六進位 | =DEC2HEX(255) |
FF |
| HEX2BIN | 十六進位 → 二進位 | =HEX2BIN("A") |
1010 |
| BIN2DEC | 二進位 → 十進位 | =BIN2DEC("1010") |
10 |
| BIN2HEX | 二進位 → 十六進位 | =BIN2HEX("1010") |
A |
| HEX2OCT | 十六進位 → 八進位 | =HEX2OCT("1F") |
37 |
| OCT2DEC | 八進位 → 十進位 | =OCT2DEC("37") |
31 |
HEX2BIN 的 4 位限制與分段處理
HEX2BIN 有一個容易被忽略的限制:它最多只能處理 4 位十六進位數(即 16 位元二進位)。如果你需要將超過 4 位的 HEX 轉為二進位,必須分段處理後串接。
例如,要將 "3F7A" 轉為完整的 16 位元二進位:
=HEX2BIN(LEFT(A2,2),8) & HEX2BIN(RIGHT(A2,2),8)
這個公式將 "3F7A" 拆成 "3F" 和 "7A" 兩段,各自轉為 8 位元二進位後串接。第二個參數 8 指定輸出位數,確保前導零不會被省略。
結果:0011111101111010
如果 HEX 值更長(如 8 位),就需要拆成更多段。這時候用 Power Query 或 VBA 會更有效率。
更多進位轉換與數值處理的函數,可以在Excel 函數總覽中找到完整清單。

實務應用場景(含完整欄位設計範例)
IoT 設備數據解碼(含欄位設計)
在 IoT 專案中,感測器回傳的原始數據通常是十六進位格式。以下是一個實用的 Excel 欄位設計,能自動將 HEX 數據轉換並標記異常值:
| 欄位 | 內容 | 公式 |
|---|---|---|
| A 欄:設備 ID | SENSOR-001 | (手動輸入或匯入) |
| B 欄:HEX 回傳值 | 03E8 | (從系統匯入,格式設為文字) |
| C 欄:十進位數值 | 1000 | =IFERROR(HEX2DEC(TRIM(B2)),"讀取錯誤") |
| D 欄:狀態判斷 | 正常 | =IF(C2="讀取錯誤","資料異常",IF(C2>1000,"警告","正常")) |
這個設計的好處是:C 欄的防錯公式確保即使某筆 HEX 資料格式有問題,也不會導致整個工作表出錯;D 欄的條件判斷能自動標記超過閾值的異常讀數,讓你快速篩選需要關注的設備。
如果你的 IoT 專案需要多人協作追蹤設備狀態,Excel 的單機作業模式可能會遇到版本衝突的問題。這時可以考慮用 monday.com 建立設備監控看板——它支援自動化規則,例如「當數值欄位超過 1000 時自動通知負責人」,比 Excel 的條件格式更即時。
色碼轉換(RGB 應用)
網頁設計中常見的 HEX 色碼(如 #FF5733)可以用 HEX2DEC 拆解為 R、G、B 三個十進位值:
| 色碼元素 | 公式 | 結果 |
|---|---|---|
| R(紅) | =HEX2DEC(MID(A2,2,2)) |
255 |
| G(綠) | =HEX2DEC(MID(A2,4,2)) |
87 |
| B(藍) | =HEX2DEC(MID(A2,6,2)) |
51 |
其中 MID 函數從色碼字串中擷取對應的 2 位 HEX 值:第 2-3 位是 R、第 4-5 位是 G、第 6-7 位是 B(第 1 位是 # 符號)。
反過來,如果你想讓儲存格顯示為 HEX 格式,可以用 DEC2HEX 函數:
=DEC2HEX(255) → 結果:FF
或者用 TEXT 搭配 DEC2HEX 補零到固定位數:
=DEC2HEX(10,2) → 結果:0A(補零到 2 位)
程式日誌分析
Windows 系統錯誤碼常以 0x 開頭的十六進位表示,例如 0x80070005 代表「存取被拒」。你可以用 HEX2DEC 將錯誤碼批次轉換後,搭配 VLOOKUP 比對錯誤代碼表:
=VLOOKUP(HEX2DEC(SUBSTITUTE(A2,"0x","")), 錯誤代碼表!A:B, 2, FALSE)
這個公式先移除 0x 前綴、轉為十進位,再到「錯誤代碼表」工作表中查找對應的錯誤描述。對於需要分析大量系統日誌的 IT 團隊來說,這能省下大量手動查詢的時間。
如果你的團隊需要持續追蹤和分析這類系統錯誤,可以考慮將 Excel 報表整合到 ClickUp 的任務管理流程中——它支援 Excel 檔案匯入和自動化工作流,適合技術團隊的 bug tracking 需求。

結論:掌握 HEX 轉換的三個核心技能
學完這篇教學,你應該已經掌握了以下重點:
- 基本函數用法:
=HEX2DEC(number)一個參數完成轉換,注意儲存格格式設為「文字」 - 0x 前綴與負數處理:用
SUBSTITUTE移除前綴,用首位字元判斷正負數(0-7 正、8-F 負) - 錯誤防護:完整版公式
=IFERROR(HEX2DEC(SUBSTITUTE(TRIM(UPPER(A2)),"0X","")),"格式錯誤")一次解決空格、大小寫、前綴三大問題 - 批次轉換:小量用拖曳或動態陣列,大量或超長 HEX 用 Power Query 的
Number.FromText - 超過 10 位的替代方案:分段公式或 Power Query,不受函數限制
下一步建議:如果你經常需要處理進位轉換和數據清理,可以進一步學習 Power Query 自動化流程,或探索更多 Excel 進階公式的應用。
當你的資料處理需求從個人 Excel 擴展到團隊協作——例如多人同時追蹤 IoT 設備數據、共同維護錯誤代碼表——monday.com 的儀表板和自動化功能可以無縫銜接 Excel 的分析結果,免費方案不需要信用卡就能開始使用。
HEX2DEC 常見問題 FAQ
HEX2DEC 最多能處理幾位數?超過怎麼辦?
HEX2DEC 最多處理 10 位十六進位字元,對應的十進位範圍是 -549,755,813,888 到 549,755,813,887。超過 10 位會回傳 #NUM! 錯誤。解決方式是使用分段公式,例如 12 位 HEX 可拆成高 2 位 + 低 10 位:=HEX2DEC(LEFT(A2,2))*16^10+HEX2DEC(RIGHT(A2,10))。如果位數更長或資料量大,建議改用 Power Query 的 Number.FromText([欄位],16),沒有位數限制。
為什麼 HEX2DEC 的結果是負數?
這是因為 HEX2DEC 使用二補數(Two’s Complement)處理有符號整數。快速判斷方法:看 HEX 值的第一個字元,如果是 0-7 結果為正數,8-F 結果為負數。例如 FFFFFFFF 的首位是 F(≥8),所以結果是 -1。如果你的資料不需要負數解讀,確保 HEX 值不要剛好是 10 位且首位 ≥ 8,或在前面補零來改變位數。
如何處理帶有「0x」前綴的 HEX?
HEX2DEC 不接受 0x 前綴,需要先移除。推薦使用這個完整公式,同時處理大小寫和空格:=IFERROR(HEX2DEC(SUBSTITUTE(TRIM(UPPER(A2)),"0X","")),"格式錯誤")。這個公式會先清除空格、統一大寫,再移除 0X 前綴,最後轉換並攔截錯誤。
如何批次轉換一整欄 HEX?
有三種方式:(1)拖曳法:在 B2 輸入公式後,拖曳填滿控點向下複製,適用所有 Excel 版本;(2)動態陣列:輸入 =HEX2DEC(TRIM(A2:A100)) 自動溢出結果,僅限 Excel 365 和 Excel 2021;(3)Power Query:適合超過 10 位 HEX 或大量資料,使用 Number.FromText([欄位],16) 轉換。
HEX2DEC 和 Power Query 的 Number.FromText 有何差異?
HEX2DEC 是工作表函數,優點是簡單直覺、即時計算,適合少量資料(幾百筆以內)且 HEX 不超過 10 位的情境。Power Query 的 Number.FromText 沒有位數限制,適合大量資料、超長 HEX 值,或需要從外部資料來源(CSV、資料庫)匯入的場景。Power Query 還能將轉換步驟儲存為可重複執行的查詢,資料更新時一鍵重新整理。
如何讓儲存格顯示為 HEX 格式?
如果你有十進位數值想顯示為十六進位,使用 DEC2HEX 函數:=DEC2HEX(255) 回傳 FF。若需要固定位數(如補零到 4 位),加上第二個參數:=DEC2HEX(255,4) 回傳 00FF。Excel 沒有內建的十六進位儲存格格式,但你可以用 TEXT 函數搭配 DEC2HEX 來控制顯示方式,或將結果欄設為「文字」格式以保留前導零。