「2進数のデータを16進数に直したいけど、手計算は面倒…」
Excelで2進数を扱う機会は意外とあります。カラーコードやメモリアドレス、MACアドレスなど、16進数が必要な場面もさまざまです。
でも2進数から16進数への手計算は、桁数が多いと大変ですよね。4桁ずつ区切って変換する作業は、ミスの元です。
そんなときに便利なのがBIN2HEX関数です。2進数を入力するだけで、16進数に一発変換してくれます。
この記事では、BIN2HEX関数の基本の使い方からエラー対策、HEX2BIN関数との違いまで解説します。
BIN2HEX関数とは
BIN2HEX関数は、2進数を16進数に変換するExcelの関数です。
2進数は「0」と「1」だけで数を表す方法です。コンピュータの内部ではすべてのデータが2進数で処理されています。
16進数は0から9の数字とAからFの文字を使って数を表す方法です。カラーコード(#FF5733など)やメモリアドレスでよく使われます。
BIN2HEX関数を使えば、この変換を自動で行えます。
読み方と名前の由来
読み方は「ビン・ツー・ヘックス」です。
- BIN = Binary(バイナリ、2進数)
- 2 = to(〜へ)
- HEX = Hexadecimal(ヘクサデシマル、16進数)
つまり「2進数から16進数へ」という意味です。関数名がそのまま機能を表しています。
対応バージョン
Excel 2007以降は標準搭載されています。アドインの追加は不要です。
| バージョン | 対応状況 |
|---|---|
| Excel 2007以降 | 標準搭載(そのまま使える) |
| Excel 2003以前 | 分析ツールアドインの有効化が必要 |
| Microsoft 365 | 対応(Windows / Mac / Web) |
NOTE
現在使われているほとんどのExcelで、追加設定なしで利用できます。
BIN2HEX関数の書式と引数
基本構文は次のとおりです。
=BIN2HEX(数値, [桁数])
引数は「数値」と「桁数」の2つです。桁数は省略できます。
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 数値 | 必須 | 16進数に変換したい2進数。0と1のみで構成された値を指定する |
| 桁数 | 任意 | 結果の文字数を指定する。省略すると最小の桁数で表示される |
引数「数値」の指定ルール
数値には、次のルールがあります。
- 使える文字は「0」と「1」のみ
- 最大10桁(10ビット)まで指定できる
- 直接入力でもセル参照でも指定できる
0と1以外の文字を含めるとエラーになります。「2」や「A」などは指定できません。
WARNING
数値を直接入力するときは、文字列として扱われます。セルに入力する場合は、表示形式を「文字列」にしておくと安全です。先頭の0が消えるのを防げます。
引数「桁数」の使い方
桁数を指定すると、結果の文字数を揃えられます。不足分は先頭に「0」が追加されます。
=BIN2HEX(1010, 4)
結果は「000A」です。桁数を省略した場合は「A」とだけ表示されます。
桁数の指定ルールは次のとおりです。
- 正の整数で指定する
- 小数を指定した場合は、小数点以下が切り捨てられる
- 結果の桁数より小さい値を指定するとエラーになる
- 負の数を変換した場合は、桁数に関係なく10桁で返される
TIP
データの表示形式を揃えたいときに桁数指定が役立ちます。たとえば「桁数: 2」を指定すれば、1桁の結果も「0A」のように2桁で統一できます。
変換できる範囲
BIN2HEX関数が扱える入力値の範囲は、10桁の2進数です。出力される16進数の範囲は次のとおりです。
- 正の最大値: 0111111111(2進数) → 1FF(16進数) → 10進数で511
- 負の最小値: 1000000000(2進数) → FFFFFFFE00(16進数) → 10進数で-512
10桁を超える2進数は指定できません。エラーになります。
BIN2HEX関数の使い方(基本例)
正の2進数を変換する
まずはシンプルな例からです。セルに直接入力してみましょう。
=BIN2HEX(11111111)
結果は「FF」です。2進数の11111111は、16進数のFFに対応します。
変換の仕組みを確認しておきましょう。2進数を右から4桁ずつ区切り、それぞれを16進数に変換します。
| 上位4桁 | 下位4桁 |
|---|---|
| 1111 | 1111 |
| → F | → F |
合わせると「FF」になります。
セル参照を使うこともできます。A1に「101011」が入っているとします。
=BIN2HEX(A1)
結果は「2B」です。参照先のセルの値を変えれば、結果も自動で更新されます。
よく使う変換例をまとめておきます。
| 入力(2進数) | 出力(16進数) | 10進数での値 |
|---|---|---|
| 1 | 1 | 1 |
| 1010 | A | 10 |
| 1111 | F | 15 |
| 10000 | 10 | 16 |
| 11111111 | FF | 255 |
| 0111111111 | 1FF | 511 |
桁数を指定して変換する
桁数を指定すると、結果の表示を揃えられます。
=BIN2HEX(1010, 4)
結果は「000A」です。4桁になるように先頭に「0」が追加されます。
桁数指定はデータの一覧表を作るときに便利です。桁数がバラバラだと見づらいですよね。
| 数式 | 結果 | 説明 |
|---|---|---|
| =BIN2HEX(1, 2) | 01 | 2桁に揃える |
| =BIN2HEX(1010, 4) | 000A | 4桁に揃える |
| =BIN2HEX(11111111, 4) | 00FF | 4桁に揃える |
負の数(2の補数)を変換する
BIN2HEX関数は「2の補数」表現にも対応しています。
2の補数とは、コンピュータで負の数を表す仕組みです。10桁の2進数で、最上位ビット(左端)が「1」の場合は負の数として解釈されます。
=BIN2HEX(1111111111)
結果は「FFFFFFFFFF」です。10桁すべてが1の場合、10進数では-1に対応します。
=BIN2HEX(1000000000)
結果は「FFFFFFFE00」です。これが負の最小値(-512)です。
NOTE
9桁以下で最上位が1の場合(例: 11111111)は正の数として扱われます。2の補数は10桁の場合のみ適用されます。たとえば
=BIN2HEX(11111111)は「FF」を返します。
負の数の代表的な変換例です。
| 入力(2進数) | 出力(16進数) | 10進数での値 |
|---|---|---|
| 1111111111 | FFFFFFFFFF | -1 |
| 1111111110 | FFFFFFFFFE | -2 |
| 1111110000 | FFFFFFFFF0 | -16 |
| 1000000000 | FFFFFFFE00 | -512 |
負の数の場合は、桁数を指定しても10桁で返されます。
よくあるエラーと対処法
BIN2HEX関数で発生するエラーと対処法を表にまとめました。
| エラー | 原因 | 数式の例 | 対処法 |
|---|---|---|---|
| #NUM! | 10桁を超えている | =BIN2HEX(11111111111) | 10桁以内に収める |
| #NUM! | 0と1以外の文字を含む | =BIN2HEX(102) | 0と1だけで構成する |
| #NUM! | 桁数が結果より小さい | =BIN2HEX(11111111, 1) | 桁数を大きくするか省略する |
| #VALUE! | 数値型でない引数を指定した | =BIN2HEX(“ABC”) | 数値として有効な値を指定する |
もっとも多いのは「0と1以外の文字を含む」パターンです。10進数の「102」を2進数と間違えて入力するケースですね。
=BIN2HEX(102)
この数式は#NUM!エラーになります。「2」は2進数では使えない文字です。
桁数の指定ミスにも注意しましょう。結果の桁数より小さい値を指定するとエラーです。
=BIN2HEX(11111111, 1)
結果は「FF」(2桁)ですが、桁数に1を指定しているのでエラーになります。
TIP
エラーを回避したい場合は、IFERROR関数と組み合わせましょう。
=IFERROR(BIN2HEX(A1), "変換エラー")と書けば、エラー時に任意のメッセージを表示できます。
HEX2BIN関数との使い分け(逆変換)
BIN2HEX関数の逆方向の変換を行うのがHEX2BIN関数です。
| 関数 | 変換方向 | 入力 | 出力 |
|---|---|---|---|
| BIN2HEX | 2進数 → 16進数 | 0と1の数値(最大10桁) | 16進数(最大10桁) |
| HEX2BIN | 16進数 → 2進数 | 16進数の値 | 0と1の数値(最大10桁) |
それぞれの使いどころを整理します。
- BIN2HEX: 2進数のデータを16進数で表示したいとき
- HEX2BIN: 16進数の値を2進数に分解したいとき
両方を組み合わせると、変換の確認ができます。
=HEX2BIN(BIN2HEX(A1))
この数式はA1の2進数を16進数に変換し、再び2進数に戻します。元の値と一致すれば、変換が正しいことを確認できますよ。
BIN2HEX関数の実務活用パターン
カラーコードの生成
RGBの各値を2進数で管理している場合、16進数のカラーコードに変換できます。
=BIN2HEX(A1, 2) & BIN2HEX(B1, 2) & BIN2HEX(C1, 2)
A1に赤、B1に緑、C1に青の2進数を入力すれば、6桁のカラーコードが生成されます。桁数を2に指定することで、各色が必ず2桁になります。
ネットワーク設定の確認
IPアドレスやサブネットマスクの2進数表現を、16進数で確認したい場面で使えます。
=BIN2HEX(11000000, 2)
結果は「C0」です。IPアドレス192.168.1.1の先頭オクテットは10進数で192です。2進数の11000000が16進数でC0であることを確認できます。
他の進数変換関数との比較
Excelには2進数・8進数・10進数・16進数を相互変換する関数が12種類あります。BIN2HEX関数はその1つです。
| 関数名 | 変換方向 |
|---|---|
| BIN2DEC | 2進数 → 10進数 |
| BIN2OCT | 2進数 → 8進数 |
| BIN2HEX ※この記事 | 2進数 → 16進数 |
| OCT2BIN | 8進数 → 2進数 |
| OCT2DEC | 8進数 → 10進数 |
| OCT2HEX | 8進数 → 16進数 |
| DEC2BIN | 10進数 → 2進数 |
| DEC2OCT | 10進数 → 8進数 |
| DEC2HEX | 10進数 → 16進数 |
| HEX2BIN | 16進数 → 2進数 |
| HEX2OCT | 16進数 → 8進数 |
| HEX2DEC | 16進数 → 10進数 |
関数名の命名規則は「変換元の略称 + 2 + 変換先の略称」です。BIN2HEXなら「BIN(2進数) → HEX(16進数)」ですね。このルールを覚えておけば、どの関数がどの変換をするか迷いません。
まとめ
BIN2HEX関数は、2進数を16進数に変換する関数です。
ポイントを整理します。
- 構文は
=BIN2HEX(数値, [桁数])で、桁数は省略可能 - 入力は0と1だけの2進数。最大10桁まで対応
- 桁数を指定すると、先頭に0を追加して表示を揃えられる
- 10桁の場合、最上位ビットが1なら負の数(2の補数)として扱う
- #NUM!エラーの原因は「10桁超」「0と1以外の文字」「桁数不足」
- 逆変換にはHEX2BIN関数を使う
- Excel 2007以降で標準搭載。アドイン不要
まずは =BIN2HEX(11111111) で「FF」が返ることを試してみてください。
