Excelには、数の表し方(進数)を相互に変換できる関数がそろっています。
その中でも HEX2OCT関数 は、16進数(0〜9・A〜F)を8進数(0〜7)に変換するための関数です。
たとえば、16進数の「F」は8進数で「17」、「3F」は「77」に変換できます。
プログラミングや通信データ、識別コードの変換確認に便利です。
HEX2OCT関数とは?
HEX2OCT関数 は、16進数で表された値を、8進数に文字列として変換して返す関数です。
16進→8進の変換を手計算せずに一瞬で行えます。
書式
=HEX2OCT(数値, [桁数])
引数の説明
- 数値:変換したい16進数を指定します。
- 桁数(省略可):返す8進数の表示桁数を指定します。足りない場合は先頭を0でゼロ埋め。
使用例①:16進数を8進数に変換する(基本)
| A列(16進数) | 結果(8進数) |
|---|---|
| F | 17 |
| 3F | 77 |
| 1A | 32 |
「F(16)=15(10)=17(8)」、「3F(16)=63(10)=77(8)」のように、Excelが自動で16進→8進を計算します。
使用例②:桁数を指定してゼロ埋めする
| A列(16進数) | 結果 |
|---|---|
| F | 0017 |
| 3F | 0077 |
| 1A | 0032 |
桁数を指定すると、先頭に0が追加され桁をそろえられます。コードやIDの整形に便利。
使用例③:負の値(2の補数)として解釈されるケース
| A列(16進数) | 結果(8進数) |
|---|---|
| FFFFFFFFFF | 7777777777 |
| FFFFFFFFFB | 7777777773 |
16進数の 先頭が「F」から始まる場合、内部的には最上位ビット(左端)が 1 になっており、Excelではそれを 負の数(符号付き2の補数表現) として扱います。
「7777777773」は、実際には「-5」を意味します。
注意点
| 注意点 | 内容 |
|---|---|
| 入力できるのは10桁まで | それ以上の桁を入力すると #NUM! エラーになります。 |
| 結果は文字列 | 返り値はテキスト扱い。計算に使う場合は注意。 |
関連関数
| 関数 | 役割 |
|---|---|
| HEX2DEC | 16進数 → 10進数 |
| HEX2BIN | 16進数 → 2進数 |
| DEC2HEX | 10進数 → 16進数 |
| OCT2HEX | 8進数 → 16進数 |
まとめ
HEX2OCT関数 は、16進数をワンステップで8進数に変換できる便利な関数です。
表示桁数の指定で整形もしやすく、データ解析・コード管理・学習まで幅広く活用できます。
16進・8進・2進の関係を理解するうえでも、覚えておくと重宝します。
