スプレッドシートで「この値はeの何乗か?」を調べたいとき、どうしていますか?
「そもそも自然対数って何?」と思った方もいるかもしれません。自然対数はネイピア数e(約2.718)を底とする対数です。
LN関数を使えば、自然対数をかんたんに求められます。引数を1つ指定するだけなので、使い方はとてもシンプルです。
この記事では基本の書き方から、成長率の計算での活用まで紹介します。EXP関数との逆関数関係やLOG・LOG10との使い分けも解説します。
LN関数とは?
LN関数(読み方: ナチュラルログ関数)は、指定した値の自然対数(底eの対数)を返す関数です。
名前は英語の「Natural Logarithm(自然対数)」の頭文字からきています。
自然対数とは「ネイピア数e(約2.71828)を何乗したら、その値になるか」を表す数です。
LN関数にできることをまとめると、次のとおりです。
- 指定した値の自然対数(底eの対数)を計算する
- 連続成長率を求める(売上の伸び率の計算など)
- EXP関数の逆演算として、eのべき乗から指数を取り出す
- データの対数変換でばらつきを抑える
NOTE
LN関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も完全なので、ファイルのやり取りでも安心です。
LN関数の書き方(構文と引数)
基本構文
=LN(値)
カッコの中に「自然対数を求めたい正の数」を1つ入れるだけです。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 値 | 必須 | 自然対数を求めたい正の数値。セル参照や数式も指定できる |
引数は1つだけです。正の数のみ指定できます。0や負の数を入れるとエラーになります。
LN関数の基本的な使い方
LN(1) = 0 を確かめる
=LN(1)
結果は「0」です。eの0乗は1なので、LN(1) = 0 になります。
LN(e) = 1 を確かめる
=LN(EXP(1))
結果は「1」です。EXP(1)はeそのものの値(約2.71828)です。eの1乗はeなので、自然対数は1になります。
いろいろな値の自然対数
=LN(2)
結果は「0.69315…」です。eの約0.693乗が2になるという意味です。
=LN(10)
結果は「2.30259…」です。eの約2.303乗が10になります。
=LN(100)
結果は「4.60517…」です。値が大きくなると対数もゆっくり増えていきます。
まとめると
| 数式 | 結果(小数第5位まで) | 意味 |
|---|---|---|
| =LN(1) | 0 | eの0乗 = 1 |
| =LN(2) | 0.69315 | eの約0.693乗 = 2 |
| =LN(10) | 2.30259 | eの約2.303乗 = 10 |
| =LN(100) | 4.60517 | eの約4.605乗 = 100 |
| =LN(EXP(1)) | 1 | eの1乗 = e |
セル参照を使う
実務ではセル参照を使うケースがほとんどです。A2セルに値が入っているとします。
=LN(A2)
セル参照にしておけば、値を変更するだけで結果が自動的に更新されます。
実務でのLN関数活用例
連続成長率を求める
LN関数がもっとも活躍するのが成長率の計算です。
ある期間の開始値と終了値から「連続成長率」を求められます。
開始値がA2、終了値がB2に入っているとします。
=LN(B2/A2)
たとえば売上が100万円から150万円に伸びた場合はこうです。
=LN(1500000/1000000)
結果は「0.40546…」、つまり連続成長率は約40.5%です。
TIP
通常の成長率は
=(B2-A2)/A2で「50%」です。連続成長率のほうが小さい値になります。連続成長率は複利の効果を織り込んだ計算なので、期間をまたぐ比較に適しています。
対数変換でデータの偏りを補正する
売上や人口など、桁数が大きく異なるデータをグラフにすると、小さい値がつぶれてしまいます。
LN関数で対数変換すれば、ばらつきを抑えて比較しやすくなります。
売上データがA2に入っているとします。
=LN(A2)
たとえば10万円・100万円・1,000万円のデータがあるとします。
| 元の値 | =LN(元の値) |
|---|---|
| 100,000 | 11.51 |
| 1,000,000 | 13.82 |
| 10,000,000 | 16.12 |
100倍の差があったデータが、対数変換すると1.15倍の差に収まります。
年数から複利回数を逆算する
「元本が2倍になるまで何年かかるか」を求めるパターンです。
年利率がA2に入っているとします。
=LN(2)/LN(1+A2)
たとえば年利5%の場合はこうです。
=LN(2)/LN(1+0.05)
結果は「14.21」、つまり約14年で元本が2倍になります。
TIP
これは「72の法則」(72 / 利率 = 倍になる年数)の正確な計算版です。72/5 = 14.4年と近い値になりますね。
LN関数とEXP関数の逆関数関係
LN関数とEXP関数は逆関数の関係にあります。
一方の結果をもう一方に渡すと、元の値に戻ります。
- LN関数: 値 → eの何乗かを返す(「7.389…」を渡すと「2」)
- EXP関数: 指数 → eのべき乗を返す(「2」を渡すと「7.389…」)
実際に確かめてみましょう。
=LN(10) → 2.30259...
=EXP(LN(10)) → 10
LN(10)の結果をEXP関数に渡すと、元の「10」に戻ります。
=EXP(2) → 7.38906...
=LN(EXP(2)) → 2
EXP(2)の結果をLN関数に渡すと、元の「2」に戻ります。
この関係は「対数変換したデータを元に戻す」場面で役立ちます。
LN関数で対数変換したデータを、EXP関数で元のスケールに復元できます。
よくあるエラーと対処法
LN関数は引数1つのシンプルな関数ですが、エラーが出ることもあります。
| エラー | 原因 | 対処法 |
|---|---|---|
| #NUM! | 引数に0や負の数を指定した | 正の数のみ指定する |
| #VALUE! | 引数に文字列が入っている | セル参照先が数値かどうか確認する |
| #ERROR! | 構文ミス(カッコ忘れ等) | 数式の入力内容を見直す |
0や負の数を渡したとき
LN関数に0や負の数を渡すと#NUM!エラーです。
=LN(0) → #NUM!
=LN(-1) → #NUM!
対数は正の数に対してのみ定義されるため、0以下の値は計算できません。
セル参照先にゼロが入る可能性があるときは、IF関数で事前にチェックしましょう。
=IF(A1>0, LN(A1), "正の数を入力してください")
文字列を渡したとき
LN関数に文字列を渡すと#VALUE!エラーです。
=LN("abc")
セル参照先が数値かどうか不安なときは、ISNUMBER関数で確認できます。
=IF(ISNUMBER(A1), LN(A1), "数値を入力してください")
似た関数との違い・使い分け
| 関数 | 動作 | 底 | 引数 |
|---|---|---|---|
| LN | 自然対数を返す | e(約2.718) | 1つ |
| LOG | 指定した底の対数を返す | 自由に指定 | 1〜2つ |
| LOG10 | 常用対数を返す | 10 | 1つ |
| EXP | eのべき乗を返す | e(約2.718) | 1つ |
LN関数とLOG関数の使い分け
LN関数は底がeに固定された対数です。LOG関数は底を自由に指定できます。
=LN(100) → 4.60517...(底eの対数)
=LOG(100, 10) → 2(底10の対数)
=LOG(100, 2) → 6.64386...(底2の対数)
底がeなら迷わずLN関数を使いましょう。底を変えたいときはLOG関数です。
TIP
LOG関数で底を省略すると底が10になります。つまり
=LOG(100)と=LOG10(100)は同じ結果です。
LN関数とLOG10関数の使い分け
LN関数は底がe(自然対数)、LOG10関数は底が10(常用対数)です。
=LN(1000) → 6.90776...(底eの対数)
=LOG10(1000) → 3(底10の対数)
| 項目 | LN関数 | LOG10関数 |
|---|---|---|
| 底 | e(約2.718) | 10 |
| 主な用途 | 連続成長率・統計分析・微積分 | 桁数の計算・pH計算・デシベル |
| 逆関数 | EXP関数 | POWER(10, x) |
使い分けのポイントは「何の底が必要か」です。
- 成長率や統計の計算 → LN関数(底e)
- 桁数やスケール変換 → LOG10関数(底10)
LN関数とEXP関数の使い分け
LN関数とEXP関数は逆の操作です。
=LN(10) → 2.303...(10はeの何乗か)
=EXP(2.303) → 10(eの2.303乗はいくつか)
「値から指数を求める」ならLN関数、「指数から値を求める」ならEXP関数です。
Excelとの違い
LN関数はExcelとGoogleスプレッドシートで完全に同じ動作です。
| 項目 | Excel | Googleスプレッドシート |
|---|---|---|
| 構文 | =LN(数値) | =LN(値) |
| 動作 | 自然対数を返す | 自然対数を返す |
| 精度 | 15桁 | 15桁 |
| 0以下の引数 | #NUM! | #NUM! |
引数名の表記が若干異なるだけで、機能は完全に同じです。ファイルを共有しても計算結果はずれません。
まとめ
LN関数は、指定した値の自然対数(底eの対数)を返す関数です。
ポイントを整理します。
- 構文は
=LN(値)の1引数。正の数のみ指定できる - LN(1) = 0、LN(e) = 1 が基本の関係
- 連続成長率の計算では
=LN(終了値/開始値)で求められる - EXP関数とは逆関数の関係。LN(EXP(x)) = x、EXP(LN(x)) = x
- LOG関数との違いは「底がeに固定されているかどうか」
- LOG10関数は底が10の常用対数。用途が異なる
まずは =LN(10) で10の自然対数を表示するところから試してみてください。
