スプレッドシートのBASE関数の使い方|10進数をN進数に変換

スポンサーリンク

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

データ処理やIT系の業務で、N進数への変換が必要になる場面ってありますよね。

割り算を何度も繰り返して余りを並べる作業は、時間がかかるしミスも出やすいです。

そんなときに活躍するのが、スプレッドシートのBASE関数です。10進数の数値と変換先の基数を指定するだけで、好きなN進数に一発変換できます。

この記事では基本の書き方から、ゼロ埋め、実務での活用パターン、DECIMAL関数との使い分けまで紹介します。

スプレッドシートのBASE関数とは?

BASE関数(読み方: ベース関数)は、10進数の数値を指定した基数(N進数)の文字列に変換する関数です。

名前の「BASE」は「基数」を意味する英語からきています。「base 2(2進数)」「base 16(16進数)」のように使われる用語ですね。

たとえば =BASE(255, 16) と書くと「FF」が返ります。10進数の255を16進数に変換した結果です。

BASE関数にできることをまとめると、次のとおりです。

  • 10進数を2進数・8進数・16進数に変換する
  • 2〜36進数まで好きな基数を指定できる
  • 桁数を指定してゼロ埋め(先頭に0を付ける)できる
  • DECIMAL関数と組み合わせて検算できる

NOTE

BASE関数はGoogleスプレッドシートの全バージョンで使えます。Excelにも同名の関数があり、互換性は完全です。

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

基本構文

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

カッコの中に変換元の10進数と、変換先の基数を指定します。

引数の説明

引数必須/任意説明
必須変換元の10進数(0以上の整数)
基数必須変換先の基数(2〜36の整数)
最小桁数任意結果の最小桁数。足りない分はゼロ埋めされる

値に小数を指定すると、小数部分は切り捨てられます。基数は2〜36の範囲で指定できますよ。36進数では0〜9とA〜Zの36文字が使われます。

BASE関数の基本的な使い方

01 data sample table

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

もっともシンプルな使い方です。

=BASE(10, 2)

結果は「1010」です。10進数の10を2進数で表すと1010になります。

02 formula base binary
=BASE(255, 2)

結果は「11111111」です。255は2進数で8桁のオール1になりますね。

03 result base binary

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

カラーコードやメモリアドレスで使われる16進数への変換です。

=BASE(255, 16)

結果は「FF」です。Webデザインで見かける白色「#FFFFFF」の各色成分が、この255 = FFの関係ですね。

04 result base hex
=BASE(4095, 16)

結果は「FFF」です。16進数では10〜15をA〜Fの文字で表します。

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

8進数はLinuxのファイルパーミッション(権限設定)などで使われます。

=BASE(493, 8)

結果は「755」です。Linuxで「chmod 755」として使われる、あのパーミッション値ですね。

=BASE(420, 8)

結果は「644」です。こちらも「chmod 644」でよく見る値です。

セル参照を使う

A1に「100」が入っているとします。

=BASE(A1, 16)

結果は「64」です。セル参照を使えば、値を変えるだけで結果が自動更新されますよ。

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

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

3つ目の引数「最小桁数」を使うと、結果を指定した桁数に揃えられます。

=BASE(5, 2, 8)

結果は「00000101」です。5の2進数表現は「101」ですが、8桁に満たない分がゼロ埋めされます。

一覧表でビット列を揃えたいときに便利です。

!_images/spreadsheet-base-function/05_result_base-zeropad.png

=BASE(10, 16, 4)

結果は「000A」です。16進数のAを4桁に揃えています。

TIP

ゼロ埋めは見た目を揃えるだけで、値そのものは変わりません。データ一覧をきれいに見せたいときに活用してみてください。

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

色のRGB値(0〜255)を16進数のカラーコードに変換できます。

A1に「255」(赤)、B1に「128」(緑)、C1に「0」(橙)が入っているとします。

=BASE(A1,16,2) & BASE(B1,16,2) & BASE(C1,16,2)

結果は「FF8000」です。各色を2桁の16進数に変換して&演算子で連結しています。&演算子はCONCATENATE関数と同じ文字列結合です。

ゼロ埋めを2桁に指定しているのがポイントです。ゼロ埋めなしだと「0」が1桁になり、6桁のカラーコードが崩れてしまいます。

06 result base rgb

IPアドレスの各オクテットを2進数に変換する

ネットワーク管理でIPアドレスを2進数に変換する場面があります。

A1に「192」、B1に「168」、C1に「1」、D1に「1」が入っているとします。

=BASE(A1,2,8)&"."&BASE(B1,2,8)&"."&BASE(C1,2,8)&"."&BASE(D1,2,8)

結果は「11000000.10101000.00000001.00000001」です。サブネットマスクの計算に使えますよ。

DECIMAL関数と組み合わせて検算する

BASE関数で変換した結果をDECIMAL関数で元に戻せば、変換が正しいか検算できます。

=DECIMAL(BASE(255, 16), 16)

結果は「255」です。元の値と一致すれば変換は正しいといえます。

大量のデータを変換するときに便利です。元の値と検算結果が一致しないセルがあれば、入力ミスを見つけられますね。

独自コード体系を作る

36進数まで使えるBASE関数の特性を活かして、コンパクトなIDコードを生成できます。

=BASE(1000000, 36)

結果は「LFLS」です。100万を4桁で表現できるので、商品コードや管理番号をコンパクトにまとめたいときに使えますよ。

DECIMAL関数との違い・使い分け

関数動作用途
BASE10進数 → N進数に変換2進数・16進数などへの変換
DECIMALN進数 → 10進数に変換16進数カラーコードの数値化など

逆関数の関係

BASE関数とDECIMAL関数は逆関数の関係です。BASEで変換した結果をDECIMALに渡すと元の値に戻ります。

BASE(100, 2) → "1100100"
DECIMAL("1100100", 2) → 100

つまり「10進数 → N進数」がBASE、「N進数 → 10進数」がDECIMALです。

使い分けの目安

BASE関数を使う場面:

  • 10進数の数値を2進数・8進数・16進数で表示したい
  • カラーコードを生成したい
  • ビット列やIPアドレスの2進数表記を作成したい

DECIMAL関数を使う場面:

  • 16進数のカラーコードを数値に変換したい
  • 2進数や8進数のデータを10進数で計算したい
  • 他システムから受け取ったN進数データを数値化したい

TIP

BASEは「10進数から出る」変換、DECIMALは「10進数に戻る」変換と覚えるとわかりやすいです。DECIMAL関数の詳しい使い方は「スプレッドシートのDECIMAL関数の使い方」で解説しています。

よくあるエラーと対処法

BASE関数で発生しやすいエラーをまとめました。

エラー原因対処法
#NUM!値が負の数(例: BASE(-5, 2))0以上の整数を指定する
#NUM!基数が範囲外(2未満または36超)基数は2〜36の整数にする
#NUM!最小桁数が負の数0以上の整数を指定する
#VALUE!引数に文字列が入っているセル参照先が数値かどうか確認する
#ERROR!構文ミス(カッコ忘れ等)数式の入力内容を見直す

負の数を指定したとき

もっとも多いエラーです。BASE関数は0以上の整数でしか使えません。

=BASE(-10, 2)

この数式は#NUM!エラーになります。ABS関数で絶対値に変換すれば回避できますよ。

=BASE(ABS(A1), 2)

基数が範囲外のとき

基数は2〜36の整数を指定する必要があります。

=BASE(10, 1)

この数式は#NUM!エラーになります。1進数は存在しないため、2以上を指定してください。

戻り値が文字列であることに注意

BASE関数の結果は数値ではなく文字列です。そのため、結果に対して算術演算はできません。

=BASE(10, 2) + 1

この数式は#VALUE!エラーになります。計算が必要な場合は、先にDECIMAL関数で10進数に戻してください。

Excelとの違い

BASE関数はExcelとGoogleスプレッドシートで完全に同じ動作です。

項目ExcelGoogleスプレッドシート
構文=BASE(数値, 基数, [最小長])=BASE(値, 基数, [最小桁数])
動作10進数をN進数に変換10進数をN進数に変換
基数の範囲2〜362〜36
エラー時#NUM! / #VALUE!#NUM! / #VALUE!

引数名の表記が若干異なるだけで、機能は完全に同じです。ExcelでもBASE関数はそのまま使えますよ。

まとめ

BASE関数は、10進数の数値を指定した基数(N進数)の文字列に変換する関数です。

ポイントを整理します。

  • 構文は =BASE(値, 基数, [最小桁数]) で、2〜36進数に変換できる
  • 2進数・8進数・16進数への変換がよく使われる
  • 3つ目の引数で桁数を指定すれば、ゼロ埋めで桁を揃えられる
  • 戻り値は文字列型なので、算術演算にはDECIMAL関数で10進数に戻してから使う
  • BASE関数とDECIMAL関数は逆関数の関係で、セットで覚えておくと便利
  • カラーコード生成やIPアドレスの2進数変換など、IT系業務で活躍する
  • 同じ数学系の関数としてGCD関数(最大公約数)LCM関数(最小公倍数)、べき乗計算のPOWER関数もあわせて覚えておくと便利

まずは =BASE(255, 16) で「255を16進数に → FF」から試してみてください。

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