ExcelのBASE関数の使い方|10進数を2進数・16進数に変換する方法

スポンサーリンク

「10進数を2進数や16進数に変換したいけど、手計算はちょっと面倒…」

Excelには、そんな基数変換を一発で行えるBASE関数があります。2進数・8進数・16進数はもちろん、最大36進数まで自由に変換できる便利な関数です。

この記事では、BASE関数の基本的な使い方からエラー対処法、似た関数との違いまでまとめて解説します。

BASE関数とは

BASE関数は、10進数の数値を指定した基数(2進数、8進数、16進数など)のテキストに変換する関数です。

読み方は「ベース」です。「基数」「基底」を意味する英語の “base” が由来です。

BASE関数はExcel 2013以降およびMicrosoft 365で使用できます。

基数とは?

基数とは「何進法で数を表すか」の基準になる数のことです。普段使っている10進法は基数が10、コンピュータでおなじみの2進法は基数が2です。

BASE関数の入出力イメージ

入力(10進数)基数出力
1021010
25516FF
1008144

ポイントは、BASE関数の戻り値は文字列であることです。数値ではないため、そのまま計算には使えません。

BASE関数の書き方(構文と引数)

基本構文

=BASE(数値, 基数, [最小長])

引数の説明

引数必須/省略可説明
数値必須変換したい10進数の整数(0以上、2^53未満)
基数必須変換先の基数(2以上36以下の整数)
最小長省略可結果の最小桁数(0以上255以下)。桁数が足りない場合、先頭を0で埋める

BASE関数の基本的な使い方

BASE関数で最もよく使うのは、2進数・8進数・16進数への変換です。それぞれの使い方を見ていきましょう。

10進数を2進数に変換する

=BASE(10, 2)

結果: 1010

10進数の「10」を2進数に変換すると「1010」になります。

10進数を16進数に変換する

=BASE(255, 16)

結果: FF

10進数の「255」を16進数に変換すると「FF」になります。カラーコードでよく見かける値ですね。

10進数を8進数に変換する

=BASE(100, 8)

結果: 144

10進数の「100」を8進数に変換すると「144」になります。

最小長を指定して桁数を揃える

第3引数の「最小長」を使うと、結果の桁数を揃えることができます。

=BASE(10, 2, 8)

結果: 00001010

2進数に変換した結果が8桁未満の場合、先頭を0で埋めて8桁に揃えてくれます。データを一覧で並べるときに桁数がバラバラだと見づらいので、この機能は便利です。

BASE関数の実践的な使い方・応用例

カラーコード(RGB値)を16進数に変換する

Webデザインやレポート作成で、RGB値を16進数カラーコードに変換したい場面があります。

="#" & BASE(A2, 16, 2) & BASE(B2, 16, 2) & BASE(C2, 16, 2)

A2に「255」、B2に「128」、C2に「0」が入っている場合、結果は #FF8000 になります。最小長を2に指定することで、必ず2桁の16進数になるのがポイントです。

IPアドレスの各オクテットを2進数で表示する

ネットワーク管理で、IPアドレスを2進数に変換したい場面があります。IPアドレスの各オクテット(0〜255の数値)を8桁の2進数に変換してみましょう。

たとえばIPアドレス「192.168.1.1」の場合、セルA2〜D2に各オクテットが入っているとします。

=BASE(A2, 2, 8) & "." & BASE(B2, 2, 8) & "." & BASE(C2, 2, 8) & "." & BASE(D2, 2, 8)

結果: 11000000.10101000.00000001.00000001

最小長を8に指定することで、各オクテットが必ず8桁になります。サブネットマスクの計算やネットワークアドレスの確認に便利です。

DECIMAL関数でBASE関数の結果を元に戻す

BASE関数で変換した値を10進数に戻したいときは、DECIMAL関数を使います。BASE関数とDECIMAL関数はちょうど逆の関係です。

=BASE(255, 16)

結果: FF

=DECIMAL("FF", 16)

結果: 255

BASE関数で変換した結果をそのまま渡せるので、セル参照で組み合わせるのも簡単です。

=DECIMAL(BASE(A2, 16), 16)

この数式はA2の値を16進数に変換した後、10進数に戻します。結果は元の値と同じになります。変換結果の検算に使えるテクニックです。

36進数で短縮コードを生成する

BASE関数は最大36進数まで対応しています。36進数では0-9とA-Zの36文字を使うため、大きな数値を短い文字列で表現できます。

=BASE(1000000, 36)

結果: LFLS

100万という大きな数値が、たった4文字で表現できます。管理番号やIDの短縮に活用できるテクニックです。

BASE関数とDEC2BIN・DEC2HEXとの違い

Excelには基数変換ができる関数が他にもあります。BASE関数との違いを整理しましょう。

項目BASE関数DEC2BIN / DEC2OCT / DEC2HEX
対応する基数2〜36(自由に指定)2 / 8 / 16(固定)
入力値の範囲0〜2^53未満-512〜511(DEC2BIN)
負の数の対応非対応(0以上のみ)対応(2の補数表現)
戻り値文字列文字列

使い分けのポイント: 2進数・8進数・16進数への変換で、負の数も扱いたい場合はDEC2BIN系を使いましょう。任意の基数に変換したい場合や、大きな数値を扱う場合はBASE関数が適しています。

逆方向の変換(2進数や16進数を10進数に戻す)には、DECIMAL関数やBIN2DEC関数HEX2DEC関数を使います。特にDECIMAL関数はBASE関数と同じく任意の基数に対応しているため、BASE関数の逆変換に最適です。

よくあるエラーと対処法

BASE関数で表示されるエラーと、その原因・対処法をまとめました。

エラー原因対処法
#NUM!数値が0未満、または2^53以上0以上2^53未満の整数を指定する
#NUM!基数が2未満、または36超2以上36以下の整数を指定する
#NUM!最小長が0未満、または255超0以上255以下の整数を指定する
#VALUE!引数に文字列を指定した数値を指定する。セル参照の場合は参照先を確認する
#NAME?関数名のスペルミス「BASE」の綴りを確認する

小数を渡した場合は?

BASE関数に小数(例: 10.7)を渡した場合、小数部分は切り捨てられて整数部のみが変換されます。=BASE(10.7, 2) の結果は =BASE(10, 2) と同じ「1010」です。エラーにはなりませんが、意図しない切り捨てに注意してください。

エラーが出たときは

まずは引数の値が範囲内に収まっているかを確認してみてください。BASE関数のエラーは、ほとんどが引数の範囲外指定が原因です。

まとめ

BASE関数は、10進数を任意の基数のテキストに変換する関数です。

  • 構文: =BASE(数値, 基数, [最小長])
  • 基数: 2〜36まで自由に指定できる
  • 最小長: 桁数を揃えたいときに便利(先頭を0で埋める)
  • DEC2BIN系との違い: BASE関数は任意の基数に対応するが、負の数は扱えない
  • 逆変換: DECIMAL関数でBASE関数の結果を10進数に戻せる

カラーコードの生成やIPアドレスの2進数変換など、覚えておくと意外と使いどころのある関数です。

基数変換に関連する関数も合わせてチェックしてみてください。

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