TL;DR — 指数と対数は、同じ関係を逆方向から読んだものです。
EXP(x)は e のx乗を返します(連続的な成長を前向きに)。対数はそれを逆向きに走らせ — 指数のほうを 求めます。LN(x)は自然対数(底 e)、LOG10(x)は底 10、そしてLOG(x, [base])は底を選べます — ただし 既定は自然対数ではなく底 10 です。この 既定こそ、数学やコードから来た人をこっそり足取らせる落とし穴です。ゼロや負数の対数は#NUM!になります。覚えておく価値のある 2 つの数式:幾何平均 =EXP(AVERAGE(LN(range)))、そして 目標到達までの期間 =LN(target)/LN(rate)。
=EXP(1) ' -> 2.71828... e、成長の定数
=LN(2.71828) ' -> 1 自然対数は EXP を打ち消す
=LOG10(1000) ' -> 3 底 10
=LOG(8, 2) ' -> 3 「2 を何乗すれば 8 か?」
=LOG(100) ' -> 2 底を書かない = 底 10、自然対数ではない
べき乗は数値を前向きに成長させ、対数は逆の問いを立てます — ここへたどり着くのに、どんな 指数が必要だったのか? ほとんどのスプレッドシート利用者にとって、この一族が真価を発揮するのは、 まさに 2 つの財務の仕事です。成長率を誠実に平均すること、そして「あとどれくらいで…」を解く ことです。この逆向きの関係と、既定の底というクセさえ押さえれば、あとは自然についてきます。
この記事で学べること
- 考え方の軸:対数とは、指数について解いたべき乗 である
- 3 つの対数 —
LN・LOG10・LOG— と、それぞれが使う底 - 既定の底の落とし穴:
LOG(x)は底 10、自然対数ではない LN(0)とLOG(-5)が#NUM!になる理由 — 定義域を守る- 本当に効く 2 つの数式:幾何平均 と 目標到達までの年数
考え方の軸:対数とは、逆向きに解いたべき乗
POWER と EXP は前向きの問いに答えます — ここから始めて、この率でこれだけの期間だけ成長
したら、どこにたどり着くか? 対数は逆に答えます — ここにたどり着いた — 底からこの値まで、
どんな指数が連れてきたのか?
=POWER(2, 3) ' -> 8 前向き:2 の 3 乗
=LOG(8, 2) ' -> 3 逆向き:2 を何乗すれば 8 か?
発想はこれで全部です。EXP と LN は互いに厳密な逆関数で — 一方が他方を打ち消します —
これが以下のあらゆる実用例の裏で動いている仕掛けです。
=LN(EXP(5)) ' -> 5
=EXP(LN(5)) ' -> 5
POWER が前進ギアなら、LN/LOG はバックギアです。年数が
分かっていて率が欲しいときに POWER が CAGR をくれたのに対し、対数は、率が分かっていて
その回数が欲しいときに年数をくれます。同じ関係、違う未知数です。
3 つの対数と、それぞれが使う底
Excel には対数関数が 3 つあり、絶対に取り違えてはいけない唯一の点は、それぞれが前提とする 底です。
=LN(x) ' 自然対数 — 底 e(2.71828...)
=LOG10(x) ' 底 10、固定
=LOG(x) ' 底を指定しないときは既定で底 10
=LOG(x, base) ' 指定した任意の底 — LOG(8,2) = 3
LN は曖昧さがありません(常に底 e)。LOG10 も曖昧さがありません(常に底 10)。融通が
利くのは LOG で、その融通のよさこそが、落とし穴の潜む場所です。
既定の底の落とし穴:LOG(x) は底 10、自然対数ではない
数学でも、ほとんどのプログラミング言語でも、底を書かずに書いた log はたいてい 自然
対数を意味します。Excel では そうではありません。
=LOG(100) ' -> 2 底 10:10^2 = 100
=LN(100) ' -> 4.605 自然対数、底 e
=LOG(100, EXP(1)) ' -> 4.605 自然対数を LOG で書き下したもの
ルール:引数が 1 つの LOG は底 10。自然対数が欲しいなら LN を使い、むき出しの LOG は
決して使わないこと。 この食い違いはエラーではなく それらしい 数値を生むため、教科書や
Python スクリプトから移植したモデルが、一定の係数(およそ 2.303 倍、2 つの底の比)だけこっそり
ずれることがあります。迷ったら底を明示的に書いて、曖昧さをすべて消しましょう:LOG(x, 10)
または LOG(x, EXP(1)) です。
定義域エラー:LN(0) と負数の対数は #NUM!
対数は 正の 数に対してしか定義されていないため、Excel はゼロや負の入力に対して #NUM!
を返します。
=LN(0) ' -> #NUM!
=LOG(-5) ' -> #NUM!
=LN(-3) ' -> #NUM!
これが実務で牙をむくのは、データの列を対数変換するとき — グラフの軸、成長率の計算、回帰の
ため — に、範囲の中に迷い込んだゼロや負数が 1 つ紛れているときです。変換の前に定義域を守り
ましょう。たとえば範囲を絞り込むか、=IF(x>0, LN(x), NA()) で判定して、計算全体を巻き込んで
壊すのではなく、問題の行が見えるようにします。これは、POWER & SQRT
ガイドで SQRT が負数を拒むのと同じ、定義域を守る規律です。
本当に効く 2 つの数式
科学的な用途をそぎ落とせば、この一族に対するビジネス上のニーズはほぼすべて、2 つの数式に 帰着します。この 2 つを覚えれば、価値の 95% を手にしたことになります。
1. 幾何平均 — 成長率を誠実に平均する。 年ごとの成長率を素の AVERAGE で平均すると、
複利での実績を過大評価してしまいます。幾何平均はそれを正します。そして対数を経由する道は、
範囲全体にわたってそれを計算する堅牢な方法です。
=EXP(AVERAGE(LN(growth_ratios))) ' 比率の幾何平均
' 1.10, 0.95, 1.20 のような比率(+10%、-5%、+20% の推移)
これがうまくいくのは、対数が掛け算を足し算に変える からです。対数を平均してから EXP で
戻すのは、積の n 乗根をとるのと同じこと — 扱いにくい積の項なしの幾何平均です。(Excel には
GEOMEAN 関数もあります。対数の形を知っておく価値があるのは、FILTER や重み、条件と
組み合わせられるからです。)
2. 目標までの期間 — 「あとどれくらいで…」。 率が分かっていて、目標に到達するまでの期間の 数が欲しいとき、対数はそれを直接手渡してくれます。
=LN(2) / LN(1.07) ' -> 10.24 年利 7% で 2 倍になるまでの年数
=LOG(2, 1.07) ' -> 10.24 同じ答え、底を明示した LOG
=LN(Target/Start) / LN(1 + rate) ' 一般形
これは、POWER ガイドの CAGR の数式のちょうど逆です。あちらでは
期間が分かっていて率を解きましたが、こちらでは率が分かっていて期間を解きます。もう 1 つ触れて
おく価値のある対数があります — 対数収益率、=LN(P1/P0) です。これは期間をまたいできれいに
足し合わせられる連続複利の収益率で、だからこそ定量ファイナンスは単純なパーセント変化より
これを好みます。
判断のポイント
日々のスプレッドシート作業では、この一族を「警告ラベル付きの 2 つの道具」と捉えましょう。
2 つの道具とは、幾何平均(EXP(AVERAGE(LN(...))))と、期間を解く式(LN(target)/LN(rate))
です。「平均成長率」や「あと何期間」が出てくるたびにこれらに手を伸ばせば、残りはめったに
必要になりません。警告ラベルは既定の底です。自然対数のつもりでむき出しの LOG を決して
書かないこと — LN を使うか、底を明示すること。 それ以外(対数スケール、デシベル、
エントロピー)は正真正銘の科学であり、それをやっているなら、どの底が必要かはもう分かっている
はずです。
ExcelMaster が役立つ場面
既定の底の落とし穴は、まさにあらゆる目視チェックを生き延びる類の静かなエラーです — 数値は
まともに見えて、ただスケールだけが間違っているのです。ExcelMaster に「この年間収益率の
幾何平均を」と頼めば、結果を過大評価する素朴な AVERAGE ではなく、EXP(AVERAGE(LN(...)))
(または GEOMEAN)を正しく書いてくれます。「年利 7% で 2 倍になるまで何年?」と聞けば、
最初から最後まで正しい底で LN(2)/LN(1.07) を出します。そして「この列の自然対数をとって」と
言えば、むき出しの LOG ではなく LN に手を伸ばし、放っておけば #NUM! を返すゼロや負数を
守ります。
よくある質問
Excel の EXP 関数は何をしますか?
=EXP(x) は定数 e(≈2.71828)を x 乗した値を返します。=EXP(1) は e そのもの、
=EXP(0) は 1 になります。連続的な指数関数的成長をモデル化し、自然対数の厳密な逆関数なので、
=EXP(LN(x)) は x を返します。
Excel の LN と LOG の違いは何ですか?
=LN(x) は自然対数で、常に 底 e です。=LOG(x) は底を指定しないとき 底 10 を使い、
=LOG(x, base) なら任意の底を選べます。つまり LN とむき出しの LOG は 同じではありません
— 自然対数には常に LOG ではなく LN を使いましょう。
LOG が予想と違う答えを返すのはなぜですか?
ほぼ必ず底が原因です。Excel では第 2 引数のない =LOG(x) は底 10 ですが、数学や多くの
プログラミング言語では log は自然対数(底 e)を意味します。自然対数には =LN(x) を使うか、
底を明示的に指定しましょう。例:=LOG(x, 2) や =LOG(x, EXP(1))。
Excel で対数を使って幾何平均を計算するには?
=EXP(AVERAGE(LN(range))) を使います。range には成長率(+10% なら 1.10 のような値)が入って
います。自然対数を平均して指数関数で戻すと幾何平均が得られます — これが複利の率を平均する
正しい方法です。Excel には専用の GEOMEAN 関数もあります。
Excel の LN や LOG で #NUM! が出るのはなぜですか?
対数は正の数に対してしか定義されていないため、=LN(0)、=LN(-3)、=LOG(-5) はすべて
#NUM! を返します。対数変換の前に、範囲にゼロや負数がないか確認しましょう — たとえば
=IF(x>0, LN(x), NA()) とすれば、計算を巻き込んで壊す代わりに、問題の行を浮かび上がらせ
られます。
検証環境
検証環境: Excel 365 (Windows 11) — 最終確認 2026-07-10。
関連ガイド: Excel POWER & SQRT · Excel ABS & SIGN · Excel ROUND · Excel SUMPRODUCT
