概要
「有効桁数をそろえたい」「3 桁だけ意味を持たせたい」といったとき、
Excel には「有効桁数専用」の関数はありませんが、ROUND と 10 のべき乗を組み合わせることで実現できます。
ポイントは、
「有効桁数の位置まで小数点をずらす → ROUND する → 元に戻す」
という 3 ステップです。
有効桁数と ROUND の関係
有効桁数とは
有効桁数とは、「その数値の中で意味を持たせたい桁数」のことです。
- 12345 を有効 2 桁 → 1.2×10⁴ → 12000
- 0.012345 を有効 2 桁 → 1.2×10⁻² → 0.012
Excel では、これを ROUND と 10 のべき乗で表現します。
基本パターン:有効 n 桁に丸める考え方
ステップのイメージ
- 数値を「有効桁数の位置まで」10 のべき乗で割る or 掛ける
- ROUND で小数第何位かを四捨五入
- 10 のべき乗を掛けて元のスケールに戻す
この「10 のべき乗」の指数をどう求めるかに、INT と LOG10 を使います。
汎用テンプレート:有効桁数 n 桁に四捨五入
数式テンプレート
数値が A1、指定したい有効桁数が n(例:2,3,…)のときの汎用形です。
=ROUND(A1, n-1-INT(LOG10(ABS(A1))))
この式は、
「A1 の桁数に応じて、ROUND の“桁数”引数を自動調整する」ことで、
常に「有効 n 桁」で四捨五入するようにしています。
具体例1:12345 を有効 2 桁に
=ROUND(12345, 2-1-INT(LOG10(ABS(12345))))
LOG10(12345) ≒ 4.xxx → INT で 4
2-1-4 = -3
つまり、
=ROUND(12345, -3) ' → 12000
となり、「有効 2 桁(1.2×10⁴)」に丸められます。
具体例2:0.012345 を有効 2 桁に
=ROUND(0.012345, 2-1-INT(LOG10(ABS(0.012345))))
LOG10(0.012345) ≒ -1.9… → INT で -2
2-1-(-2) = 3
つまり、
=ROUND(0.012345, 3) ' → 0.012
となり、「有効 2 桁(1.2×10⁻²)」に丸められます。
ロジックをかみ砕いて説明
なぜ「n-1-INT(LOG10(ABS(A1)))」なのか
LOG10(ABS(A1)) は、「10 を何乗すると A1 の絶対値になるか」を表します。
- 12345 → LOG10 ≒ 4.09… → INT で 4(10⁴ のオーダー)
- 0.012345 → LOG10 ≒ -1.9… → INT で -2(10⁻² のオーダー)
この「INT(LOG10(ABS(A1)))」が、「一番左の桁が 10ⁿ のどこにあるか」を教えてくれます。
有効桁数 n にしたいとき、
ROUND の“桁数”引数は「どの位で丸めるか」なので、
- 一番左の桁を 10⁰ とみなすために
-INT(LOG10(ABS(A1))) - そこから「有効桁数 n のうち、1 桁目はすでに 10⁰ にいる」ので
n-1を足す
結果として、
桁数 = n-1-INT(LOG10(ABS(A1)))
という形になります。
コード例・テンプレート集
有効 2 桁に丸める(セル A1)
=ROUND(A1, 2-1-INT(LOG10(ABS(A1))))
有効 3 桁に丸める(セル A1)
=ROUND(A1, 3-1-INT(LOG10(ABS(A1))))
有効桁数をセルで指定する(セル B1 に n)
=ROUND(A1, B1-1-INT(LOG10(ABS(A1))))
B1 に 2 を入れれば有効 2 桁、3 を入れれば有効 3 桁、というように柔軟に変えられます。
実務イメージ
測定値や試算結果の「見せ方」をそろえる
- 測定値を「有効 3 桁」でそろえる
- 見積金額を「有効 2 桁」でざっくり表示する
- グラフ用の値だけ有効桁数を制御する
といった場面で、この ROUND+LOG10+INT の組み合わせがそのまま使えます。
例題
問題1
セル A1 に 12345 が入っています。
これを「有効 2 桁」に四捨五入する式を、ROUND と LOG10、INT を使って書いてください。
また、その結果がいくつになるかも答えてください。
問題2
セル A1 に 0.012345 が入っています。
これを「有効 3 桁」に四捨五入する式を書いてください。
(ヒント:桁数の部分は 3-1-INT(LOG10(ABS(A1))) になります)
問題3
セル A1 に任意の正の数値、セル B1 に「有効桁数 n」が入っているとします。
A1 を「有効 B1 桁」に四捨五入する汎用式を書いてください。
問題4
次の 2 つの式は、どちらも「12345 を有効 2 桁」に丸めています。
それぞれどのような考え方で有効桁数を実現しているか、違いを説明してください。
=ROUND(12345, -3)
=ROUND(12345, 2-1-INT(LOG10(ABS(12345))))
問題5
有効桁数を ROUND で制御する方法の弱点や注意点を 1 つ挙げてください。
(ヒント:0 や負の数、非常に小さい数など、LOG10 や ABS を使うときに気をつけたいケースがあります)
