A/Bテストの有意差判定や品質管理の母平均検定で「p値を計算して」と言われたとき、Excelで使える関数のひとつが TDIST関数 です。
ただ、Excelには T.DIST / T.DIST.RT / T.DIST.2T という似た名前の新関数も並んでいて、どれを使えばよいか迷うことが多いですよね。
この記事では、TDIST関数の基本的な使い方から、A/Bテストや品質管理の実務例、新関数や TINV・TTEST との使い分けまでを、まとめて整理します。
ExcelのTDIST関数とは?
ExcelのTDIST関数(読み方:ティーディスト)は、スチューデントの t分布における確率(p値)を返す関数です。関数名は「T–Distribution(t分布)」の略で、統計学者ウィリアム・ゴセットが「Student」という筆名で1908年に発表した分布に由来します。
ざっくり言うと、t値(標本から計算した検定統計量)と自由度を渡すと、「その値以上の極端な結果が出る確率」を返してくれる関数です。仮説検定でいう p値 のことですね。
TDIST関数は、Excel 2007以前から提供されている 旧式の関数で、Excel 2010以降では「互換性関数」のグループに分類されています。後継として T.DIST / T.DIST.RT / T.DIST.2T の3つの新関数が用意されていますが、TDIST関数も後方互換性のために引き続き使えます。
NOTE
「互換性関数」は古いブックでも問題なく動くように維持されている関数群です。新規作成のワークブックでは新関数(T.DIST.RT / T.DIST.2T)が推奨されますが、既存のテンプレートやマクロでTDISTを見かけても、結果は新関数とまったく同じです。
TDIST関数の書き方(構文と引数)
TDIST関数の構文は次のとおりです。
=TDIST(x, deg_freedom, tails)
引数は3つで、すべて必須です。
| 引数 | 必須 | 説明 |
|---|---|---|
| x | 必須 | 分布を評価する数値(t値)。0以上の値のみ指定可 |
| deg_freedom | 必須 | 自由度を表す正の整数(1以上) |
| tails | 必須 | 裾の数を指定(1=片側分布、2=両側分布) |
ポイントは2つあります。
- x には負の値を渡せません。t値が負になった場合は
ABS関数で絶対値を取って渡します。 - tails は1か2のみです。「右側だけの確率がほしいか(1)」「両側の確率がほしいか(2)」を選びます。
戻り値は次のように決まります。
tails=1のとき → P(T ≥ x)、つまり 右側(上側)累積確率tails=2のとき → P(|T| ≥ x)、つまり 両側累積確率
TDIST関数の基本的な使い方
具体例で動かしてみましょう。
t値が「2.0」、自由度が「20」のとき、片側のp値と両側のp値を求める数式は次のとおりです。
=TDIST(2.0, 20, 1) → 約 0.0299(片側のp値)
=TDIST(2.0, 20, 2) → 約 0.0598(両側のp値)
両側のp値は片側の約2倍になっています。t分布が左右対称なので、両側は両端の確率を合計するためです。
セル参照で書くこともできます。
| セル | 値 |
|---|---|
| B2 | 2.0(t値) |
| B3 | 20(自由度) |
=TDIST(B2, B3, 2)
TIP
t値が負になることがあった場合は、ABS関数で絶対値を取って渡します。
=TDIST(ABS(B2), B3, 2)のように書けば、負のt値でも #NUM! エラーを防げます。
【実務例】A/BテストでCV率の有意差を判定する
WebサイトのABテストで、デザインAとデザインBのコンバージョン率(CV率)に差があるかを検定する例です。
| グループ | サンプル数 | CV率 |
|---|---|---|
| A | 100人 | 5.0% |
| B | 100人 | 6.5% |
「AとBに差があるか」は方向性を問わない検定なので、両側検定(tails=2) を使います。
事前に標準誤差からt値を求めると、約1.85になります(自由度は n_A + n_B − 2 = 198)。
=TDIST(1.85, 198, 2) → 約 0.066
p値が約0.066なので、有意水準5%(=0.05)と比較すると 0.066 > 0.05。よって「AとBに有意な差があるとは言えない」と判定します。
もし「Bの方が高い」と方向性を仮定する片側検定なら、=TDIST(1.85, 198, 1) で約0.033となり、5%水準で有意差ありと判定できます。検定の方向性で結論が変わるので、tailsの指定は慎重に決めましょう。
【実務例】品質管理で母平均が基準値と異なるか検定する
製品の重量基準が500gの工場で、サンプル20個を測定した結果、平均502g、標準偏差3gだったとします。「実際の母平均は基準より重いのか?」を検定する例です。
帰無仮説は「母平均 = 500g」、対立仮説は「母平均 > 500g」(重い方向のみを仮定)なので、片側検定(tails=1) を使います。
t値は次のように計算できます。
t = (標本平均 − 基準値) ÷ (標準偏差 ÷ √サンプル数)
= (502 − 500) ÷ (3 ÷ √20)
≒ 2.98
自由度は n − 1 = 19 なので、
=TDIST(2.98, 19, 1) → 約 0.0039
p値は0.0039で、有意水準5%より小さいため 「母平均は500gより有意に大きい」 と判定できます。
NOTE
「両側か片側か」は検定の前に決めておくのが原則です。結果を見てから tails を切り替えると、p値ハッキングと呼ばれる統計的な誤りにつながります。
T.DIST / T.DIST.RT / T.DIST.2T との違い・使い分け
TDIST関数と新関数3つの違いを整理します。
| 関数名 | 戻り値 | 引数 | 対応バージョン |
|---|---|---|---|
| TDIST | 右側 or 両側確率(x≥0必須) | (x, df, tails) | Excel 2007以前~(互換性関数) |
| T.DIST | 左側累積確率 / 確率密度 | (x, df, cumulative) | Excel 2010以降 |
| T.DIST.RT | 右側累積確率 | (x, df) | Excel 2010以降 |
| T.DIST.2T | 両側累積確率(x≥0必須) | (x, df) | Excel 2010以降 |
数学的には次の関係が成り立ちます。
TDIST(x, df, 1)=T.DIST.RT(x, df)(右側のp値)TDIST(x, df, 2)=T.DIST.2T(x, df)(両側のp値)T.DIST(x, df, TRUE)=1 − T.DIST.RT(x, df)(左側のp値)
つまりTDIST関数の代わりに新関数を使うなら、tails=1 → T.DIST.RT、tails=2 → T.DIST.2T に置き換えればまったく同じ結果になります。
TIP
新関数の T.DIST(無印)だけは「左側」の累積確率を返すので、TDIST と同じ感覚で使うと結果が反転します。新関数で「TDIST と同じ右側の値」を出したいなら T.DIST.RT を使うのが安全です。
どちらを選ぶべきか
| 状況 | 推奨 |
|---|---|
| 既存のテンプレート・マクロを保守するとき | TDIST(書き換え不要) |
| 新規ワークブックを作るとき | T.DIST.RT / T.DIST.2T |
| 古いExcel(2007以前)を使う人と共有するとき | TDIST(互換性が高い) |
| 左側のp値が必要なとき | T.DIST(無印) |
TINV関数・TTEST関数との使い分け
t分布まわりの関数は3つセットで覚えると整理しやすいです。
| 関数 | 入力 | 出力 | 使う場面 |
|---|---|---|---|
| TDIST | t値 + 自由度 | p値 | 計算済みのt値からp値を求める |
| TINV | p値(両側)+ 自由度 | t値(臨界値) | 信頼区間の臨界値を求める |
| TTEST | 2つのデータ範囲 | p値 | データから一気にp値を出す |
実務では使い分けが次のようになります。
- 「2つのデータの差を検定したい」 → TTEST関数 が最速
- 「自分でt値を計算してからp値を出したい」 → TDIST関数
- 「95%信頼区間の臨界値を求めたい」 → TINV関数
NOTE
TINV関数は「両側のp値」から t値を逆算する関数です。片側の臨界値が必要なときは、有意水準を2倍してから渡します(例: 片側5%なら
=TINV(0.10, df))。
新関数では TDIST → T.DIST.RT / T.DIST.2T、TINV → T.INV / T.INV.2T、TTEST → T.TEST という対応関係になっています。
TDIST関数のよくあるエラーと対処法
TDIST関数で発生しやすいエラーをまとめました。
| エラー | 原因 | 対処法 |
|---|---|---|
| #NUM! | x が負の値 | ABS(x) で絶対値を渡す |
| #NUM! | deg_freedom が0以下 | 自由度を1以上の整数で指定する |
| #NUM! | tails が 1 または 2 以外 | 1か2のみを指定する |
| #VALUE! | 引数に文字列が含まれる | 数値(またはセル参照)を指定する |
| 結果が想定と違う | tails の指定ミス | 検定の方向性(片側/両側)を確認する |
NOTE
deg_freedom は内部で整数に切り捨てられるので、
19.7を渡しても19として扱われます。とはいえ、可読性のために整数値で書くのがおすすめです。
まとめ:TDIST関数で仮説検定をマスターしよう
TDIST関数のポイントを最後にまとめます。
- TDIST関数 = t値からp値を返す関数(仮説検定のp値計算に使う)
- 引数は
=TDIST(x, deg_freedom, tails)、x は0以上の値のみ - tails=1 で片側のp値、tails=2 で両側のp値が返る
- 新関数の T.DIST.RT / T.DIST.2T と完全に同じ結果になる(後方互換)
- 既存のテンプレートを保守するならTDIST、新規ならT.DIST.RT / T.DIST.2Tがおすすめ
- 2標本のデータから直接p値を出したい場合は TTEST関数 が便利
A/Bテストや品質管理など、実務で「有意差があるかどうか」を判定する場面はこれから増えていきます。TDIST関数を一度マスターしておけば、新関数に切り替わっても考え方はそのまま使えるので安心です。
t分布まわりの関連関数として、信頼区間の臨界値を求める ExcelのTINV関数 や、母集団全体の標準偏差を求める ExcelのSTDEVP関数・ExcelのSTDEV関数 もあわせて押さえておくと、Excelで一通りの統計処理ができるようになります。
