「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関数の基本的な使い方

10進数を2進数に変換する
もっともシンプルな使い方です。
=BASE(10, 2)
結果は「1010」です。10進数の10を2進数で表すと1010になります。

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

10進数を16進数に変換する
カラーコードやメモリアドレスで使われる16進数への変換です。
=BASE(255, 16)
結果は「FF」です。Webデザインで見かける白色「#FFFFFF」の各色成分が、この255 = FFの関係ですね。

=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桁のカラーコードが崩れてしまいます。

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関数との違い・使い分け
| 関数 | 動作 | 用途 |
|---|---|---|
| BASE | 10進数 → N進数に変換 | 2進数・16進数などへの変換 |
| DECIMAL | N進数 → 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スプレッドシートで完全に同じ動作です。
| 項目 | Excel | Googleスプレッドシート |
|---|---|---|
| 構文 | =BASE(数値, 基数, [最小長]) | =BASE(値, 基数, [最小桁数]) |
| 動作 | 10進数をN進数に変換 | 10進数をN進数に変換 |
| 基数の範囲 | 2〜36 | 2〜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」から試してみてください。
