Excelで品質管理や統計分析のデータを扱っていると、「相補誤差関数の値をパッと求めたい」という場面がありますよね。手計算では面倒な積分も、ExcelのERFC.PRECISE関数を使えば下限値を1つ指定するだけで一発で計算できますよ。
この記事では、ERFC.PRECISE関数の構文から正規分布の上側確率(p値)を求める実務応用、エラーへの対処法、そしてERF・ERFC関数との使い分けまで、まとめて解説します。「数式は苦手だけど業務で使う必要がある」という方でも、コピペですぐ動かせる例を用意しているので安心してくださいね。
ExcelのERFC.PRECISE関数とは?
ERFC.PRECISE関数は、相補誤差関数(complementary error function)の積分値を返す関数です。
読み方は「イー・アール・エフ・シー・プリサイス関数」です。ERFCは「Error Function Complementary」の略で、誤差関数の補関数を意味します。PRECISEは「正確な」という意味で、ISO/IEC規格に準拠した命名のために付けられた名前ですよ。
ERFC.PRECISE関数で何ができる?
ERFC.PRECISE関数は、指定した値xから無限大(+∞)までの範囲で、相補誤差関数を積分した値を返します。数式で表すと次のとおりです。
ERFC.PRECISE(x) = (2 / √π) × ∫(x→∞) e^(-t^2) dt
= 1 - ERF(x)
ERF関数が「0からxまでの誤差関数の積分値」を求めるのに対して、ERFC.PRECISE関数は「xから無限大までの積分値」を求めます。ERF(x) と ERFC.PRECISE(x) を足すと常に1になる関係ですね。
数式だけ見ると身構えてしまいますが、Excelでは値を1つ渡すだけで結果が返ってくるので、難しい計算は全部Excelに任せて大丈夫ですよ。
どんな場面で使う?
相補誤差関数は、次のような分野で活躍します。
- 品質管理: 製造工程の不良率や工程能力指数(Cp/Cpk)の計算
- 統計分析: 正規分布に基づく上側確率(p値)の算出
- 通信工学: 信号のビット誤り率(BER)の評価
- 物理学: 熱拡散や粒子拡散のモデリング
- 半導体工学: 不純物拡散プロファイルの解析
ちょっと専門的に見えますが、関数の使い方自体はとてもシンプルです。「規格を外れる確率」「上側確率」「分布の裾の確率」を出す関数だと覚えておくと、出番がイメージしやすいですよ。
対応バージョン
ERFC.PRECISE関数は Excel 2010 で導入された関数 です。Excel 2010以降のすべてのバージョン(2013/2016/2019/2021/Microsoft 365)と Excel for Mac で利用できます。お使いのExcelが対応バージョンか、念のため確認しておきましょう。
NOTE
ERFC.PRECISEはExcel 2010で「ERFC関数の.PRECISE版」として追加されましたが、計算結果はERFC関数とまったく同じです。詳しくは後半の比較セクションで解説します。
ERFC.PRECISE関数の書き方(構文と引数)
基本構文
=ERFC.PRECISE(x)
引数は1つだけなので、覚えやすいですよね。
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| x | 必須 | 相補誤差関数を積分するときの下限値を数値で指定します |
xに指定できる値のポイント:
- 数値(整数・小数のいずれもOK)を指定します
- 0を指定すると、ERFC.PRECISE(0) = 1 を返します(積分範囲が全範囲のため)
- 負の値も指定できます(戻り値は1を超える値になります)
- 数値以外(文字列など)を指定すると #VALUE! エラーになります
引数が下限値、つまり「ここから先(無限大まで)の確率を求める」と考えると、xを大きくするほど結果が小さくなる理由がイメージしやすいですよ。
ERFC.PRECISE関数の基本的な使い方
実際にERFC.PRECISE関数を使ってみましょう。手元のExcelに同じ数式を入れながら読み進めると、感覚がつかみやすいですよ。
数値を直接指定する方法
セルに次の数式を入力してみてください。
=ERFC.PRECISE(1)
結果は約 0.1573 になります。これは、下限値1から無限大までの相補誤差関数の積分値です。「標準正規分布で平均から1単位離れた地点より外側にある確率(×√2 換算前)」と捉えると、感覚的にイメージしやすいですよ。
戻り値リファレンス(早見表)
代表的な値の戻り値をまとめておきます。検算や概算用に使ってくださいね。
| 数式 | 結果 | 補足 |
|---|---|---|
| =ERFC.PRECISE(-1) | 約1.8427 | 負の下限:1を超える値になる |
| =ERFC.PRECISE(0) | 1 | 全範囲なので1 |
| =ERFC.PRECISE(0.5) | 約0.4795 | およそ48% |
| =ERFC.PRECISE(1) | 約0.1573 | およそ16% |
| =ERFC.PRECISE(1.5) | 約0.0339 | およそ3% |
| =ERFC.PRECISE(2) | 約0.00468 | ほぼ0に近い |
| =ERFC.PRECISE(3) | 約0.0000221 | 実質ゼロ |
xが大きくなるほど結果は急速に0に近づき、xが負になると1を超える値が返る点を押さえておきましょう。x=3を超えるとほぼ0になるため、品質管理の不良率計算では「x=3で実質的に問題ない」という判断材料にもなりますよ。
セル参照を使う方法
セルに入力された値を参照することもできます。たとえばA1セルに「1.5」と入力されている場合、次のように書きます。
=ERFC.PRECISE(A1)
結果は約 0.0339 です。セル参照を使えば、下限値を変えるたびに数式を書き直す必要がないので便利ですよ。複数の下限値を一気に評価したいときも、数式をコピーするだけで済みます。
ERFC.PRECISE関数の実践的な使い方・応用例
ERF関数との組み合わせで検算する
ERFC.PRECISE関数とERF関数には「ERFC.PRECISE(x) + ERF(x) = 1」という関係があります。この性質を使って、計算結果が正しいかどうかを検算できますよ。
=ERFC.PRECISE(A1) + ERF(A1)
この数式の結果が1になれば、両方の関数が正しく動いていることが確認できます。手で書いた数式の単純ミスや、参照セルの取り違えに気づきやすくなるので、複雑な統計計算を組むときには習慣にしておくと安心ですよ。
正規分布の上側確率(p値)を求める
ERFC.PRECISE関数の最大の活躍場面が、標準正規分布の上側確率の計算です。標準正規分布で「z より大きい値が出る確率」は、次の数式で求められます。
P(Z > z) = ERFC.PRECISE(z / SQRT(2)) / 2
統計学でよく使うzの値と上側確率を表にまとめておきますね。
| z | 数式 | 結果 | 意味 |
|---|---|---|---|
| 1.645 | =ERFC.PRECISE(1.645/SQRT(2))/2 | 約0.05 | 有意水準5%(片側) |
| 1.96 | =ERFC.PRECISE(1.96/SQRT(2))/2 | 約0.025 | 有意水準5%(両側)の片側 |
| 2.326 | =ERFC.PRECISE(2.326/SQRT(2))/2 | 約0.01 | 有意水準1%(片側) |
| 2.576 | =ERFC.PRECISE(2.576/SQRT(2))/2 | 約0.005 | 有意水準1%(両側)の片側 |
仮説検定でp値の早見表を引きながら作業している方は、Excel上に検定基準のz値を並べてERFC.PRECISEで一発計算しておくと、レポート作成がぐっとラクになりますよ。SQRT関数と組み合わせる定番パターンとして覚えておきましょう。
TIP
両側確率(|Z| > z の確率)が必要な場合は
÷2を外して=ERFC.PRECISE(z/SQRT(2))のままで使えます。「片側か両側か」で÷2の有無が変わるので、検定の種類に合わせて選んでくださいね。
品質管理の不良率を計算する
製造業の品質管理では、規格を外れる不良率を ERFC.PRECISE で見積もれます。平均μ、標準偏差σの工程で、上限規格 USL までの距離をσ単位(k = (USL-μ)/σ)で表すとき、上側不良率は次の数式で求まります。
上側不良率 = ERFC.PRECISE(k / SQRT(2)) / 2
具体例で確認してみましょう。平均寸法 50.0mm、標準偏差 0.1mm、上限規格 50.2mm の工程の場合、k = (50.2 – 50.0) / 0.1 = 2 です。
=ERFC.PRECISE(2/SQRT(2))/2
結果は 0.02275、つまり約2.28%が上限規格を超えてしまうという見積もりになります。下限規格側も同じ条件なら、両側合計で約4.55%が規格外、という工程能力評価ができますよ。
複数の下限値で一括計算する
下限値を表にまとめて、ERFC.PRECISEで一気に処理することもできます。たとえばA1:A5に下限値(0、0.5、1、1.5、2)を入力しておき、B1セルに次の数式を入力します。
=ERFC.PRECISE(A1)
これをB5までドラッグコピーすれば、5つの下限値に対する積分値を一度に計算できます。品質管理で複数の規格基準を並べて比較したり、統計処理で異なるzに対する確率を一覧化したいときに便利ですよ。
通信工学のBER見積もりに使う
通信分野では、BPSK変調方式のビット誤り率(BER)が次の式で表されます。
BER = (1/2) × ERFC.PRECISE(SQRT(Eb/N0))
ここで Eb/N0 は信号対雑音比です。たとえば Eb/N0 = 10(10倍)のとき、
=0.5*ERFC.PRECISE(SQRT(10))
の結果は約 3.87 × 10^-6 で、約100万ビットに4ビット誤りが発生する水準です。通信回線の品質設計で参考値が必要なときに使えますよ。
ERFC.PRECISE関数のよくあるエラーと対処法
ERFC.PRECISE関数でよく出るエラーは2種類だけです。落ち着いて見直せばすぐ解消できますよ。
| エラー | 主な原因 | 対処法 |
|---|---|---|
| #VALUE! | 引数が数値以外(文字列・特定状態の空白セル) | ISNUMBER関数で型チェック、IFで空白判定 |
| #NAME? | 関数名スペルミス、Excel 2007以前 | 「ERFC.PRECISE」(ドット付き)と正確入力、バージョン確認 |
#VALUE! エラー
原因: 引数xに数値以外の値(文字列など)を指定した場合に発生します。
対処法: 引数が数値になっているか確認してください。セル参照を使っている場合は、参照先のセルに文字列が入っていないかチェックしましょう。
=ERFC.PRECISE("abc") → #VALUE! エラー
=ERFC.PRECISE(1) → 正常(約0.1573)
参照セルに文字列や全角数字が混入しているケースもよくあります。ISNUMBER関数を使って =IF(ISNUMBER(A1), ERFC.PRECISE(A1), "数値を入力してください") のように包んでおくと、入力ミスがあっても表全体が壊れずに済みますよ。
#NAME? エラー
原因: 関数名のスペルミスか、対応していないバージョンのExcelを使っている可能性があります。
対処法: 関数名が「ERFC.PRECISE」になっているか確認しましょう。「ERFC_PRECISE」のようにピリオドをアンダースコアにしてしまうミスや、「ERFCPRECISE」とドットを抜かしてしまうミスが起きやすいので注意してくださいね。
=ERFC_PRECISE(1) → #NAME? エラー(ピリオドが正しい)
=ERFCPRECISE(1) → #NAME? エラー(ピリオドが必要)
=ERFC.PRECISE(1) → 正常
また、Excel 2007以前のバージョンではERFC.PRECISEは使えません。古い環境で同じ計算をしたいときは、計算結果が同じERFC関数(Excel 2003から利用可能)を使えばOKですよ。
結果が0に近い値になる
これはエラーではありません。xに大きな値(たとえば5以上)を指定すると、結果が非常に0に近い値になります。相補誤差関数の性質上、下限値が大きくなるほど積分範囲が「ほぼ確率0の領域」になるためです。計算自体は正しいので、安心してくださいね。
レポートで小さすぎて読みにくいときは、セルの表示形式を「指数表示」に変えると 1.23E-08 のように表示されて見やすくなりますよ。
似た関数との違い・使い分け(ERF / ERF.PRECISE / ERFC)
ERFC.PRECISE関数と似た関数がいくつかあります。違いを比較表で整理しておきましょう。
| 関数名 | 構文 | 積分範囲 | 引数 | 特徴 |
|---|---|---|---|---|
| ERF | =ERF(下限, [上限]) | 下限〜上限 | 下限(必須), 上限(省略可) | 区間積分が可能。柔軟性が高い |
| ERF.PRECISE | =ERF.PRECISE(x) | 0〜x | x(上限) | 0から上限までの誤差関数の積分値 |
| ERFC | =ERFC(x) | x〜+∞ | x(下限) | 相補誤差関数の積分値を返す |
| ERFC.PRECISE | =ERFC.PRECISE(x) | x〜+∞ | x(下限) | ERFCと同じ結果を返す(ISO規格準拠) |
ERFC.PRECISE と ERFC の違い
実は、ERFC.PRECISEとERFC関数の計算結果はまったく同じです。同じxを入れれば、戻り値も完全に一致しますよ。
ではなぜ別関数として用意されたかというと、Excel 2010で ISO/IEC 29500(OOXMLファイルフォーマット規格)に準拠 するためです。同じタイミングで CEILING.PRECISE、FLOOR.PRECISE といった「.PRECISE」シリーズが追加されており、命名規則を揃える目的もあります。
実務上の使い分けは次のとおりです。
- 互換性最優先(Excel 2003以前のファイルも開く環境): ERFC関数
- タイプ数を減らしたい: ERFC関数(ピリオドが不要)
- ISO規格準拠の数式表記をしたい: ERFC.PRECISE関数
- 論文・規格書の数式を再現したい: ERFC.PRECISE関数
新規にExcelファイルを作る場合、どちらを選んでも結果は同じなので、お好みで選んで大丈夫ですよ。
ERF系とERFC系の関係
ERF系の関数が「0からxまでの積分値」を返すのに対し、ERFC系の関数は「xから無限大までの積分値」を返します。両者の合計は常に1になるので、片方がわかればもう片方も計算できますね。
ERF(x) + ERFC(x) = 1
ERF.PRECISE(x) + ERFC.PRECISE(x) = 1
「規格内に収まる確率」が必要なら ERF系、「規格を外れる確率(不良率)」が必要なら ERFC系を使うと、引き算の手間が省けます。
ERFC.PRECISE と NORM.S.DIST の使い分け
正規分布の確率を求めたいだけなら、NORM.S.DIST関数も選択肢になります。両者の関係は次の式です。
NORM.S.DIST(z, TRUE) = 1 - ERFC.PRECISE(z/SQRT(2))/2
たとえば標準正規分布で z=1 までの累積確率を求める場合、=NORM.S.DIST(1, TRUE) で 0.8413 が直接得られます。一方、上側確率(z=1より大きい値が出る確率)が欲しいなら =ERFC.PRECISE(1/SQRT(2))/2 で 0.1587 が出せます。
実務での使い分けの目安は次のとおりです。
- 累積確率(z以下の確率)がほしい: NORM.S.DIST(直接的で読みやすい)
- 上側確率(zより大きい確率・p値)がほしい: ERFC.PRECISE
- 誤差関数そのものがほしい: ERFC.PRECISE(数式や論文の再現用)
- 両側確率(|Z| > z の確率)がほしい: =ERFC.PRECISE(z/SQRT(2))(÷2不要)
どの関数を選べばいい?
最後に用途別の選び方をまとめておきましょう。
- 0からxまでの積分値が必要 → ERF関数 または ERF.PRECISE関数
- xから無限大までの積分値が必要 → ERFC関数 または ERFC.PRECISE関数
- 任意の区間(aからbまで)の積分値が必要 → ERF関数(引数2つで指定)
- 正規分布の累積確率がほしい → NORM.S.DIST関数
- 正規分布の上側確率(p値)がほしい → ERFC.PRECISE関数 ÷ 2
用途に合わせて使い分けてみてくださいね。
まとめ
ExcelのERFC.PRECISE関数について解説しました。ポイントを振り返っておきましょう。
- ERFC.PRECISE関数は、相補誤差関数の積分値(下限xから無限大まで)を返す関数
- 構文は
=ERFC.PRECISE(x)で、引数は下限値の1つだけ - ERF関数との関係は ERFC.PRECISE(x) = 1 – ERF(x)
- ERFC関数と計算結果は完全に同じ(ISO規格準拠の命名統一が目的)
- 正規分布の上側確率(p値)は
=ERFC.PRECISE(z/SQRT(2))/2で求められる - 品質管理の不良率は
=ERFC.PRECISE(k/SQRT(2))/2(k = 規格までのσ数)で見積もれる - エラーは #VALUE!(数値以外)と #NAME?(スペルミス・古いバージョン)の2種類
誤差関数ファミリー(ERF / ERF.PRECISE / ERFC / ERFC.PRECISE)を使いこなして、Excelでの統計処理や品質管理の計算を効率化してみてくださいね。