Excel関数で16進数や10進数を変換する方法をお探しですね。

広告

Excelで2進数・10進数・16進数を簡単に変換する方法

プログラミングやネットワーク設定、電子回路の設計、文字コードの確認、データ分析など、意外といろんな場面で2進数・10進数・16進数を扱うことがあります。

手計算でも変換できますが、桁数が多くなるとミスしやすいですし、確認にも時間がかかってしまいますよね。

Excelには、こうした基数変換を簡単にできる関数がいくつも用意されています。

たとえば`HEX2DEC`、`DEC2BIN`、`BIN2DEC`、`DEC2HEX`などです。

セルに数値を入れるだけで、あっという間に別の形式へ変換できます。

この記事では、それぞれの関数の使い方や組み合わせ方、桁数の指定方法、負の数を扱うときの注意点などを、初めての人にも分かりやすく解説していきます。

Excelで使える変換関数の一覧

Excelで2進数・10進数・16進数を変換する関数は、「どこから」「どこへ」という組み合わせで名前が決まっています。

たとえば`HEX2DEC`なら「16進数(HEX)を10進数(DEC)へ変換する」という意味です。

`DEC2BIN`なら「10進数を2進数へ変換する」という意味ですね。

関数名の決まりを覚えておくと、「どの関数を使えばいいんだっけ?」と迷いにくくなります。

基本的には次のような略称が使われています。

– **BIN** = 2進数(Binary)
– **DEC** = 10進数(Decimal)
– **HEX** = 16進数(Hexadecimal)

よく使う関数をまとめると、こんな感じです。

| やりたいこと | 使う関数 | 入力例 | 結果 |
|—|—|—:|—:|
| 2進数→10進数 | `BIN2DEC` | `=BIN2DEC(“11111111”)` | `255` |
| 10進数→2進数 | `DEC2BIN` | `=DEC2BIN(255)` | `11111111` |
| 16進数→10進数 | `HEX2DEC` | `=HEX2DEC(“FF”)` | `255` |
| 10進数→16進数 | `DEC2HEX` | `=DEC2HEX(255)` | `FF` |
| 2進数→16進数 | `BIN2HEX` | `=BIN2HEX(“11111111”)` | `FF` |
| 16進数→2進数 | `HEX2BIN` | `=HEX2BIN(“FF”)` | `11111111` |

ここで注意したいのが、2進数や16進数は**文字列として扱う**ことが多いという点です。

たとえば`BIN2DEC(“1111”)`のようにダブルクォーテーションで囲んでも、`BIN2DEC(1111)`のように数値として入力しても動くことがあります。

でも、先頭に0がつく値を扱うときは文字列として入力した方が安全です。

というのも、Excelでは数値として入力した先頭の0が消えてしまうことがあるからです。

たとえば`00001111`のように桁数に意味がある場合は、必ず`”00001111″`と文字列で入力しましょう。

通信データやビット列を扱うときは特に、見た目の桁数が重要になることが多いので注意してください。

10進数と2進数を変換する(DEC2BIN・BIN2DEC)

10進数を2進数に変換する(DEC2BIN)

10進数を2進数へ変換するには`DEC2BIN`関数を使います。

書き方はとてもシンプルで、`=DEC2BIN(数値)`です。

たとえば`=DEC2BIN(10)`と入力すると、結果は`1010`になります。

2進数は0と1だけで数を表す形式で、コンピューターの内部処理やビット演算を理解するときに欠かせません。

Excelで変換できるようにしておくと、普段使っている10進数の値がビット列でどう表現されるのか、すぐに確認できて便利です。

桁数を指定する方法

`DEC2BIN`には、桁数を指定できる第2引数があります。

たとえば`=DEC2BIN(10,8)`と入力すると、結果は`00001010`になります。

これは8桁になるように左側に0を補う指定です。

桁数をそろえたいとき、たとえば8ビットや16ビットのような固定長データとして見たいときに便利です。

ただし、指定した桁数よりも変換結果の桁数が長い場合は`#NUM!`エラーになるので注意してください。

たとえば4桁で表せない数を無理に4桁指定すると、Excelはエラーを返します。

2進数を10進数に変換する(BIN2DEC)

逆に、2進数を10進数へ変換するには`BIN2DEC`関数を使います。

`=BIN2DEC(“1010”)`と入力すると、結果は`10`です。

`=BIN2DEC(“11111111”)`なら`255`になります。

2進数を読むときは、右端から順に1、2、4、8、16、32、64、128…という重みがあると考えると分かりやすいです。

たとえば`11111111`は128+64+32+16+8+4+2+1なので255になる、という仕組みです。

負の数の扱いに注意

ここで注意したいのが、Excelの`BIN2DEC`や`DEC2BIN`には**扱える範囲がある**ということです。

`DEC2BIN`で変換できる10進数は、通常は**-512から511まで**です。

また、`BIN2DEC`で扱う2進数は最大10桁として解釈され、10桁目が符号を表す場合があります。

たとえば`=BIN2DEC(“1111111111”)`と入力すると、1023ではなく`-1`になります。

これは「2の補数」という方式で負の数を表しているためです。

初心者がつまずきやすいポイントなので、「10桁の2進数は負の数として解釈されることがある」と覚えておくと、実際に使うときに混乱せずに済みます。

10進数と16進数を変換する(DEC2HEX・HEX2DEC)

10進数を16進数に変換する(DEC2HEX)

10進数を16進数に変換するには`DEC2HEX`関数を使います。

基本の書き方は`=DEC2HEX(数値)`です。

たとえば`=DEC2HEX(255)`と入力すると`FF`が返ってきます。

16進数では0から9に加えて、A、B、C、D、E、Fを使います。

Aは10、Bは11、Fは15を表します。

16進数は2進数よりも短い桁数で大きな値を表せるので、プログラミング、メモリアドレス、カラーコード、文字コードなどでよく使われています。

桁数を指定する方法

`DEC2HEX`にも桁数指定の第2引数があります。

たとえば`=DEC2HEX(255,4)`と入力すると、結果は`00FF`になります。

先頭に0を補って桁数をそろえられるので、固定長のコードやログデータを扱うときに便利です。

Webカラーのように桁数が決まっている表記では、桁数をそろえることで見た目がきれいに整います。

ただし、指定した桁数に収まらない場合はエラーになる点は`DEC2BIN`と同じです。

16進数を10進数に変換する(HEX2DEC)

16進数を10進数へ変換するには`HEX2DEC`関数を使います。

`=HEX2DEC(“FF”)`と入力すると`255`が返ってきます。

小文字の`ff`でも多くの場合は同じように解釈されますが、表記を統一するなら大文字で管理すると見やすくなります。

16進数の文字列を扱うときも、先頭に0を含む可能性があるならダブルクォーテーションで囲むか、セルの表示形式を「文字列」にしておくと安心です。

負の数の扱いに注意

`HEX2DEC`でも負の数の扱いには注意が必要です。

Excelでは10桁の16進数を2の補数表現として解釈するため、`=HEX2DEC(“FFFFFFFFFF”)`は`-1`になります。

これは40ビットの符号付き整数として扱われるためです。

一方、`=HEX2DEC(“FF”)`は単純に255として変換されます。

同じ`F`を含む値でも、桁数によって意味が変わることがあるので、負の数を含むデータや機器ログを扱う場合は、元データが何ビット幅で表現されているかを確認することが大切です。

2進数と16進数を直接変換する

直接変換する関数

2進数と16進数を相互変換したい場合、Excelでは`BIN2HEX`と`HEX2BIN`を使うのが一番簡単です。

たとえば`=BIN2HEX(“11111111”)`と入力すれば`FF`になりますし、`=HEX2BIN(“FF”)`と入力すれば`11111111`になります。

2進数4桁は16進数1桁に対応するので、2進数と16進数は相性のいい表記です。

`1111`が`F`、`1010`が`A`のように対応関係を覚えておくと、変換結果が正しいかどうかも確認しやすくなります。

10進数を経由する方法もある

Excelでは、2進数から16進数へ変換するときに一度10進数を経由する書き方もできます。

たとえば`=DEC2HEX(BIN2DEC(“11111111”))`と書くと、結果は`FF`です。

逆に16進数から2進数へ変換するなら`=DEC2BIN(HEX2DEC(“FF”))`で`11111111`になります。

ただし、直接変換できる`BIN2HEX`や`HEX2BIN`が使える環境では、そちらを使った方が式が短くて、意図も分かりやすいです。

中間で10進数を経由する方法は、変換の仕組みを理解したいときや、途中の10進数も別のセルで確認したいときに向いています。

実務でよくある失敗

実務でよくある失敗は、**セルの自動変換によって意図しない値になってしまう**ことです。

たとえば2進数の`00101010`を数値として入力すると、Excel上では`101010`のように先頭の0が消えてしまうことがあります。

また、16進数の値にAからFが含まれる場合は文字列として扱われますが、数値だけで構成される16進数、たとえば`0012`のような値は先頭の0が消える可能性があります。

こうしたデータを扱うときは、**入力前にセルの表示形式を「文字列」にする**か、**先頭にアポストロフィ(‘)を付けて入力する**と安全です。

エラーが出たときの対処法

エラーが出た場合は、まず入力値、桁数、範囲を確認しましょう。

– **`#NUM!`エラー**:変換できる範囲を超えている、または指定した桁数に収まらないときに出やすいエラーです。

– **`#VALUE!`エラー**:2進数に2が含まれている、16進数にGやZのような使えない文字が含まれているなど、入力形式が不正なときに発生します。

特に外部システムから取り込んだデータでは、見えない空白や改行が混じっていることもあります。

その場合は`TRIM`関数や`CLEAN`関数で不要な文字を除去してから変換すると、原因を見つけやすくなります。

まとめ

Excelの基数変換関数は、単に答えを出すだけでなく、**データの意味を確認するため**にも役立ちます。

`DEC2BIN`や`DEC2HEX`で数値をビット列やコード表記に変換して、`BIN2DEC`や`HEX2DEC`で元の数値へ戻して検算すれば、入力ミスや桁ずれを見つけやすくなります。

まずは`255`、`10`、`15`など分かりやすい値で試してみて、慣れてきたら桁数指定や負の数の表現も確認してみるといいでしょう。

関数名の意味と制限を押さえておけば、Excel上での基数変換は十分に実用的な作業として活用できますよ。

広告