ExcelのHEX2BIN関数|16進数を2進数に変換する方法

スポンサーリンク

「16進数を2進数に変換したいけど、手計算だと面倒…」

Excelには、この変換を一発で行える関数があります。それがHEX2BIN関数です。

ネットワーク設定やビットフラグの確認など、16進数を2進数に変換する場面は意外とあります。でも1桁ずつ変換するのは手間がかかりますよね。

この記事では、ExcelのHEX2BIN関数の基本からエラー対策まで解説します。

ExcelのHEX2BIN関数とは?基本構文と対応バージョン

HEX2BIN関数は、16進数を2進数に変換するExcelの関数です。

16進数は「0〜9」と「A〜F」の16種類の文字で数を表します。一方、2進数は「0」と「1」だけで数を表します。

16進数の1桁は2進数の4桁に対応します。たとえば16進数の「A」は2進数で「1010」です。HEX2BIN関数を使えば、この変換を自動で行えますよ。

読み方と意味

読み方は「ヘックス・ツー・バイナリ」です。

  • HEX = Hexadecimal(ヘクサデシマル、16進数)
  • 2 = to(〜へ)
  • BIN = Binary(バイナリ、2進数)

つまり「16進数から2進数へ」という意味です。関数名がそのまま機能を表しているので覚えやすいですよ。

どんなときに使うか

HEX2BIN関数は次のような場面で活躍します。

  • 16進数のビットフラグを2進数に展開してON/OFFを確認したいとき
  • ネットワークアドレスやサブネットマスクのビット構成を調べたいとき
  • レジスタ値やメモリダンプの内容をビット単位で解析したいとき
  • 情報処理試験の勉強で進数変換を練習したいとき

構文と引数の詳細

基本構文は次のとおりです。

=HEX2BIN(数値, [桁数])

引数は2つあります。必須なのは「数値」だけです。

引数必須/任意説明
数値必須2進数に変換したい16進数
桁数任意結果の文字数を指定。先頭をゼロで埋める

引数1:数値(必須)

2進数に変換したい16進数を指定します。

直接値を入力してもセル参照でもOKです。指定できるのは10文字までです。

大文字・小文字は区別されません。「1F」でも「1f」でも同じ結果になります。

引数2:桁数(省略可)

結果の文字数(桁数)を整数で指定します。

省略すると、最小限の桁数で返されます。指定すると、先頭にゼロを埋めて桁数を揃えてくれます。

たとえば =HEX2BIN("A") は「1010」です。=HEX2BIN("A", 8) なら「00001010」になります。8ビット表記に揃えたいときに便利ですよ。

NOTE

桁数に小数を指定すると、小数点以下が切り捨てられます。0以下の値を指定すると#NUM!エラーです。

変換できる数値の範囲

HEX2BIN関数が変換できる範囲は限られています。出力が2進数10桁(10ビット)までなので、入力の16進数にも制限があります。

  • 正の最大値: 1FF(10進数で511)→ 111111111(2進数9桁)
  • 負の最小値: FFFFFFFE00(10進数で-512)→ 1000000000(2進数10桁)

10進数に換算すると -512から511 の範囲です。HEX2DEC関数のように広い範囲は扱えないので注意してください。

対応バージョン

Excel 2007以降は標準搭載されています。アドインの追加は不要です。

Excel for Microsoft 365(Windows/Mac)、Excel for the web、Excel 2024/2021/2019/2016 で動作します。Excel 2003以前を使っている場合は、分析ツールアドインの有効化が必要です。

HEX2BIN関数の基本的な使い方

シンプルな変換例(直接値を指定)

まずは関数に直接値を入力してみましょう。

=HEX2BIN("1F")

結果は「11111」です。16進数の1Fは、2進数で11111になります。

変換の仕組みを確認しておきます。16進数の各桁を4ビットの2進数に置き換えます。

16進数1F (=15)
2進数(4桁)00011111

つなげると「00011111」です。先頭のゼロを省略して「11111」になります。

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

入力(16進数)出力(2進数)備考
00 
11 
A101010進数で10
F11111桁の最大値
101000016進数の桁上がり
1F11111 
FF111111118ビットの最大値(10進数で255)
1FF111111111正の最大値(10進数で511)

セル参照で変換する

セルの値を参照して変換することもできます。A1に「1A」が入っているとします。

=HEX2BIN(A1)

結果は「11010」です。参照先の値を変えれば結果も自動で更新されます。複数の値をまとめて変換したいときに活用してみてください。

桁数を指定してゼロ埋めする

第2引数に桁数を指定すると、先頭にゼロを埋めて桁数を揃えられます。

=HEX2BIN("A", 8)

結果は「00001010」です。8桁に揃えてくれました。

桁数を指定しない場合と比べてみましょう。

数式結果備考
=HEX2BIN(“A”)1010最小桁数(4桁)
=HEX2BIN(“A”, 8)000010108桁にゼロ埋め
=HEX2BIN(“F”)1111最小桁数(4桁)
=HEX2BIN(“F”, 8)000011118桁にゼロ埋め

バイト単位(8ビット)で揃えたいときは桁数に8を指定すると見やすくなりますよ。

HEX2BIN関数の応用例

負の数を変換する(2の補数)

HEX2BIN関数に負の数を表す16進数を指定すると、2の補数(にのほすう)で表現された10桁の2進数が返ります。

2の補数とは、コンピュータが負の整数を表す仕組みです。最上位ビットが「1」なら負の数を意味します。

=HEX2BIN("FFFFFFFFFF")

結果は「1111111111」です。これは10進数の-1に相当します。

負の数の代表的な変換例です。

入力(16進数)出力(2進数)10進数備考
FFFFFFFFFF1111111111-1全桁1
FFFFFFFFFE1111111110-2 
FFFFFFFF001100000000-256 
FFFFFFFE001000000000-512負の最小値

逆変換のBIN2HEX関数を使えば元に戻せます。

=BIN2HEX(HEX2BIN("1F"))

結果は「1F」です。正しく往復変換できることを確認できますよ。

ビットフラグを確認する

HEX2BIN関数の実務での活用例として、ビットフラグの解析があります。

ビットフラグとは、2進数の各桁(ビット)にON/OFFの意味を持たせる仕組みです。設定値やステータスコードを16進数で管理しているシステムは多くあります。

たとえば、設定値が16進数「0B」だった場合を考えます。

=HEX2BIN("B", 8)

結果は「00001011」です。右から順に各ビットの意味を確認できます。

ビット位置76543210
00001011
状態OFFOFFOFFOFFONOFFONON

ビット0、ビット1、ビット3がONであることがわかります。MID関数(文字列から指定位置の文字を取り出す関数)を使えば、特定ビットの値だけを取り出すこともできますよ。

HEX2BIN関数のよくあるエラーと対処法

HEX2BIN関数で発生するエラーは主に2種類です。原因別に対処法を見ていきましょう。

#NUM!エラー:数値が範囲外

変換できる範囲はFFFFFFFFE00〜1FFです。範囲外の値を指定するとエラーになります。

=HEX2BIN("200")          → #NUM!エラー(正の最大値1FFを超過)
=HEX2BIN("FFFFFFFDFF")   → #NUM!エラー(負の最小値FFFFFFFE00を下回る)

10進数で-512〜511の範囲に収まっているか確認しましょう。HEX2DEC関数で10進数に変換すると、範囲内かどうかを確かめやすいですよ。

#NUM!エラー:桁数が結果より少ない

桁数の指定が結果に必要な桁数より少ない場合もエラーです。

=HEX2BIN("F", 2)   → #NUM!エラー

Fを2進数にすると「1111」で4桁必要です。桁数に2を指定すると足りません。桁数は結果の桁数以上を指定してください。

#VALUE!エラー:16進数ではない文字

数値に16進数として無効な文字を含めると#VALUE!エラーです。

=HEX2BIN("GG")   → #VALUE!エラー

16進数で使える文字は0〜9とA〜Fだけです。G以降のアルファベットや記号は使えません。

エラー一覧表

エラー発生条件対処法
#NUM!値がFFFFFFFFE00〜1FFの範囲外HEX2DECで10進数に変換して範囲を確認
#NUM!桁数が結果の桁数より少ない桁数を増やす(8や10を推奨)
#NUM!桁数に0以下を指定1以上の整数を指定
#VALUE!0〜9・A〜F以外の文字を含む入力値の文字を確認

IFERROR関数と組み合わせてエラーを回避する

エラーが出る可能性がある場合は、IFERROR関数(エラー時に代替値を返す関数)で囲むと安全です。

=IFERROR(HEX2BIN(A1, 8), "変換エラー")

この数式なら、A1の値が範囲外でも「変換エラー」と表示されます。大量のデータを一括変換するときに活用してみてください。

ExcelのHEX2BINと他の進数変換関数の使い分け

HEX2BIN・BIN2HEX(逆変換)の関係

HEX2BIN関数とBIN2HEX関数は逆変換の関係です。

関数変換方向入力出力
HEX2BIN16進数 → 2進数0〜Fの文字列(最大10桁)2進数テキスト(最大10桁)
BIN2HEX2進数 → 16進数0と1の文字列(最大10桁)16進数テキスト(最大10桁)

使いどころを整理します。

  • HEX2BIN: 16進数のデータをビット単位で確認したいとき
  • BIN2HEX: 2進数のビット列を16進数にまとめたいとき

HEX系関数の比較

Excelには16進数を他の進数に変換するHEX系関数が3つあります。

関数変換先出力範囲
HEX2BIN ※この記事2進数-512〜511(10桁)
HEX2OCT8進数-512〜511(10桁)
HEX2DEC10進数約-5,497億〜約5,497億

HEX2BINとHEX2OCTは出力が10桁固定のため、入力範囲が狭めです。HEX2DECは範囲が広い点が特徴ですよ。

進数変換関数の一覧

Excelの進数変換関数は全部で12種類あります。関数名の規則は「変換元 + 2 + 変換先」です。

関数名変換方向
BIN2DEC2進数 → 10進数
BIN2HEX2進数 → 16進数
BIN2OCT2進数 → 8進数
DEC2BIN10進数 → 2進数
DEC2HEX10進数 → 16進数
DEC2OCT10進数 → 8進数
HEX2BIN ※この記事16進数 → 2進数
HEX2DEC16進数 → 10進数
HEX2OCT16進数 → 8進数
OCT2BIN8進数 → 2進数
OCT2DEC8進数 → 10進数
OCT2HEX8進数 → 16進数

この命名規則を覚えておけば、どの関数を使えばいいか迷いませんよ。

まとめ

HEX2BIN関数は、16進数を2進数に変換する関数です。

ポイントを整理します。

  • 構文は =HEX2BIN(数値, [桁数]) の最大2引数
  • 変換できる範囲は10進数で-512〜511
  • 桁数を指定すると先頭をゼロで埋めて桁揃えできる
  • 負の数は10桁の2の補数で返される
  • ビットフラグの解析やネットワーク設定の確認に使える
  • #NUM!エラーは「範囲外」か「桁数不足」が原因
  • 逆変換にはBIN2HEX関数を使う
  • Excel 2007以降で標準搭載。アドイン不要

まずは =HEX2BIN("FF") で「11111111」が返ることを試してみてください。

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