「Excelで平均値の差が偶然かどうかを確かめたい」。そんなとき、ExcelのZ.TEST関数でz検定のP値を求めれば、仮説の妥当性を数値で確認できます。ところが、Z.TEST関数が返すのは「片側P値」だけです。片側と両側の違いを知らずに使うと、検定結果の解釈を誤ってしまいますよ。
この記事では、ExcelのZ.TEST関数の使い方を構文・引数・実践例をもとに解説します。片側検定と両側検定の使い分け、T.TESTとの違い、よくあるエラーの対処法もあわせて紹介しますよ。
Z.TEST関数とは?Excelでz検定のP値を求める統計関数
Z.TEST関数は、z検定(ゼット検定)の片側P値を返すExcelの統計関数です。「標本の平均値が、仮説で設定した母平均と統計的に有意に異なるか」を確認するときに使います。
対応バージョンはExcel 2010以降・Microsoft 365です。Excel 2007以前の互換関数「ZTEST」も同じ機能ですが、新規作成にはZ.TESTを使いましょう。
z検定とは(統計的仮説検定の基礎)
z検定は、母集団の標準偏差が既知、またはサンプルサイズが十分に大きい(目安: n≥30)ときに使う統計的仮説検定の手法です。
検定の考え方はこうです。
帰無仮説(H0): 母平均 = x(設定した仮説値)
対立仮説(H1): 母平均 ≠ x(または > x、< x)
P値が有意水準(通常5%=0.05)を下回れば、帰無仮説を棄却します。「仮説で設定した平均と、実際のデータの平均には統計的に有意な差がある」と結論づけるわけです。
Z.TEST関数が返す値の意味
Z.TEST関数が返すのは、「標本平均が仮説値より大きい確率」(片側P値)です。
- P値 < 0.5 → 標本平均が仮説値より大きい傾向がある
- P値 > 0.5 → 標本平均が仮説値より小さい傾向がある
- P値 ≈ 0.5 → 標本平均と仮説値がほぼ等しい
通常の「平均値に差があるかどうか」の検定では両側P値が必要です。Z.TEST単体では両側P値は返ってこないため、変換式が必要になります(後述)。
Z.TEST関数の構文と引数の意味
基本構文
=Z.TEST(array, x, [sigma])
引数は最大3つです。最後の「sigma」は省略できます。
各引数の解説
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| array | 必須 | 検定対象のデータが入ったセル範囲または配列 |
| x | 必須 | 検定する仮説の母平均値 |
| sigma | 省略可 | 母集団の既知標準偏差(省略時はSTDEV関数で推定) |
sigmaについての注意: sigma(母標準偏差)が既知の場合は明示的に指定します。省略すると、Excelは自動的にSTDEV(array)(標本標準偏差・不偏標準偏差)で代替します。厳密なz検定では母標準偏差を指定するのが前提ですが、実務では省略することも多いです。
Z.TEST関数の内部計算式
Z.TEST関数の内部では次の計算が行われています。
sigma指定時:
Z.TEST = 1 - NORM.S.DIST((AVERAGE(array) - x) / (sigma / SQRT(n)), TRUE)
sigma省略時:
Z.TEST = 1 - NORM.S.DIST((AVERAGE(array) - x) / (STDEV(array) / SQRT(n)), TRUE)
nはarrayのデータ数(COUNTA(array))です。この式は「標準正規分布で、z統計量以上の値をとる確率」を返します。
Z.TEST関数の基本的な使い方【実践例: 製造ラインの品質検査】
片側P値を求める(基本)
製造ラインで生産した製品の重量データがあり、「母平均が500gである」という仮説を検定します。
| セル | 内容 |
|---|---|
| B2:B11 | 重量データ10件(例: 502, 498, 505, 501, 499, 503, 500, 504, 497, 501) |
| D2 | 仮説母平均 = 500 |
次の数式で片側P値を求めます。
=Z.TEST(B2:B11, D2)
上の例では、標本平均は501gです。仮説値500gより大きいため、Z.TESTは0.5より小さいP値を返します。
結果例: 0.218
このP値は0.218 → 21.8%です。有意水準5%(0.05)を上回るため、「平均が500gと異なる」とは言えません(帰無仮説を棄却できない)。
sigma(母標準偏差)を指定する場合
母集団の標準偏差が既知(例: 過去データから σ=3 とわかっている)の場合は、第3引数に指定します。
=Z.TEST(B2:B11, D2, 3)
sigmaを指定すると、標本標準偏差ではなく既知の母標準偏差で計算するため、より正確な検定になりますよ。
片側検定と両側検定の違い・使い分け
Z.TEST は片側P値しか返さない
Z.TEST関数が返すのは右片側P値(標本平均が仮説値より大きい確率)のみです。通常の「差があるかどうか」の検定には両側P値が必要です。
| 検定の種類 | 仮説 | 使い方 |
|---|---|---|
| 右片側検定 | 標本平均 > 仮説値 か | Z.TEST関数の結果をそのまま使う |
| 左片側検定 | 標本平均 < 仮説値 か | 1 - Z.TEST(array, x) で計算 |
| 両側検定 | 標本平均 ≠ 仮説値 か | 後述の両側P値の変換式を使う |
両側P値への変換式
両側検定では、次の式で両側P値を求めます。
=2 * MIN(Z.TEST(array, x, sigma), 1 - Z.TEST(array, x, sigma))
この式は、片側P値の小さい方を2倍にすることで両側P値を算出する式です。「右側と左側のどちらの裾野が小さいか」を自動で判断してくれますよ。
検定の種類を選ぶ判断基準
どの検定を使うかは、仮説を立てるときに決めます。
「差があるかどうかを確認したい」 → 両側検定
「AよりBのほうが大きいか確認したい」 → 片側検定(右片側)
「AよりBのほうが小さいか確認したい」 → 片側検定(左片側)
ビジネスの現場では「差があるかどうか」を検証することが多いため、両側検定(両側P値)を使うケースが大半です。
ZTEST互換関数との違い
ZTESTはZ.TESTの旧名
Excel 2010以前では「ZTEST」という関数名でした。Excel 2010からZ.TESTに改名されました。
| 項目 | ZTEST | Z.TEST |
|---|---|---|
| 対応バージョン | Excel 2003〜 | Excel 2010〜 |
| 引数・計算式 | 同一 | 同一 |
| 推奨度 | 互換性維持のため残存 | 新規作成時はこちら |
ZTESTはExcelの「互換性関数」カテゴリに分類されており、将来のバージョンで削除される可能性があります。既存のファイルでZTESTを見かけたら、Z.TESTへの書き換えを検討しましょう。
ZTEST(array, x, sigma) → Z.TEST(array, x, sigma)
引数の順序・意味は完全に同じです。
Z.TEST関数 vs T.TEST関数の使い分け
z検定とt検定は、どちらも「平均値の差の検定」に使う統計手法です。Excelではそれぞれ対応する関数が用意されています。
使い分けの基準
| 状況 | 推奨関数 |
|---|---|
| サンプルサイズが大きい(n≥30)かつ母標準偏差が既知 | Z.TEST |
| サンプルサイズが大きい(n≥30)かつ母標準偏差が未知 | Z.TEST(sigmaを省略) |
| サンプルサイズが小さい(n<30) | T.TEST |
| 2つのグループを比較したい | T.TEST |
T.TESTを選ぶべきケース
T.TEST関数は自由度を考慮した検定を行うため、サンプルサイズが小さいときにより正確な結果を返します。
=T.TEST(array1, array2, tails, type)
実務では、製品品質の比較(n=10〜20件)などサンプル数が限られる場面が多いです。そういった場合はT.TESTを使うほうが統計的に適切ですよ。
Z.TEST関数は「大規模データで母平均の仮説を検証する」場面に向いています。例えば、数百件のアンケートデータで「業界平均との差があるか」を確認するケースなどです。
Z.TEST関数でよく起きるエラーと対処法
#N/Aエラー(arrayが空)
arrayに空のセル範囲を指定すると#N/Aエラーが発生します。
=Z.TEST(B2:B11, 500) → B2:B11が空の場合 → #N/A
データが入力されているか確認してください。COUNTA関数で件数を確認するとわかりやすいですよ。
=COUNTA(B2:B11) → 0 なら空
#VALUE!エラー(sigmaが0以下)
sigma引数に0またはマイナスの値を指定すると#VALUE!エラーが発生します。
=Z.TEST(B2:B11, 500, 0) → #VALUE!(sigma=0は不正)
=Z.TEST(B2:B11, 500, -2) → #VALUE!(sigma<0は不正)
sigma(標準偏差)は必ず正の値を指定してください。
結果がおかしいときの確認ポイント
P値が期待通りにならないとき、次の点を確認してみてください。
- 片側と両側を混同していないか: Z.TESTは片側P値を返す。両側検定には変換式が必要
- 標本サイズが小さすぎないか: n<30の場合はT.TESTを検討する
- sigmaの指定が正しいか: 既知の母標準偏差がある場合は明示的に指定する
- arrayの範囲が正しいか: 余分な空白行や文字列が混入していないか確認する
Z.TEST関数に関するよくある質問
Q1. P値が0.05より小さければ有意差ありと判断できる?
P値 < 0.05は「有意水準5%で帰無仮説を棄却できる」ことを意味します。ただし、有意水準は研究・業務の目的によって異なります(1%や10%を使う場合もある)。
また、統計的有意性は「実務的に意味のある差があるか」とは別の話です。大きなサンプルサイズでは、わずかな差でも統計的に有意になることがあります。P値だけでなく、効果量(Effect Size)もあわせて検討することをおすすめします。
Q2. Z.TEST関数で両側P値を求めるには?
次の式を使ってください。
=2 * MIN(Z.TEST(array, x, sigma), 1 - Z.TEST(array, x, sigma))
この式で、右片側と左片側のうち小さいほうを2倍した両側P値が得られます。
Q3. NORM.S.DIST関数を使って手動でz値を計算することもできる?
できます。Z.TESTの計算は次の2ステップに分解できます。
ステップ1: z統計量を計算
z = (AVERAGE(array) - x) / (sigma / SQRT(COUNTA(array)))
ステップ2: 片側P値を求める
P = 1 - NORM.S.DIST(z, TRUE)
Z.TEST関数を使わずにこの手順で計算しても同じ結果が得られますよ。内部計算を理解したいときや、途中のz値を確認したいときに役立ちます。
Q4. Z.TEST の結果が 1 を超えることはある?
ありません。Z.TEST関数はP値(確率)を返すため、常に0以上1以下の値になります。ただし、arrayのデータが全て同じ値(標準偏差がゼロ)の場合は#DIV/0!エラーになります。
まとめ
ExcelのZ.TEST関数は、z検定の片側P値を求める統計関数です。
ポイントをおさらいしておきましょう。
- 構文は
=Z.TEST(array, x, [sigma]) - 返すのは片側P値(標本平均が仮説値より大きい確率)
- 両側検定には変換式が必要:
=2 * MIN(Z.TEST(...), 1 - Z.TEST(...)) - sigma省略時は標本標準偏差(STDEV)で代替計算される
- サンプルサイズが小さい(n<30)場合はT.TESTを使う
- ZTEST(旧名)と機能は同じ。新規作成はZ.TESTを使う
「標本の平均値が仮説値と有意に異なるか」を検証したいとき、Z.TEST関数を活用してみてください。片側・両側の違いを理解して使えば、統計的根拠のある意思決定に役立てられますよ。
