「ExcelでZ.TEST関数を使ったら、片側か両側かわからずに結果を解釈してしまった」。仮説検定でやりがちな失敗ですよね。ExcelのZ.TEST関数はz検定の片側P値だけを返す関数なので、両側検定をしたいときは変換式が欠かせませんよ。
この記事では、ExcelのZ.TEST関数の使い方を構文・引数・実践例で解説します。片側と両側の使い分け、T.TESTとの違い、#N/Aや#DIV/0!などのエラー対処までまとめて紹介しますよ。
Z.TEST関数とは?Excelでz検定の片側P値を求める統計関数
Z.TEST関数は、z検定(ゼット検定)の片側P値を返すExcelの統計関数です。「標本平均が、仮説で設定した母平均と統計的に有意に異なるか」を確かめるときに使いますよ。
対応バージョンは現行のMicrosoft 365とExcel 2019以降が基本で、Excel 2010以降であれば問題なく使えます。古いバージョンの互換関数「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についての注意: 母標準偏差が既知の場合は明示的に指定します。省略すると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統計量以上の値をとる確率」を表しますよ。標準正規分布の確率を直接計算したいときはNORMSDIST関数(旧 NORM.S.DIST)を組み合わせて使うこともできます。
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、標本標準偏差は約2.58gです。標本平均が仮説値より大きいため、Z.TESTは0.5より小さいP値を返しますよ。
結果: 約0.110
このP値は0.110=11.0%です。有意水準5%(0.05)を上回るため、「平均が500gと異なる」とは言えません(帰無仮説を棄却できない)。
sigma(母標準偏差)を指定する場合
母集団の標準偏差が既知(例: 過去データから σ=3 とわかっている)の場合は、第3引数に指定します。
=Z.TEST(B2:B11, D2, 3)
同じデータでσ=3を指定した場合、結果は約0.146になりますよ。sigmaを指定すると、標本標準偏差ではなく既知の母標準偏差で計算するため、より厳密な検定になります。
実践例: 広告施策の効果検証
マーケティング施策の効果を検証するケースを考えます。広告投下前の平均来店数(過去1年の母平均)が120人/日で、投下後30日間の来店数データから「平均が増えたか」を検定するシナリオです。
| セル | 内容 |
|---|---|
| B2:B31 | 広告投下後30日分の来店数 |
| D2 | 投下前の母平均 = 120 |
| D3 | 過去データから既知の母標準偏差 = 10 |
右片側検定(「増えたか」を検証)の式は次のとおりです。
=Z.TEST(B2:B31, D2, D3)
例えば、広告投下後の平均が124人/日(n=30、σ=10)だった場合、P値は約0.014になります。0.05を下回るため「広告で来店数が有意に増えた」と判断できますよ。マーケティング部門への報告にも数値根拠として使えるわけです。
片側検定と両側検定の違い・使い分け
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値を算出します。「右側と左側のどちらの裾野が小さいか」を自動で判断してくれますよ。
先ほどの品質検査の例(n=10、平均501、σ省略)で実際に計算すると、片側P値=0.110、両側P値≈0.221になります。両側のほうが厳しい基準なので、片側で「微妙に有意差あり」だった場合でも、両側だと有意差なしになることがありますよ。
検定の種類を選ぶ判断基準
どの検定を使うかは、仮説を立てるときに決めます。
「差があるかどうかを確認したい」 → 両側検定
「AよりBのほうが大きいか確認したい」 → 片側検定(右片側)
「AよりBのほうが小さいか確認したい」 → 片側検定(左片側)
ビジネスの現場では「差があるかどうか」を検証することが多いため、両側検定(両側P値)を使うケースが大半です。
片側検定は事前に「どちらの方向にズレるか」が予測できるとき、または「どちらか一方向のズレだけが問題」となるとき(例: 製品の最大許容重量だけを問題視する場合)に限定して使いましょう。
ZTEST互換関数との違い
ZTESTはZ.TESTの旧名
かつてのExcelでは「ZTEST」という関数名で提供されており、その後の改定でZ.TESTに改名されました。現行のMicrosoft 365とExcel 2019以降では、新しい関数名のZ.TESTを使うのが標準です。
| 項目 | ZTEST | Z.TEST |
|---|---|---|
| 位置づけ | 互換性関数(旧名) | 現行の正式名 |
| 引数・計算式 | 同一 | 同一 |
| 推奨度 | 既存ファイル互換のために残存 | 新規作成時はこちら |
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を使うほうが統計的に適切ですよ。詳しい使い方はTTEST関数の使い方(旧: T.TEST)で解説しています。t分布のP値を直接求めたいときはTDIST関数(旧 T.DIST)、t分布の臨界値を求めるならTINV関数(旧 T.INV)が便利です。
Z.TEST関数は「大規模データで母平均の仮説を検証する」場面に向いています。例えば、数百件のアンケートデータで「業界平均との差があるか」を確認するケースなどですね。
分散の検定が必要なケース
「2つのグループで分散(バラつき)に差があるか」を先に確認したい場合は、FTEST関数(旧: F.TEST)を使います。実務では「分散の等しさを確認 → 平均の差をT.TESTで検定」という流れが定番ですよ。
分布の検定が必要なケース
「観測度数が期待度数と一致するか」のようなカテゴリデータの検定は、CHITEST関数(旧: CHISQ.TEST)でカイ二乗検定が使えますよ。
統計的根拠を分析レポートに落とし込むコツ
Z.TEST関数の結果をビジネス文書で使うときは、P値だけでなく次の3点をセットで報告するのがおすすめです。
- 標本平均と仮説値の差: 差の大きさ(実務的なインパクト)が直感的にわかる
- P値と有意水準: 統計的に有意かどうかの判断基準
- サンプルサイズ: 検定結果の信頼性に直結する
報告書のテンプレート例はこうです。
施策後30日間の平均来店数は124人/日(施策前: 120人/日、差: +4人/日、σ=10)。
Z.TEST関数による右片側検定の結果、P値=0.014(有意水準5%)。
帰無仮説を棄却し、施策により来店数が統計的に有意に増加したと判断する。
数値だけを羅列するのではなく「何を検証して、どう解釈したか」をセットで示すと、意思決定の根拠として説得力が高まりますよ。
なお、データ範囲に空白セルが混入していると検定結果が不安定になります。可変長のデータ範囲を扱うときはTRIMRANGE関数で配列の端の空白を除去するテクニックもあわせて確認してみてください。
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(標準偏差)は必ず正の値を指定してください。
#DIV/0!エラー(データが全て同じ値)
arrayの全要素が同じ値の場合、標準偏差がゼロになるため#DIV/0!エラーが発生します(sigma省略時のみ)。
B2:B11が全て500 → STDEV=0 → #DIV/0!
この場合、データが本当に検定可能な分布を持っているかを再確認してください。ばらつきがゼロの集団は統計的検定の対象外ですよ。
結果がおかしいときの確認ポイント
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値を確認したいときに役立ちますよ。標準正規分布の累積確率を求めるNORMSDIST関数、その逆関数であるNORMSINV関数もあわせて確認しておくと、検定全体の理解が深まります。
Q4. Z.TEST の結果が 1 を超えることはある?
ありませんよ。Z.TEST関数はP値(確率)を返すため、常に0以上1以下の値になります。ただし、arrayのデータが全て同じ値(標準偏差がゼロ)の場合は#DIV/0!エラーになります。
Q5. 母分散が未知のときZ.TESTを使ってもよい?
理論的には、母分散(標準偏差)が未知の場合はt検定(T.TEST)を使うのが正しいやり方です。ただし、サンプルサイズが大きい(目安: n≥30)場合は、標本標準偏差で代用しても結果がほぼ一致するため、Z.TESTでも実用上問題ありませんよ。
サンプルサイズが小さく、かつ母標準偏差が未知のときは、必ずT.TESTを使ってください。
Q6. 2つのグループの平均を比較したいときZ.TESTは使える?
Z.TEST関数は「1つの標本と仮説値」を比較する関数で、「2つの標本同士」の比較には対応していません。2グループ間の平均比較にはTTEST関数を使用してください。
どうしてもz検定で2標本を比較したいときは、自分で標準誤差を計算したうえでNORMSDIST関数で確率を求める形になりますよ。
Q7. P値が極端に小さい(例: 0.0001以下)ときは指数表記を直したい?
Excelの既定だとP値が1.23E-05のように指数表記で返ることがあります。レポートに載せるときは、セルの書式設定で「数値」を選び小数点以下4〜6桁を指定するか、=TEXT(Z.TEST(...), "0.0000") のように文字列化すると見やすくなりますよ。
P値が極端に小さい場合は「P < 0.001」と表記するのが学術的な書き方です。実務レポートでも、桁数の見せ方を統一すると読み手の負担が減ります。
Q8. sigmaを指定する場合と省略する場合で結果が大きく変わるのはなぜ?
sigmaを指定すると母標準偏差として固定値を使い、省略すると標本標準偏差(STDEV)で代替計算します。サンプルサイズが小さいと、標本標準偏差は母標準偏差より小さめにブレやすく、結果としてP値も変動しますよ。
「過去データから母標準偏差が確からしくわかる」ときはsigmaを指定し、「目安として検定したい」ときは省略するのが実務的な使い分けです。
Q9. データの一部に欠損(空白セル)がある場合の扱いは?
Z.TEST関数のarrayは、空白セルや論理値・文字列を自動的に無視します。ただし、欠損が多いと検定結果の信頼性が下がるため、事前にCOUNT関数で「実際に使われた件数」を確認してくださいね。
=COUNT(B2:B100) → 実際に検定で使われる件数
可変長のデータを扱うときは、配列の端の空白を除去するTRIMRANGE関数も合わせて使うと安全です。
Z.TEST関数の使い方クイックリファレンス
最後に、Z.TEST関数を実務で使うときの早見表を載せておきますね。
| 知りたいこと | 数式の形 |
|---|---|
| 右片側P値(標本平均 > 仮説値か) | =Z.TEST(array, x, sigma) |
| 左片側P値(標本平均 < 仮説値か) | =1 - Z.TEST(array, x, sigma) |
| 両側P値(差があるか) | =2 * MIN(Z.TEST(array, x, sigma), 1 - Z.TEST(array, x, sigma)) |
| z統計量だけ取り出す | =(AVERAGE(array) - x) / (sigma / SQRT(COUNT(array))) |
| sigma省略時の代替標準偏差 | =STDEV(array)(内部で自動使用) |
有意水準と判定の対応も覚えておくと判断が早くなりますよ。
| P値 | 5%有意水準 | 1%有意水準 | 判定の目安 |
|---|---|---|---|
| 0.001未満 | 棄却 | 棄却 | 非常に強い差の根拠 |
| 0.001〜0.01 | 棄却 | 棄却 | 強い差の根拠 |
| 0.01〜0.05 | 棄却 | 棄却できず | 一定の差の根拠 |
| 0.05〜0.10 | 棄却できず | 棄却できず | 傾向はあるが有意とは言えない |
| 0.10以上 | 棄却できず | 棄却できず | 差の根拠としては弱い |
「P値だけを見て判定する」のではなく、サンプルサイズと効果量(差の大きさ)もセットで判断するのが、実務で誤解されにくい使い方ですよ。
まとめ
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関数を活用してみてください。片側・両側の違いを理解して使えば、統計的根拠のある意思決定に役立てられますよ。
