「対数って何だっけ…」と手が止まった経験はありませんか。数学の記憶があいまいだと、ExcelのLOG関数も敬遠しがちです。でも安心してください。LOG関数は仕組みさえつかめば、複利計算や桁数カウントなど実務でも役立つ便利な関数です。この記事では、LOG関数の基本からLOG10・LNとの違い、エラー対処法まで丁寧に解説します。
ExcelのLOG関数とは?
LOG関数は「対数(たいすう)」を求める関数です。対数とは、ある数を何乗したら目的の数になるかを表す値のことです。
たとえば「2を何乗したら8になるか」を考えてみましょう。2×2×2=8なので、答えは3です。これを数式で書くと次のようになります。
2^3 = 8 ⟺ log₂(8) = 3
左の式は「2の3乗は8」、右の式は「底2の対数で8は3」と読みます。ここで「底(てい)」とは、何乗するかの基準となる数のことです。
つまりLOG関数は「底を何乗したら指定した数値になるか」を返してくれる関数です。Excelでは =LOG(8,2) と入力すれば、結果は「3」になります。
LOG・LOG10・LNの使い分け早見表
Excelには対数を求める関数が3つあります。違いは「底が何か」だけです。
| 関数 | 底 | 書式例 | 用途 |
|---|---|---|---|
| LOG | 任意に指定可能(省略時は10) | =LOG(8,2) | 底を自由に選びたいとき |
| LOG10 | 10(固定) | =LOG10(100) | 常用対数(桁数計算など) |
| LN | e≒2.718(固定) | =LN(10) | 自然対数(指数関数の逆算など) |
底が10のときはLOG10関数が使えます。底がe(ネイピア数≒2.718)のときはLN関数を使うと、引数が1つで簡潔に書けます。底を自由に指定したい場合は、LOG関数を使いましょう。
LOG関数の書式と引数
LOG関数の構文は次のとおりです。
=LOG(数値, [底])
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 数値 | 必須 | 対数を求めたい正の実数 |
| 底 | 省略可 | 対数の底。省略すると10 |
底を省略すると常用対数になる
第2引数の「底」を省略した場合、底は自動的に10になります。つまり =LOG(100) は =LOG10(100) と同じ結果を返します。
常用対数(底が10の対数)を使う場面では、底の指定を省略するだけでOKです。ただし、意図を明確にしたい場合は =LOG10(100) と書くほうが読み手に伝わりやすいですよ。
底に指定できる値・できない値
底にはいくつかの制約があります。以下の条件を満たす数値だけが指定できます。
| 条件 | 指定可否 | 理由 |
|---|---|---|
| 正の数(0.5, 2, 10など) | 指定可 | 通常の対数計算が可能 |
| 1 | 指定不可 | 1を何乗しても1のため、対数が定義できない |
| 0以下(0, -2など) | 指定不可 | 対数の底は正の数に限られる |
底に1や0以下の値を指定すると #NUM! エラーになります。セルの参照先が意図しない値になっていないか確認してみてください。
LOG関数の基本的な使い方
ここでは具体的な数式と結果を見ていきましょう。
底を指定して対数を求める
底を明示的に指定するパターンです。
| 数式 | 結果 | 意味 |
|---|---|---|
| =LOG(8,2) | 3 | 2を3乗すると8 |
| =LOG(81,3) | 4 | 3を4乗すると81 |
| =LOG(10000,10) | 4 | 10を4乗すると10000 |
| =LOG(0.01,10) | -2 | 10の-2乗は0.01 |
このように「底を何乗すれば数値になるか」を返してくれます。検算したいときは、底を結果で累乗してみましょう。たとえば =2^3 は8になるので、=LOG(8,2) の結果「3」が正しいとわかります。
底を省略して常用対数を求める
底を省略すると、底は10として計算されます。
| 数式 | 結果 | 意味 |
|---|---|---|
| =LOG(100) | 2 | 10を2乗すると100 |
| =LOG(1000) | 3 | 10を3乗すると1000 |
| =LOG(50) | 約1.699 | 10の約1.699乗で50 |
10のきれいな累乗でない数値を指定すると、結果は小数になります。これは正常な動作なので心配いりません。
よくあるエラーと対処法
LOG関数で発生しやすいエラーは主に2種類です。原因と対処法をそれぞれ確認しましょう。
#NUM!エラー
#NUM! エラーは、数学的に対数が計算できない値を指定したときに発生します。
| 原因 | 数式例 | 対処法 |
|---|---|---|
| 数値が0以下 | =LOG(-5,2) | 数値に正の数を指定する |
| 数値が0 | =LOG(0,10) | 0の対数は定義されない |
| 底が0以下 | =LOG(8,-2) | 底に正の数(1以外)を指定する |
| 底が1 | =LOG(8,1) | 底を1以外に変更する |
特に多いのは、セル参照先が空欄や0になっているケースです。データが未入力のセルを参照していないか確認しましょう。
#VALUE!エラー
#VALUE! エラーは、引数に数値以外の文字列を指定したときに発生します。
=LOG("abc",2) → #VALUE!エラー
セル参照を使っている場合、参照先に全角数字や単位付きの文字列(「100円」など)が入っていないか確認してください。VALUE関数で数値に変換するか、元データを修正すると解決します。
IFERRORでエラーを回避する
入力データにエラーの原因が含まれる可能性がある場合は、IFERROR関数で囲むと安全です。
=IFERROR(LOG(A1,2), "計算不可")
この数式では、LOG関数がエラーを返したときに「計算不可」と表示します。空文字 "" を指定すれば、エラー時にセルを空欄にすることもできます。データの一括処理などで活用してみてください。
実務での活用例
LOG関数は理論的な関数に見えますが、実務でも活躍する場面があります。
複利で元本が2倍になる年数を求める
「年利5%の複利で運用すると、元本が2倍になるのは何年後か」を計算してみましょう。
複利の計算式は「元本 × (1+利率)^年数 = 目標額」です。元本を1、目標額を2とすると、次の式になります。
(1.05)^年数 = 2
これを対数で解くと「年数 = log₁.₀₅(2)」です。Excelでは次のように書きます。
=LOG(2,1.05)
結果は約14.21です。つまり年利5%の複利なら、約14.2年で元本が2倍になるとわかります。
利率をセルに入れておけば、さまざまな条件でシミュレーションできます。たとえばA1に利率を入力して =LOG(2,1+A1) とすれば、利率を変えるだけで結果が自動更新されますよ。
データの桁数をLOG関数で数える
正の整数の桁数は、常用対数を使って求められます。考え方はシンプルです。
- 1桁の数(1〜9):LOG10の値は0以上1未満
- 2桁の数(10〜99):LOG10の値は1以上2未満
- 3桁の数(100〜999):LOG10の値は2以上3未満
つまり「常用対数の整数部分+1」が桁数になります。数式にすると次のとおりです。
=INT(LOG(A1,10))+1
| A1の値 | LOG(A1,10) | INT+1 | 桁数 |
|---|---|---|---|
| 5 | 約0.699 | 1 | 1桁 |
| 100 | 2 | 3 | 3桁 |
| 99999 | 約4.999 | 5 | 5桁 |
LEN関数でも桁数は数えられますが、LEN関数は文字列として数えます。そのため数値の書式に影響されることがあります。LOG関数を使う方法なら、純粋に数値の大きさから桁数を判定できますよ。
LOG関数まとめ
LOG関数のポイントを整理します。
- LOG関数は「底を何乗すれば指定した数値になるか」を返す対数関数
- 構文は
=LOG(数値, [底])。底を省略すると10(常用対数) - 底が10ならLOG10関数、底がeならLN関数でも同じ計算ができる
- 数値は正の数のみ、底は正の数かつ1以外を指定する
#NUM!エラーは数値や底の範囲外指定、#VALUE!エラーは文字列指定が原因- 複利計算や桁数カウントなど、実務にも応用できる
対数の逆、つまり「eの累乗」を求めたい場合はEXP関数を確認してみてください。そのほかのExcel関数についてはExcel関数一覧からお探しいただけます。
