スプレッドシートのLOG関数の使い方|指定底の対数

スポンサーリンク

スプレッドシートで「この値は○の何乗か?」を調べたいとき、どうしていますか?

対数計算は一見むずかしそうですが、LOG関数を使えば底を自由に指定して対数を求められます。

底を省略すれば常用対数(底10)になるので、手軽に使えるのもポイントです。

この記事では基本の書き方から実務での活用例まで紹介します。LN関数・LOG10関数との違いも比較表で整理しています。

LOG関数とは?

LOG関数(読み方: ログ関数)は、指定した底の対数を返す関数です。

名前は英語の「Logarithm(対数)」の略称からきています。

対数とは「底を何乗したら、その値になるか」を表す数です。たとえばLOG(100, 10)は「10を何乗したら100になるか」を計算します。答えは2です。

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

  • 指定した底の対数を計算する
  • 底を省略すると常用対数(底10)を返す
  • データの桁数やスケールの比較に使える
  • 情報量(ビット数)の計算に活用できる(底2)

NOTE

LOG関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も完全なので、ファイルのやり取りでも安心です。

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

基本構文

=LOG(値, [底])

カッコの中に「対数を求めたい正の数」と「底」を指定します。底は省略できます。

引数の説明

引数必須/任意説明
必須対数を求めたい正の数値。セル参照や数式も指定できる
任意対数の底。省略すると10になる。1以外の正の数を指定する

底を省略した場合は10(常用対数)として計算されます。底に1を指定すると#NUM!エラーになります。

LOG関数の基本的な使い方

底10の対数(常用対数)

=LOG(100, 10)

結果は「2」です。10の2乗が100なので、LOG(100, 10) = 2になります。

底を省略しても同じ結果です。

=LOG(100)

こちらも結果は「2」です。底を省略するとデフォルトで10が使われます。

底2の対数

=LOG(8, 2)

結果は「3」です。2の3乗が8なので、LOG(8, 2) = 3になります。

=LOG(16, 2)

結果は「4」です。2の4乗が16です。

いろいろな底と値の組み合わせ

数式結果意味
=LOG(1000, 10)310の3乗 = 1000
=LOG(8, 2)32の3乗 = 8
=LOG(81, 3)43の4乗 = 81
=LOG(1, 10)010の0乗 = 1
=LOG(10)110の1乗 = 10(底省略)

どの底でも「底の0乗 = 1」なので、LOG(1, 底) = 0です。

セル参照を使う

実務ではセル参照を使うケースがほとんどです。A2セルに値が入っているとします。

=LOG(A2, 10)

セル参照にしておけば、値を変更するだけで結果が自動的に更新されます。

実務でのLOG関数活用例

データの桁数を求める

「この数値は何桁か?」を調べるパターンです。

A2セルに数値が入っているとします。

=INT(LOG(A2, 10)) + 1

たとえばA2に「12345」が入っているとします。

=INT(LOG(12345, 10)) + 1

結果は「5」です。LOG(12345, 10) = 4.0915…なので、INT関数で4に切り捨て、1を足して5桁になります。

TIP

この方法はLEN関数でも代用できます。ただしLEN関数は文字列の長さを数えるので、小数点やマイナス記号も含まれます。純粋な桁数ならLOG関数のほうが正確です。

情報量(ビット数)を計算する

データ分析で「何ビットの情報量か」を求めるパターンです。

パターン数がA2に入っているとします。

=LOG(A2, 2)

たとえば8パターンの選択肢があるとします。

=LOG(8, 2)

結果は「3」です。8パターンを表現するには3ビット必要です。

対数スケールでデータを比較する

桁数がバラバラなデータを比較するとき、LOG関数で対数スケールに変換します。

売上データがA2に入っているとします。

=LOG(A2, 10)
元の値=LOG(元の値, 10)
1002
10,0004
1,000,0006

100倍ずつ差があったデータが、対数変換すると2ずつ増える均等な間隔になります。グラフの軸を対数スケールにするときの考え方と同じです。

LN関数・LOG10関数との違い・使い分け

対数を返す関数は3つあります。違いは「底」です。

関数動作引数
LOG指定した底の対数を返す自由に指定(省略時10)1〜2つ
LN自然対数を返すe(約2.718)1つ
LOG10常用対数を返す101つ

LOG関数とLN関数の使い分け

LOG関数は底を自由に指定できます。LN関数は底がe(ネイピア数)に固定されています。

=LOG(100, EXP(1))  → 4.60517...(底eの対数)
=LN(100)           → 4.60517...(同じ結果)

底をeにしたいときは、LOG関数よりもLN関数を使いましょう。数式がシンプルになります。

用途おすすめ関数
連続成長率・統計分析LN関数(底e固定)
底を自由に指定したいLOG関数
常用対数(底10)LOG10関数 or LOG関数(底省略)

LOG関数とLOG10関数の使い分け

LOG関数で底を省略すると、LOG10関数と同じ結果になります。

=LOG(1000)     → 3(底10の対数)
=LOG10(1000)   → 3(同じ結果)

どちらを使っても構いませんが、「常用対数を使う」と明示したいときはLOG10関数を使うと意図が伝わりやすくなります。

底の選び方ガイド

使う場面使う関数
10桁数の計算、pH、デシベルLOG10関数 or LOG関数
e(約2.718)連続成長率、統計分析、微積分LN関数
2情報量(ビット数)、コンピュータ関連LOG関数
その他特定の底が必要な計算LOG関数

よくあるエラーと対処法

LOG関数は引数の指定を間違えるとエラーが出ます。

エラー原因対処法
#NUM!値に0や負の数を指定した正の数のみ指定する
#NUM!底に0・負の数・1を指定した底は1以外の正の数にする
#VALUE!引数に文字列が入っているセル参照先が数値かどうか確認する
#ERROR!構文ミス(カッコ忘れ等)数式の入力内容を見直す

値が0や負の数のとき

LOG関数に0や負の数を渡すと#NUM!エラーです。

=LOG(0, 10)   → #NUM!
=LOG(-5, 10)  → #NUM!

対数は正の数に対してのみ定義されるため、0以下の値は計算できません。

セル参照先にゼロが入る可能性があるときは、IF関数で事前にチェックしましょう。

=IF(A1>0, LOG(A1, 10), "正の数を入力してください")

底に1を指定したとき

底に1を指定すると#NUM!エラーです。

=LOG(100, 1)  → #NUM!

1を何乗しても1のままなので、底1の対数は定義できません。

文字列を渡したとき

LOG関数に文字列を渡すと#VALUE!エラーです。

=LOG("abc", 10)

セル参照先が数値かどうか不安なときは、ISNUMBER関数で確認できます。

=IF(ISNUMBER(A1), LOG(A1, 10), "数値を入力してください")

Excelとの違い

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

項目ExcelGoogleスプレッドシート
構文=LOG(数値, [底])=LOG(値, [底])
動作指定した底の対数を返す指定した底の対数を返す
底の省略時10(常用対数)10(常用対数)
精度15桁15桁
0以下の引数#NUM!#NUM!

引数名の表記が若干異なるだけで、機能は完全に同じです。ファイルを共有しても計算結果はずれません。

まとめ

LOG関数は、指定した底の対数を返す関数です。

ポイントを整理します。

  • 構文は =LOG(値, [底]) の1〜2引数。底を省略すると10(常用対数)
  • LOG(100, 10) = 2、LOG(8, 2) = 3のように「底を何乗したらその値になるか」を返す
  • データの桁数を求めるには =INT(LOG(値, 10)) + 1
  • LN関数は底がe固定、LOG10関数は底が10固定
  • 底2の対数は情報量(ビット数)の計算に便利
  • 値は正の数のみ。底は1以外の正の数を指定する

まずは =LOG(100, 10) で100の常用対数を表示するところから試してみてください。

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