概要
「2 を底にした対数が欲しい」「10 以外の底で対数を取りたい」「常用対数も自然対数も、1つの関数で書きたい」
そんなときに使うのが LOG 関数(底指定対数) です。
LOG は
「任意の底を指定して、その底を何乗したらその数になるか(=対数)」
を返す関数です。
LOG10 や LN より一段“汎用的な対数関数”だと思ってください。
LOG 関数の基本
書式と意味
=LOG(数値, 底)
数値:対数を取りたい正の実数
底 :対数の底(正の実数、1 以外)
「底 を何乗したら 数値 になるか?」という“指数”が結果として返ってきます。
例:
=LOG(8,2) ' 2 を何乗したら 8? → 3
=LOG(100,10) ' 10 を何乗したら 100? → 2
=LOG(16,4) ' 4 を何乗したら 16? → 2
底を省略した場合は 10 が使われるので、LOG10 と同じ動きになります。
=LOG(100) ' 底を省略 → 10 が使われる → 2
=LOG10(100) ' 同じ結果
LOG のルールと注意点
数値は「正の数」だけ
LOG の第1引数(数値)は、必ず正の実数である必要があります。
0 以下を渡すと、対数が定義されないので #NUM! エラーになります。
=LOG(0,10) ' → #NUM!
=LOG(-5,2) ' → #NUM!
底は「正の数かつ 1 以外」
底もルールがあります。
- 正の数であること
- 1 ではないこと
これを破ると #NUM! エラーになります。
=LOG(10,1) ' 底が 1 → #NUM!
=LOG(10,0) ' 底が 0 → #NUM!
=LOG(10,-2) ' 底が負 → #NUM!
LOG と LN・LOG10 の関係
LOG10 と同じ書き方
底を 10 にすれば LOG10 と同じです。
=LOG(数値,10) ' LOG10(数値) と同じ
=LOG(数値) ' 底省略 → 10 が使われる → LOG10(数値) と同じ
LN と同じ書き方
底を e(ネイピア数)にすれば LN と同じです。
e は EXP(1) で表現できます。
=LOG(数値,EXP(1)) ' LN(数値) と同じ
=LN(数値)
「底を変えたいときは LOG」「10 固定なら LOG10」「e 固定なら LN」
という整理で覚えておくとスッキリします。
実務でのイメージと使いどころ
2 を底にした対数(情報量・ビットの感覚)
情報量やビット数の感覚では、底 2 の対数がよく出てきます。
=LOG(A2,2)
A2 に 8 が入っていれば結果は 3(2^3=8)です。
「何ビット分か」「2 の何乗か」といった感覚で使えます。
任意の底でスケールを変えたいとき
「このデータを底 3 の対数スケールで見たい」
「底を変えながら対数変換したい」
といったとき、LOG なら底を自由に指定できます。
=LOG(A2,B2)
A2:元データ
B2:底(2、3、10、e など)
底をセルで持たせておけば、あとから底を変えて試すことも簡単です。
コード例・テンプレート
底 10 の対数(常用対数)
=LOG(A2) ' 底省略 → 10
=LOG(A2,10) ' 明示的に 10 を指定
底 e の対数(自然対数)
=LOG(A2,EXP(1))
=LN(A2)
底 2 の対数(ビット数のイメージ)
=LOG(A2,2)
底をセルで指定する汎用形
=LOG(A2,B2) ' A2 の B2 を底とする対数
例題
問題1
A2 に「8」が入っています。
この値の「2 を底とする対数」を求める式を書いてください。
=LOG(A2,2)
(結果は 3 になります。2^3=8)
問題2
A2 に「100」が入っています。
この値の「10 を底とする対数」を LOG 関数だけで求める式を書いてください。
=LOG(A2)
(または =LOG(A2,10)。結果は 2 です。)
問題3
A2 に「正の数値」が入っています。
この値の自然対数を LOG 関数だけを使って求める式を書いてください。
=LOG(A2,EXP(1))
(LN(A2) と同じ結果になります。)
問題4
A2 に「正の数値」、B2 に「底」が入っています。
「A2 の B2 を底とする対数」を求める汎用的な式を書いてください。
=LOG(A2,B2)
問題5
A2 に「0」または負の数が入っています。=LOG(A2,10) を計算するとどうなるか、エラーの種類を答えてください。
0 以下の数値に対して LOG を計算すると、対数が定義されないため #NUM! エラーになります。
