Excelで統計処理や品質管理のデータを扱っていると、「誤差関数の積分値をサッと求めたい」という場面がありますよね。手計算では面倒な誤差関数の積分も、ExcelのERF.PRECISE関数を使えば上限を指定するだけで一発で計算できますよ。
この記事では、ERF.PRECISE関数の書き方から実際の使い方、エラー対処法、ERF関数との使い分けまでまとめて解説します。
ExcelのERF.PRECISE関数とは?
ERF.PRECISE関数は、0から指定した上限値までの誤差関数の積分値を返す関数です。読み方は「エラー・ファンクション・プリサイス」です。名前の「ERF」は error function(誤差関数)の略で、「PRECISE」は「正確な」という意味です。
誤差関数(error function)とは、統計学や確率論で使われる特殊関数のひとつです。正規分布の累積分布関数と深い関係があり、品質管理や信号処理などの分野で活用されています。
数学的には、ERF.PRECISE(x)は次の式で定義されます。
ERF.PRECISE(x) = (2 / sqrt(pi)) * 0からxまでの e^(-t^2) の積分
数式だけ見るとむずかしそうですが、Excelでは関数に値を入れるだけで計算してくれるので安心してください。
ERF.PRECISE関数の戻り値は -1から1の範囲 になります。ERF.PRECISE(0) = 0で、xが大きくなるにつれて1に近づいていきますよ。また、負の値を指定すると負の結果を返します(奇関数の性質です)。
対応バージョンは Excel 2010 以降、Microsoft 365 です。ERF.PRECISE関数はISO/IEC規格への準拠のために追加された関数で、Excel 2010から使えるようになりました。
ERF.PRECISE関数の書き方(構文と引数)
基本構文
=ERF.PRECISE(x)
引数はxの1つだけです。ERF関数のように下限と上限を別々に指定する構文とは異なり、とてもシンプルですよ。
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| x | 必須 | 誤差関数を積分するときの上限値を指定します。下限は自動的に0になります |
ポイントは、下限が常に0に固定されていることです。「0からxまでの誤差関数の積分値」を返すので、引数に指定した値がそのまま上限になります。
- 正の数を指定すると、0から正の方向への積分値を返します
- 負の数を指定すると、負の結果を返します(例: ERF.PRECISE(-1) = -0.8427)
- 0を指定すると、結果は0になります
ERF.PRECISE関数の基本的な使い方
実際にERF.PRECISE関数を使ってみましょう。
数値を直接指定する場合
セルに次のように入力します。
=ERF.PRECISE(1)
この場合、0から1までの誤差関数の積分値が返されます。結果は 0.8427 です。
もう少し小さい値も試してみましょう。
=ERF.PRECISE(0.5)
結果は 0.5205 になります。0から0.5までの積分値ですね。
負の値を入れた場合も確認しておきましょう。
=ERF.PRECISE(-1)
結果は -0.8427 です。ERF.PRECISE(1) の符号が反転した値になっていますよね。これは誤差関数が奇関数(原点に対して対称)であるためです。
セル参照を使う場合
数値を直接入力する代わりに、セル参照も使えます。
=ERF.PRECISE(A1)
セルA1に「0.745」が入っていれば、0から0.745までの積分値を計算してくれます。データが多いときはセル参照のほうが便利ですよ。
ERF.PRECISE関数の実践的な使い方・応用例
品質管理での活用例
製造業の品質管理では、製品の寸法が規格内に収まる確率を求めることがあります。誤差関数は正規分布と関連しているため、ERF.PRECISE関数で確率の計算ができます。
たとえば、ある部品の寸法が平均値から標準偏差1.5の範囲に入る確率を求めるには、次のように入力します。
=ERF.PRECISE(1.5/SQRT(2))
結果は 0.8664 です。約86.6%の確率で規格内に収まることがわかりますね。SQRT関数(平方根を求める関数)を組み合わせて、標準偏差のスケールを調整しています。
複数の上限値を比較する
上限値を変えながら積分値がどう変化するか、表で確認してみましょう。
| セル | 数式 | 結果 | 説明 |
|---|---|---|---|
| B1 | =ERF.PRECISE(0.5) | 0.5205 | 0〜0.5の区間 |
| B2 | =ERF.PRECISE(1) | 0.8427 | 0〜1の区間 |
| B3 | =ERF.PRECISE(1.5) | 0.9661 | 0〜1.5の区間 |
| B4 | =ERF.PRECISE(2) | 0.9953 | 0〜2の区間 |
| B5 | =ERF.PRECISE(3) | 0.9999 | 0〜3の区間 |
xが大きくなるにつれて結果が1に近づいていくのがわかりますね。x = 3のあたりではほぼ1になるため、それ以上大きくしても結果はほとんど変わりません。
ERFC.PRECISEと組み合わせて使う
ERF.PRECISEの結果を使って、相補誤差関数の値を確認することもできます。
=1 - ERF.PRECISE(1)
結果は 0.1573 です。これはERFC.PRECISE関数で =ERFC.PRECISE(1) と入力した場合と同じ結果になります。
ERF.PRECISE(x) + ERFC.PRECISE(x) = 1 という関係を覚えておくと、どちらか一方の結果からもう一方を求められるので便利ですよ。
ERF.PRECISE関数でよくあるエラーと対処法
#VALUE!エラー
引数に数値以外の値(文字列や空白など)を指定すると、#VALUE!エラーが表示されます。
=ERF.PRECISE("abc") → #VALUE!エラー
=ERF.PRECISE(A1) → A1が文字列の場合、#VALUE!エラー
対処法: 引数に指定するセルが数値になっているか確認してみてください。ISNUMBER関数でチェックするのもおすすめです。
#NAME?エラー
関数名のスペルミスや、対応していないバージョンのExcelで使おうとすると#NAME?エラーになります。
=ERF.PRESICE(1) → #NAME?エラー(正しくは ERF.PRECISE)
=ERFPRECISE(1) → #NAME?エラー(ドットが必要)
対処法: 関数名が「ERF.PRECISE」(ドット付き)になっているか確認しましょう。「PRESICE」と「PRECISE」のスペルミスは特によくあるので注意してください。Excel 2007以前のバージョンではこの関数は使えません。
ERF.PRECISE関数と似た関数との違い・使い分け
ERF.PRECISE関数には、似た機能を持つ関連関数がいくつかあります。用途に応じて使い分けましょう。
| 関数名 | 構文 | 特徴 |
|---|---|---|
| ERF | =ERF(下限, [上限]) | 下限と上限を自由に指定できる |
| ERF.PRECISE | =ERF.PRECISE(x) | 下限が0に固定。上限のみ指定 |
| ERFC | =ERFC(x) | 相補誤差関数(1 – ERF(x))を返す |
| ERFC.PRECISE | =ERFC.PRECISE(x) | ERFCと同じ結果。互換性のために用意 |
ERF.PRECISEとERFの使い分け
ERF.PRECISE関数は、下限が常に0に固定されています。引数が1つだけなのでシンプルに書けるのがメリットです。「0からxまでの積分値」だけが必要なら、ERF.PRECISEのほうがわかりやすいですよ。
一方、ERF関数は下限と上限を自由に指定できます。「0.5から1.5までの積分値」のように特定の区間を指定したいときはERF関数を使いましょう。
=ERF.PRECISE(1) → 0から1までの積分(引数1つでシンプル)
=ERF(0.5, 1.5) → 0.5から1.5までの積分(区間指定が必要なとき)
実は、ERF関数に引数を1つだけ渡した場合も同じ結果になります。つまり =ERF(1) と =ERF.PRECISE(1) はどちらも 0.8427 を返します。使いやすいほうを選んで大丈夫ですよ。
ERF.PRECISEとERFC.PRECISEの関係
ERFC.PRECISE関数は「相補誤差関数」を返します。ERF.PRECISEとERFC.PRECISEには次の関係があります。
ERFC.PRECISE(x) = 1 - ERF.PRECISE(x)
つまり、ERF.PRECISE(1) が 0.8427 なら、ERFC.PRECISE(1) は 1 – 0.8427 = 0.1573 です。「誤差関数の残りの部分」が必要なときはERFC.PRECISEを使うと、引き算の手間が省けますよ。
まとめ
ExcelのERF.PRECISE関数について解説しました。最後にポイントを整理しておきましょう。
- ERF.PRECISE関数は 0から指定値までの誤差関数の積分値 を返す関数
- 引数はxの1つだけ。下限は自動的に0に固定される
- 戻り値は-1から1の範囲で、xが大きくなるほど1に近づく
- 数値以外を指定すると#VALUE!エラー、スペルミスは#NAME?エラーになるので注意
- 区間を自由に指定したいならERF関数、相補誤差関数ならERFC.PRECISEも検討してみてください
品質管理や統計処理でERF.PRECISE関数を活用して、データ分析の効率を上げてみてくださいね。
