Excelで統計処理や品質管理のデータを扱っていると、「誤差関数(エラーファンクション)の積分値を求めたい」という場面に出くわすことがありますよね。手計算では大変な誤差関数の積分も、ExcelのERF関数を使えば、下限と上限を指定するだけでサッと求められますよ。
この記事では、ERF関数の書き方から実際の使い方、エラー対処法、似た関数との使い分けまでまとめて解説します。
ExcelのERF関数とは?
ERF関数は、誤差関数(error function)の積分値を返す関数です。読み方は「エラー・ファンクション」で、名前の「ERF」は error function の略です。
誤差関数とは、統計学や確率論で使われる特殊関数のひとつです。正規分布の累積分布関数と深い関係があり、品質管理や信号処理などの分野で活用されています。
数学的には、ERF(x)は次の式で定義されます。
ERF(x) = (2 / sqrt(pi)) × 0からxまでの e^(-t^2) の積分
ちょっと数式が難しく見えますが、ExcelではERF関数に値を入れるだけで計算してくれるので安心してください。
ERF関数の戻り値は -1から1の範囲 になります。ERF(0) = 0、xが大きくなるにつれて1に近づいていきますよ。
対応バージョンは Excel 2010 以降、Microsoft 365 です。
ERF関数の書き方(構文と引数)
基本構文
=ERF(下限, [上限])
角カッコ [] で囲まれた引数は省略できます。
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 下限 | 必須 | 誤差関数を積分するときの下限値を指定します |
| 上限 | 省略可 | 誤差関数を積分するときの上限値を指定します |
引数の指定パターンで動作が変わるので、ここがポイントです。
- 引数を1つだけ指定した場合(上限を省略): 下限が「0」、指定した値が上限として扱われます。つまり
=ERF(1)は「0から1までの積分」になります - 引数を2つ指定した場合: 第1引数が下限、第2引数が上限として、その範囲の積分値を返します。つまり
=ERF(0.5, 1)は「0.5から1までの積分」です
引数を1つだけ指定したときの動作は少し紛らわしいので、覚えておきましょう。
ERF関数の基本的な使い方
実際にERF関数を使ってみましょう。
引数を1つだけ指定する場合
セルに次のように入力します。
=ERF(1)
この場合、0から1までの誤差関数の積分値が返されます。結果は 0.8427 です。
もう少し小さい値も試してみましょう。
=ERF(0.5)
結果は 0.5205 になります。0から0.5までの積分値ですね。
引数を2つ指定する場合
下限と上限の両方を指定することもできます。
=ERF(0.5, 1)
この場合、0.5から1までの積分値が返されます。結果は 0.3222 です。
これは =ERF(1) - ERF(0.5) と同じ結果になりますよ。特定の区間だけの積分値を求めたいときに便利です。
セル参照を使う場合
数値を直接入力する代わりに、セル参照も使えます。
=ERF(A1)
=ERF(A1, B1)
セルA1に「0.5」、セルB1に「1」が入っていれば、それぞれの値を下限・上限として計算してくれます。データが多いときはセル参照を使うほうが便利ですよ。
ERF関数の実践的な使い方・応用例
品質管理での活用例
製造業の品質管理では、製品の寸法が規格内に収まる確率を求めることがあります。誤差関数は正規分布と関連しているため、この計算にERF関数が使えます。
たとえば、ある部品の寸法が平均値からの標準偏差1.5の範囲に入る確率を求めるには、次のように入力します。
=ERF(1.5/SQRT(2))
結果は 0.8664 となり、約86.6%の確率で規格内に収まることがわかります。SQRT関数(平方根を求める関数)を組み合わせて、標準偏差のスケールを調整しているのがポイントです。
積分区間を変えて比較する
複数の区間の積分値を比較したい場合も、ERF関数なら簡単です。
| セル | 数式 | 結果 | 説明 |
|---|---|---|---|
| C1 | =ERF(0, 0.5) | 0.5205 | 0〜0.5の区間 |
| C2 | =ERF(0.5, 1) | 0.3222 | 0.5〜1の区間 |
| C3 | =ERF(1, 1.5) | 0.1234 | 1〜1.5の区間 |
| C4 | =ERF(1.5, 2) | 0.0292 | 1.5〜2の区間 |
xが大きくなるにつれて、区間あたりの積分値が小さくなっていくのがわかりますね。これは誤差関数のグラフが1に収束していく性質を反映しています。
ERF関数でよくあるエラーと対処法
#VALUE!エラー
引数に数値以外の値(文字列や空白など)を指定すると、#VALUE!エラーが表示されます。
=ERF("abc") → #VALUE!エラー
=ERF(A1) → A1が文字列の場合、#VALUE!エラー
対処法: 引数に指定するセルが数値になっているか確認してみてください。ISNUMBER関数でチェックするのもおすすめです。
#NAME?エラー
関数名のスペルミスや、対応していないバージョンのExcelで使おうとすると#NAME?エラーになります。
=ERR(1) → #NAME?エラー(正しくは ERF)
対処法: 関数名が「ERF」になっているか確認しましょう。Excel 2007以前のバージョンでは、分析ツールアドインの有効化が必要な場合があります。
ERF関数と似た関数との違い・使い分け
ERF関数には、似た機能を持つ関連関数がいくつかあります。用途に応じて使い分けましょう。
| 関数名 | 構文 | 特徴 |
|---|---|---|
| ERF | =ERF(下限, [上限]) | 下限と上限を自由に指定できる |
| ERF.PRECISE | =ERF.PRECISE(x) | 下限が0に固定。上限のみ指定 |
| ERFC | =ERFC(x) | 相補誤差関数(1 – ERF(x))を返す |
| ERFC.PRECISE | =ERFC.PRECISE(x) | ERFCと同じ結果。互換性のために用意 |
ERFとERF.PRECISEの使い分け
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とERFCの関係
ERFC関数は「相補誤差関数」を返します。ERFとERFCには次の関係があります。
ERFC(x) = 1 - ERF(x)
つまり、ERF(1) が 0.8427 なら、ERFC(1) は 1 – 0.8427 = 0.1573 です。「誤差関数の残りの部分」が必要なときにERFCを使うと、わざわざ引き算しなくて済みますよ。
まとめ
ExcelのERF関数について解説しました。最後にポイントを整理しておきましょう。
- ERF関数は 誤差関数の積分値 を返す関数
- 引数を1つだけ指定すると、0からその値までの積分値を計算する
- 引数を2つ指定すると、下限から上限までの区間の積分値を計算する
- 数値以外を指定すると#VALUE!エラーになるので注意
- 0からの積分だけならERF.PRECISE、相補誤差関数ならERFCも検討してみてください
統計処理や品質管理でERF関数を使いこなして、データ分析の幅を広げてみてくださいね。
