スプレッドシートで「この数値は何桁か?」を調べたいとき、どうしていますか?
LEN関数で文字数を数える方法もありますが、小数点やマイナス記号も含まれてしまいます。LOG10関数を使えば、純粋な桁数をかんたんに計算できます。
この記事では基本の書き方から実務での活用例まで紹介します。LOG関数・LN関数との違いも比較表で整理しています。
LOG10関数とは?
LOG10関数(読み方: ログテン関数)は、指定した値の常用対数(底10の対数)を返す関数です。
名前は英語の「Logarithm base 10(底10の対数)」の略称からきています。
常用対数とは「10を何乗したら、その値になるか」を表す数です。たとえばLOG10(100)は「10を何乗したら100になるか」を計算します。答えは2です。
LOG10関数にできることをまとめると、次のとおりです。
- 常用対数(底10の対数)を計算する
- データの桁数を求める
- 桁数がバラバラなデータを対数スケールで比較する
- デシベルやpHなどの常用対数を使う計算に利用できる
NOTE
LOG10関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も完全なので、ファイルのやり取りでも安心です。
LOG10関数の書き方(構文と引数)
基本構文
=LOG10(値)
カッコの中に「対数を求めたい正の数」を指定します。引数は1つだけです。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 値 | 必須 | 常用対数を求めたい正の数値。セル参照や数式も指定できる |
底は常に10で固定されています。底を変更したい場合はLOG関数を使いましょう。
LOG10関数の基本的な使い方
きりのよい数の常用対数
=LOG10(100)
結果は「2」です。10の2乗が100なので、LOG10(100) = 2になります。
=LOG10(1000)
結果は「3」です。10の3乗が1000です。
いろいろな値の常用対数
| 数式 | 結果 | 意味 |
|---|---|---|
| =LOG10(1) | 0 | 10の0乗 = 1 |
| =LOG10(10) | 1 | 10の1乗 = 10 |
| =LOG10(100) | 2 | 10の2乗 = 100 |
| =LOG10(1000) | 3 | 10の3乗 = 1000 |
| =LOG10(50) | 1.698… | 10の約1.7乗 = 50 |
10のべき乗でない数も計算できます。結果は小数になります。
セル参照を使う
実務ではセル参照を使うケースがほとんどです。A2セルに値が入っているとします。
=LOG10(A2)
セル参照にしておけば、値を変更するだけで結果が自動的に更新されます。
実務でのLOG10関数活用例
データの桁数を求める
「この数値は何桁か?」を調べるパターンです。
A2セルに数値が入っているとします。
=INT(LOG10(A2)) + 1
たとえばA2に「12345」が入っているとします。
=INT(LOG10(12345)) + 1
結果は「5」です。LOG10(12345) = 4.0915…なので、INT関数で4に切り捨て、1を足して5桁になります。
TIP
LEN関数でも桁数は数えられます。ただしLEN関数は文字列の長さを数えるため、小数点やマイナス記号も含まれます。純粋な桁数ならLOG10関数のほうが正確です。
対数スケールでデータを比較する
桁数がバラバラなデータを比較するとき、LOG10関数で対数スケールに変換します。
売上データがA2に入っているとします。
=LOG10(A2)
| 元の値 | =LOG10(元の値) |
|---|---|
| 100 | 2 |
| 10,000 | 4 |
| 1,000,000 | 6 |
100倍ずつ差があったデータが、対数変換すると2ずつ増える均等な間隔になります。グラフの軸を対数スケールにするときの考え方と同じです。
数値の大きさで条件分岐する
数値の桁数に応じて処理を分けるパターンです。
=IF(LOG10(A2)>=6, "大口", IF(LOG10(A2)>=3, "中口", "小口"))
100万以上(6桁以上)を「大口」、1000以上(3桁以上)を「中口」、それ未満を「小口」に分類します。
LOG関数・LN関数との違い・使い分け
対数を返す関数は3つあります。違いは「底」です。
LOG10関数とLOG関数の同値関係
LOG10(x)とLOG(x, 10)は同じ結果になります。
=LOG10(1000) → 3(常用対数)
=LOG(1000, 10) → 3(同じ結果)
=LOG(1000) → 3(底省略でも同じ)
3つとも結果は同じです。LOG関数は底を省略すると10になるため、LOG10関数と同じ計算になります。
| 数式 | 結果 | 備考 |
|---|---|---|
| =LOG10(100) | 2 | 常用対数の専用関数 |
| =LOG(100, 10) | 2 | 底10を明示的に指定 |
| =LOG(100) | 2 | 底を省略(デフォルト10) |
どれを使っても計算結果は同じです。「常用対数を使う」と明示したいときはLOG10関数を使いましょう。数式の意図が伝わりやすくなります。
底の選び方ガイド
| 底 | 使う場面 | 使う関数 |
|---|---|---|
| 10 | 桁数の計算、pH、デシベル | LOG10関数 or LOG関数 |
| e(約2.718) | 連続成長率、統計分析、微積分 | LN関数 |
| 2 | 情報量(ビット数)、コンピュータ関連 | LOG関数 |
| その他 | 特定の底が必要な計算 | LOG関数 |
よくあるエラーと対処法
LOG10関数は引数の指定を間違えるとエラーが出ます。
| エラー | 原因 | 対処法 |
|---|---|---|
| #NUM! | 値に0や負の数を指定した | 正の数のみ指定する |
| #VALUE! | 引数に文字列が入っている | セル参照先が数値かどうか確認する |
| #ERROR! | 構文ミス(カッコ忘れ等) | 数式の入力内容を見直す |
値が0や負の数のとき
LOG10関数に0や負の数を渡すと#NUM!エラーです。
=LOG10(0) → #NUM!
=LOG10(-5) → #NUM!
対数は正の数に対してのみ定義されるため、0以下の値は計算できません。
セル参照先にゼロが入る可能性があるときは、IF関数で事前にチェックしましょう。
=IF(A1>0, LOG10(A1), "正の数を入力してください")
文字列を渡したとき
LOG10関数に文字列を渡すと#VALUE!エラーです。
=LOG10("abc") → #VALUE!
セル参照先が数値かどうか不安なときは、ISNUMBER関数で確認できます。
=IF(ISNUMBER(A1), LOG10(A1), "数値を入力してください")
Excelとの違い
LOG10関数はExcelとGoogleスプレッドシートで完全に同じ動作です。
| 項目 | Excel | Googleスプレッドシート |
|---|---|---|
| 構文 | =LOG10(数値) | =LOG10(値) |
| 動作 | 常用対数を返す | 常用対数を返す |
| 精度 | 15桁 | 15桁 |
| 0以下の引数 | #NUM! | #NUM! |
引数名の表記が若干異なるだけで、機能は完全に同じです。ファイルを共有しても計算結果はずれません。
まとめ
LOG10関数は、常用対数(底10の対数)を返す関数です。
ポイントを整理します。
- 構文は
=LOG10(値)の1引数。底は10で固定 - LOG10(100) = 2、LOG10(1000) = 3のように「10を何乗したらその値になるか」を返す
- データの桁数を求めるには
=INT(LOG10(値)) + 1 - LOG10(x) = LOG(x, 10) = LOG(x) で、3つとも同じ結果
- LN関数は底がe固定、LOG関数は底を自由に指定できる
- 値は正の数のみ。0や負の数は#NUM!エラーになる
まずは =LOG10(100) で100の常用対数を表示するところから試してみてください。
