ExcelのBIN2HEX関数の使い方|2進数を16進数に変換する方法とエラー対策

スポンサーリンク

「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桁
11111111
→ F→ F

合わせると「FF」になります。

セル参照を使うこともできます。A1に「101011」が入っているとします。

=BIN2HEX(A1)

結果は「2B」です。参照先のセルの値を変えれば、結果も自動で更新されます。

よく使う変換例をまとめておきます。

入力(2進数)出力(16進数)10進数での値
111
1010A10
1111F15
100001016
11111111FF255
01111111111FF511

桁数を指定して変換する

桁数を指定すると、結果の表示を揃えられます。

=BIN2HEX(1010, 4)

結果は「000A」です。4桁になるように先頭に「0」が追加されます。

桁数指定はデータの一覧表を作るときに便利です。桁数がバラバラだと見づらいですよね。

数式結果説明
=BIN2HEX(1, 2)012桁に揃える
=BIN2HEX(1010, 4)000A4桁に揃える
=BIN2HEX(11111111, 4)00FF4桁に揃える

負の数(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進数での値
1111111111FFFFFFFFFF-1
1111111110FFFFFFFFFE-2
1111110000FFFFFFFFF0-16
1000000000FFFFFFFE00-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関数です。

関数変換方向入力出力
BIN2HEX2進数 → 16進数0と1の数値(最大10桁)16進数(最大10桁)
HEX2BIN16進数 → 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つです。

関数名変換方向
BIN2DEC2進数 → 10進数
BIN2OCT2進数 → 8進数
BIN2HEX ※この記事2進数 → 16進数
OCT2BIN8進数 → 2進数
OCT2DEC8進数 → 10進数
OCT2HEX8進数 → 16進数
DEC2BIN10進数 → 2進数
DEC2OCT10進数 → 8進数
DEC2HEX10進数 → 16進数
HEX2BIN16進数 → 2進数
HEX2OCT16進数 → 8進数
HEX2DEC16進数 → 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」が返ることを試してみてください。

タイトルとURLをコピーしました