Excel関数 逆引き集 | 有効桁数指定 → ROUND

Excel
スポンサーリンク

概要

「有効桁数をそろえたい」「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 桁に丸める考え方

ステップのイメージ

  1. 数値を「有効桁数の位置まで」10 のべき乗で割る or 掛ける
  2. ROUND で小数第何位かを四捨五入
  3. 10 のべき乗を掛けて元のスケールに戻す

この「10 のべき乗」の指数をどう求めるかに、INTLOG10 を使います。


汎用テンプレート:有効桁数 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 を使うときに気をつけたいケースがあります)

タイトルとURLをコピーしました