=BASE(値,底,[最小文字数])
BASE(ベース)関数は、10進数を別の底のテキスト表現に変換する関数です。
BASE関数の使い方. 構文
BASE関数の構文は以下のとおりです。
=BASE(値,底,[最小文字数])
BASE関数の構文内訳
引数 | 説明 | 注釈 |
---|---|---|
値 | 別の底に変換する数値を指定します。 | かならず指定。ゼロ以上の整数を指定してください。(0~253の範囲内で指定) |
底 | 数値の変換後の底(基数)を指定します。 | かならず指定。2~36の整数を指定してください。 |
最小文字数 | 返されるテキストの最小文字数を指定します。 | [省略可] - 最小文字数の値が結果の有効桁数より大きい場合、合計桁数が有効桁の値に達するまで結果の左側にゼロ(0)が埋め込まれます。 |
BASE関数を使うときの注意点
注意1. 値・底の最大値を逸脱するとエラーになる
値・底の最大値を逸脱する場合、BASE関数は#NUM!エラーを返します。
以下にサンプルを記載します。
10進数 | Sample式 | 結果 |
---|---|---|
1 | =BASE(A2,500) | #NUM! |
OYAKUN
底の最大値は36ですが、500を指定した結果#NUM!を返したことが分かります。
注意2. 値が数値以外だとエラーになる
BASE関数では、値が数値以外である場合、#VALUE! が返されます。
以下にサンプルを記載します。
10進数 | Sample式 | 結果 |
---|---|---|
一 | =BASE(A2,2) | #VALUE! |
OYAKUN
10進数の値を漢数字の一とした場合、底の値が適正でもエラー#VALUE!が返されました。
注意3. 整数以外を引数にすると小数点以下が切捨てに
BASE関数では整数以外の任意の数値を引数にすると、小数点以下が切捨てられます。
数値 | 底 | 数式 | 結果 |
---|---|---|---|
20 | 5.5 | =BASE(A2, B2) | 40 |
OYAKUN
底の値が5.5となっていても、5として小数点以下を切捨てられていることが分かりますね
BASE関数の使い方. Excelとスプシの違い
BASE関数は、ExcelとGoogleスプレッドシートで使い方に相違はありません。
ただし、最小文字数の引数の最大値は、
- Excelは255まで
- Googleは記載なし
となっています。
OYAKUN
試していないのですが、もしかしたらGoogleスプレッドシートでは最大値の制限がないのかもです。ただ、最小文字数に255以上も必要なのか謎ですが...
BASE関数の実行サンプル
BASE関数を実行するサンプル。
10進数 | 2進数 | 16進数 | 32進数 |
---|---|---|---|
1 | |||
2 | |||
3 | |||
4 | |||
5 | |||
10 | |||
50 | |||
100 |
各進数をBASE関数で算出した結果。
10進数 | 2進数 | 16進数 | 32進数 |
---|---|---|---|
1 | 1 | 1 | 1 |
2 | 10 | 2 | 2 |
3 | 11 | 3 | 3 |
4 | 100 | 4 | 4 |
5 | 101 | 5 | 5 |
10 | 1010 | A | A |
50 | 110010 | 32 | 1I |
100 | 1100100 | 64 | 34 |
GIFで↓
BASE関数の実行サンプル結果
画像でBASE実行サンプル結果を確認↓
BASE関数 × GASのサンプル
BASE関数をGASで利用する際の、かんたんなサンプルを作成してみました。
実装する表のサンプル。
数値 | 底 | 数値は(A2の値)、進数は(B2の値)の算出結果↓ |
実装するGAS
function BASE() {
var ss,sht,lastrw,val01,val02
ss = SpreadsheetApp.getActiveSpreadsheet();
sht = ss.getActiveSheet();
lastrw = sht.getLastRow();
Logger.log(lastrw);
val01 = Browser.inputBox('進数に変換したい数値を入力',Browser.Buttons.OK_CANCEL);
val02 = Browser.inputBox('2~36 の整数を指定',Browser.Buttons.OK_CANCEL);
if(val01 == "cancel"|| val02 == "cancel"){
Browser.msgBox("処理を中止しました");
return;
} else {
sht.getRange("A2").setValue(val01);
sht.getRange("B2").setValue(val02);
sht.getRange("C1").setValue("数値は"+val01+"、進数は"+val02+"の算出結果↓");
}
// BASE関数をC2セルにセット
sht.getRange("C2").setFormula('=BASE('+val01+','+val02+')');
}
実行結果をGIFで
OYAKUN
inputBoxに変換対象の数値と2~36の整数を入力することで、任意の進数へ置換することができます。(入力しなければキャンセルに)
BASE関数の使い方 まとめ
- 値には0以上の整数を指定する
- 底(基数)には2~36の整数を指定する
- 小数や漢数字は使わない
といった感じですね。
BASE関数を使うことで、n進数の値を算出することがとても容易になります。
OYAKUN
進数の表現はあまり聞き慣れないかもですが、業務次第ではかなり重宝する関数ではないでしょうか。
前の記事:AVERAGEIFS関数の使い方|複数条件の範囲の平均値を求める
関連記事:AVERAGEIF関数の使い方|基準に応じた範囲の平均値を返す
関数:AVEDEV関数の使い方|平均値からデータ偏差の平均を求める
関数:ASC関数の使い方|全角または半角文字に変換する