「研修前後で点数は本当に上がった?」「A店とB店で売上に差はある?」と聞かれて、Excelで答えに詰まった経験はありませんか。平均値を見比べるだけでは、差が偶然か本物か判断がつきませんよね。
ここで使えるのが、ExcelのT.TEST関数です。t検定(2グループの平均値に差があるかを統計的に判定する手法)の結果を、p値(確率)として一発で返してくれます。
本記事では、構文の基本から、tails(片側/両側)とtype(対応あり/等分散/異分散)の使い分けまで解説します。業務シナリオでの実例やp値の読み方も、腹落ちするまで噛み砕いていきますね。
T.TEST関数とは?Excelでt検定のp値を返す関数
「T.TEST = t検定」の意味
T.TEST関数は、Excelで2つのデータセットからt検定を実行し、p値を返す統計関数です。読み方は「ティー・テスト」です。
関数名のT.TESTは、T(t分布を用いた)+ TEST(検定)の組み合わせです。「t分布を使って2グループの差を検定する関数」と覚えておきましょう。
具体的には、2つのサンプルデータの平均値が「統計的に意味のある差」を持つかどうかを判定します。判定結果はp値(その差が偶然起こる確率)として返ります。p値が小さいほど「偶然では起きにくい=本当に差がある可能性が高い」と判断できる仕組みです。
t分布関連関数の中での位置づけ
t分布関連のExcel関数は、大きく3つのグループに分かれます。
- 確率を求める: T.DIST / T.DIST.RT / T.DIST.2T
- 臨界値を求める: T.INV / T.INV.2T
- 検定を実行する: T.TEST(本記事)
T.TESTは「2サンプルからp値まで一気に出す」役割で、検定の最終アウトプットを担当します。臨界値計算が必要な場合は、姉妹関数のT.INV.2T関数が使えますよ。
主な使いどころ一覧
T.TEST関数の代表的な活用シーンは次の3つです。
- 施策実施前後の効果検証(売上・点数・体重などの変化)
- A/Bテストで2案の優劣を統計的に判定
- 品質比較(製造ラインA・B間の不良率や寸法差)
実務では特に「前後比較」と「2グループ比較」での出番が多いです。データを並べてT.TESTを1本書くだけで、報告書の説得力がぐっと上がりますよ。
T.TEST関数の書き方(構文と引数)
=T.TEST(array1, array2, tails, type)の4引数
T.TEST関数はExcel 2010以降で利用できる統計関数です。構文は次の4引数構成です。
=T.TEST(array1, array2, tails, type)
- array1: 1つ目のデータセット(配列または範囲)
- array2: 2つ目のデータセット(配列または範囲)
- tails: 1=片側検定、2=両側検定
- type: 1=対応あり、2=等分散の独立、3=分散異なる独立
たとえば「A2:A11とB2:B11のデータで、両側・対応ありの検定」を行う場合は次のように書きます。
=T.TEST(A2:A11, B2:B11, 2, 1)
→ 0.0023(例)
戻り値は0〜1の確率(p値)です。0.05未満なら「5%水準で有意差あり」と判断するのが一般的なルールですよ。
tailsとtypeの選び方の基本ルール
ここで覚えておきたいのが、tailsとtypeの選び方です。検定の種類が変わるだけで結果が大きく変わるので、必ず最初に整理しましょう。
tails(片側か両側か)は仮説の方向で決めます。「Aの方がBより大きい」と方向を限定するなら片側(tails=1)です。「AとBに差がある」と方向を問わないなら両側(tails=2)になります。実務では迷ったら両側(=2)を選ぶのが安全ですよ。
typeは2つのデータセットの関係で決まります。同じ対象の前後比較なら1、独立した2グループで分散が等しいなら2、分散が異なるなら3です。type選びの詳細は後述の早見表で整理しますね。
戻り値はp値(0以上1以下の確率)
T.TESTが返すのはp値そのものです。p値とは「もし本当は差がないとしたら、観測されたデータが偶然得られる確率」を意味します。
=T.TEST(A2:A11, B2:B11, 2, 2) → 0.0341
この場合、「差がないと仮定したときに、こんな差が偶然出る確率は約3.4%」という意味になります。一般的な5%基準(p < 0.05)を下回っているので、「有意差あり」と判定できますよ。
T.TEST関数の基本的な使い方
サンプルデータでp値を計算してみる
まずはシンプルな例で動作確認をしましょう。研修前後の点数比較を想定したデータです。
A列(研修前): 60, 62, 65, 68, 70, 72, 75, 78
B列(研修後): 65, 68, 70, 72, 75, 78, 80, 82
ここでT.TESTを実行してみます。
=T.TEST(A2:A9, B2:B9, 2, 1)
→ 0.0001 程度
p値が0.05どころか0.01も大きく下回っていますね。「研修前後で点数に有意差がある」と強い確信を持って言える結果です。研修効果が統計的に立証されたわけですよ。
p値の解釈(有意差の判定基準)
p値が出たら、有意水準(差ありと判定する基準確率)と比較して結論を出します。実務でよく使う基準を表にまとめました。
| p値の範囲 | 解釈 | 報告での書き方の例 |
|---|---|---|
| p < 0.01 | 1%水準で有意差あり(強い証拠) | 「有意差あり(p<0.01)」 |
| p < 0.05 | 5%水準で有意差あり(一般的な基準) | 「有意差あり(p<0.05)」 |
| p ≥ 0.05 | 有意差なし | 「有意差は認められない」 |
「p値が小さい=差が確実」と直感的に覚えておくと判断が速くなります。逆にp値が0.05以上の場合は「差があるとは断言できない」と慎重に書くのがビジネス文書の作法ですよ。
自動判定を組み込む数式
IF関数と組み合わせれば、報告書のセルに「有意差あり」「有意差なし」を自動表示できます。
=IF(T.TEST(A2:A9, B2:B9, 2, 1) < 0.05, "有意差あり", "有意差なし")
3段階で判定したい場合は、IFS関数を使うとスッキリ書けます。
=IFS(T.TEST(A2:A9,B2:B9,2,1)<0.01,"強い有意差",T.TEST(A2:A9,B2:B9,2,1)<0.05,"有意差あり",TRUE,"有意差なし")
ダッシュボードや定例レポートに組み込むと、毎回の解釈作業が不要になりますよ。
tails × type 6パターンの使い分け早見表
T.TESTで一番悩むのが、tailsとtypeの組み合わせ選びです。実務シナリオ別にまとめた早見表を用意しました。
| パターン | tails | type | 使う場面の例 |
|---|---|---|---|
| 前後の片側 | 1 | 1 | 研修後に点数が上がったか(方向限定) |
| 前後の両側 | 2 | 1 | ダイエット前後で体重に変化があったか |
| 等分散・片側 | 1 | 2 | A店の方がB店より売上が高いか(同規模) |
| 等分散・両側 | 2 | 2 | 同条件のA組B組のテスト点数比較 |
| 異分散・片側 | 1 | 3 | A店の方がB店より単価が高いか(規模差大) |
| 異分散・両側 | 2 | 3 | 規模の違うA社B社の品質比較 |
実務での迷い方を減らす3ステップを覚えておきましょう。
- 同じ対象の前後比較か? → YES なら type=1、NO なら次へ
- 2グループの分散はだいたい同じか? → YES なら type=2、NO なら type=3
- 「Aの方が大きい」と方向を限定するか? → YES なら tails=1、NO なら tails=2
迷ったら type=3, tails=2(異分散・両側)を選ぶのが最も無難で、近年の統計実務でも推奨されていますよ。
T.TEST関数の実践的な使い方・応用例
施策実施前後の売上比較(type=1)
マーケティング施策の効果を検証するシナリオです。10店舗で実施した施策の前後売上が、A2:A11(前)とB2:B11(後)に入っているとしましょう。
=T.TEST(A2:A11, B2:B11, 2, 1)
→ 0.0078
p値が0.05を下回ったので、「施策によって売上に有意な差が生じた」と報告できます。同一店舗の前後比較なので、type=1(対応あり)が必須ですよ。
ここで誤ってtype=2や3を選ぶと、ペアになっている情報が無視され、検出力が落ちて差を見逃すリスクがあります。前後比較では必ずtype=1を使ってくださいね。
A/Bテストでクリック率比較(type=3 ウェルチ)
WebサイトのA案・B案でクリック率を比較するシナリオです。A案はサンプル数が多く、B案は少なめという状況がよくあります。
=T.TEST(A2:A101, B2:B51, 2, 3)
→ 0.0421
サンプルサイズが違う2グループは分散も異なりがちなので、type=3(ウェルチのt検定)を使うのが安全です。p値0.0421なら5%基準で「B案の方が優れている」と判定できますよ。
ウェルチのt検定は、等分散仮定が成り立たない場合でも頑健に動作します。最近の統計教科書では「迷ったらWelch」が標準的な指針になっていますね。
品質管理での製造ライン比較(type=2 等分散)
製造ラインAとBで部品寸法を比較するシナリオです。両ラインとも同じ機械・同じ条件なので、分散は等しいと仮定できる場面ですね。
=T.TEST(A2:A31, B2:B31, 2, 2)
→ 0.1245
p値が0.05を上回ったので、「両ラインの品質に有意差があるとは言えない」と結論できます。製造工程の品質均一性を確認するレポートで重宝しますよ。
事前にF.TEST関数で等分散性を確認してからtype=2を選ぶのが本来の手順です。F.TESTのp値が0.05以上なら「等分散と見なしてOK」と判断できますね。
F.TESTとの連携でtype判定を自動化
実務ではtype=2かtype=3かの判断を自動化すると便利です。F.TESTの結果に応じて、IF関数で切り替える方法があります。
=IF(F.TEST(A2:A31,B2:B31)>=0.05, T.TEST(A2:A31,B2:B31,2,2), T.TEST(A2:A31,B2:B31,2,3))
F.TESTで等分散と判断できればtype=2、そうでなければtype=3を自動選択する仕組みです。判定ロジックをセル数式に閉じ込めると、データが更新されても都度悩まずに済みますよ。
T.INV.2Tとの違い・使い分け
p値ベース(T.TEST) vs 臨界値ベース(T.INV.2T)
t検定の結論を出すには、2つのアプローチがあります。p値で判定するか、臨界値(境界となるt値)で判定するかです。
| 関数 | 入力 | 出力 | 判定方法 |
|---|---|---|---|
| T.TEST | 2つのデータセット | p値 | p < α なら有意差あり |
| T.INV.2T | 確率と自由度 | 臨界値t | t統計量 > 臨界値 なら有意差あり |
T.TESTは「データを渡すだけ」で結論まで一気に出せる手軽さが魅力です。一方T.INV.2Tは検定統計量や信頼区間を細かく組み立てたい場合に使います。論文や統計レポートでは両方を併記するスタイルもよく見かけますよ。
両方をセットで使うレポート例
報告書の説得力を高めるなら、両方を併記するのが効果的です。
p値: =T.TEST(A2:A11, B2:B11, 2, 3)
自由度: =COUNT(A2:A11)+COUNT(B2:B11)-2
臨界値: =T.INV.2T(0.05, COUNT(A2:A11)+COUNT(B2:B11)-2)
p値と臨界値の両方を提示すると、「数値で判断する派」と「視覚的な境界で判断する派」の両方に対応できます。社内のレビュー文化に合わせて使い分けるとよいですよ。
旧TTEST関数との互換性
T.TEST関数は、Excel 2010以降に導入された比較的新しい関数です。それ以前のバージョンでは、旧TTEST関数が同じ役割を担っていました。
両者の関係は次のとおりで、結果は完全に一致します。
=TTEST(A2:A11, B2:B11, 2, 2) → 0.0341
=T.TEST(A2:A11, B2:B11, 2, 2) → 0.0341
引数の順序・型・戻り値、すべて同一です。互換性のため旧TTESTも引き続き使えますが、新規作成時はT.TESTを推奨します。関数名に「.」が入る新世代の命名ルールに沿うためです。
これでT.DIST、T.INV、T.TESTといったt分布ファミリー全体で一貫性が保てますよ。なおGoogleスプレッドシート版T.TESTも構文は同じです。Excelとほぼ同じ感覚で使えます。
よくあるエラーと対処法
#N/Aエラー(type=1でデータ数不一致)
T.TESTで一番起きやすいのは#N/Aエラーです。type=1(対応あり)で2つのデータセットの件数が異なると発生します。
A列: 8件, B列: 7件 → =T.TEST(A2:A9, B2:B8, 2, 1) → #N/A
対応のあるt検定はペアでデータを比較するので、件数が一致している必要があります。データに欠損がある場合は、ペアになっていない行を削除するか、type=2/3に切り替えてくださいね。type=2/3(独立サンプル)なら件数が違っても動作します。
#NUM!エラー(tailsまたはtypeが範囲外)
tails・typeに指定範囲外の値が入ると#NUM!エラーになります。
- tailsが1または2以外: 例 =T.TEST(A,B,3,1)
- typeが1〜3以外: 例 =T.TEST(A,B,2,4)
引数を仕様内(tails: 1または2、type: 1〜3)に直すだけで解決します。tailsを「片側=2、両側=1」と逆に覚えてしまうケースが多いので、片側=1、両側=2と再確認してみてくださいね。
#VALUE!エラー(引数に文字列)
引数に数値以外(文字列・空白など)が入ると#VALUE!エラーが返ります。
=T.TEST(A2:A11, B2:B11, "2", 1) → #VALUE!
外部からデータをコピペした直後に、文字列扱いになっているケースが多いです。VALUE関数で数値変換するか、セルの書式設定を「標準」に戻して再入力してみてください。データ型を揃えてから検定をかけるのが確実ですよ。
まとめ
T.TEST関数は、2つのデータセットからt検定のp値を一発で返すExcel関数です。施策効果の検証やA/Bテストの判定、品質比較で大活躍してくれますよ。
ポイントを振り返っておきましょう。
- 構文は =T.TEST(array1, array2, tails, type) の4引数
- tailsは片側=1、両側=2(迷ったら両側)
- typeは対応あり=1、等分散=2、異分散=3(迷ったら3)
- p値 < 0.05 で「有意差あり」と判定するのが一般的
- 旧TTESTと結果は同じだが、新規はT.TESTを推奨
「平均値を見比べるだけ」の時代はもう終わりです。T.TESTでp値を計算して、根拠ある意思決定をしていきましょう。
姉妹記事のT.INV.2T関数(臨界値計算)やT.DIST関数(確率計算)もあわせて活用してみてください。t検定の世界がぐっと身近になりますよ。
