エクセルには「有効数字○桁」を指定する専用の設定や関数はありません。有効数字で丸めるには、ROUND関数の桁数を、数値の大きさに合わせて自動で決める次の式を使います(B1 に有効数字の桁数を入れておきます)。
=ROUND(A4,$B$1-1-INT(LOG10(ABS(A4))))
この記事では、実際に試した結果をもとに、有効数字で丸める式のしくみと、末尾の0を表示するための指数表示を説明します。
目次
有効数字で丸めた結果

| 元の数値 | 有効数字3桁 | 有効数字2桁 |
|---|---|---|
| 12345 | 12300 | 12000 |
| 0.004567 | 0.00457 | 0.0046 |
| 3.14159 | 3.14 | 3.1 |
| 987.65 | 988 | 990 |
式のしくみ
| 部分 | 意味(12345 の場合) |
|---|---|
ABS(A4) | マイナスの数も扱えるように、絶対値にする |
LOG10(…) | 桁の大きさを求める(12345 なら約 4.09) |
INT(…) | 整数にする(4)。「1万の位」が先頭という意味 |
$B$1-1-INT(…) | ROUND に渡す桁数(3−1−4=−2 → 百の位で四捨五入) |
ROUND関数の桁数がマイナスのときは、整数部分(十の位・百の位…)で四捨五入します(四捨五入する方法)。
末尾の0まで表示したいとき(指数表示)
有効数字3桁で「2.00」と表示したいのに、セルには「2」と出てしまいます。エクセルは、数値の末尾の0を表示しないためです。
末尾の0まで表示したいときは、表示形式を「指数」(ユーザー定義の 0.00E+00)にします。有効数字3桁なら「0.00」と小数点以下2桁にすると、「2.00E+00」「1.23E+04」のように、いつも3桁で表示されます。
うまくいかないときの確認表
| 症状 | 考えられる原因 | 対処 |
|---|---|---|
| 「#NUM!」になる | 元の数値が 0(LOG10 は 0 を計算できない) | =IF(A4=0,0,ROUND(…)) のように 0 を分ける。 |
| 末尾の0が表示されない | 数値の末尾の0は表示されない | 指数表示(0.00E+00)にする。 |
| 表示だけ丸めたい | ROUND は値そのものを変える | 表示の桁数だけ変える方法は小数点以下の表示を変える方法。 |
練習用Excelファイル(無料ダウンロード)
有効数字で丸める式が入った表です。B1 の桁数を変えて、結果の違いを試せます。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り

コメント