「2つのデータに差があるか、数字で判定したい」。A/Bテストや施策前後の比較で、こんな場面はありませんか。
平均値を見比べるだけでは根拠が弱いですよね。たまたま差が出ただけかもしれません。上司やクライアントに「偶然じゃないの?」と聞かれたら困ります。
そんなときに使うのがスプレッドシートのT.TEST関数です。この記事では引数の選び方からp値の読み方、実務での活用パターンまでわかりやすく解説します。
スプレッドシートのT.TEST関数とは?
T.TEST関数(読み方: ティーテスト関数)は、2つのデータ群に統計的な有意差があるかを判定する関数です。名前の由来は統計学の「t検定(ティーけんてい)」です。
具体的には、2群の平均値の差が「偶然の誤差」で説明できるかを検定します。戻り値はp値(ピーち)と呼ばれる確率です。p値が小さいほど「偶然ではない=有意な差がある」と判断できます。
T.TEST関数にできることをまとめると、次のとおりです。
- 2つのグループのデータに統計的な差があるか判定する
- A/Bテストの結果を数値で評価する
- 施策の前後で効果があったかを検証する
- 部門間・地域間のスコア差を客観的に比較する
「この差って偶然?それとも本物?」に答えてくれる関数、というイメージです。
NOTE
T.TEST関数はGoogleスプレッドシートの全バージョンで使えます。Excel(2010以降)でも同じ書き方で動作します。
T.TEST関数の基本構文と引数
基本構文
=T.TEST(範囲1, 範囲2, tails, type)
4つの引数はすべて必須です。順番に見ていきましょう。
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 範囲1 | 必須 | 1つ目のデータ範囲(例: A2:A11) |
| 範囲2 | 必須 | 2つ目のデータ範囲(例: B2:B11) |
| tails | 必須 | 1=片側検定、2=両側検定 |
| type | 必須 | 1=対応あり、2=等分散、3=不等分散 |
範囲1と範囲2に比較したいデータを指定します。tails と type は数値で指定します。この2つの引数の選び方を次のセクションで詳しく説明しますね。
第3引数 tails(片側検定 or 両側検定)の選び方
tails は検定の「方向」を決める引数です。
- tails=2(両側検定): 「AとBに差があるか?」を調べる。方向は問わない
- tails=1(片側検定): 「AはBより大きいか?」など方向が決まっている場合
迷ったら tails=2(両側検定)を選んでください。片側検定は「必ずAの方が大きい」と事前に確信があるときだけ使います。実務では両側検定が標準です。
第4引数 type(対応あり・等分散・不等分散)の選び方
type は「2つのデータの関係性」を指定する引数です。
| type | 名称 | 使う場面 |
|---|---|---|
| 1 | 対応あり(paired) | 同じ対象の前後比較。例: 同じ社員の研修前後テスト |
| 2 | 等分散(homoscedastic) | 2群が独立で、分散が等しいとき |
| 3 | 不等分散(heteroscedastic) | 2群が独立で、分散が等しいか不明なとき |
実務では type=3(不等分散)を推奨します。これはウェルチのt検定と呼ばれる方法です。等分散でも不等分散でも正しく機能します。type=2は分散が等しいと証明できる場合のみ使いますが、実務でそのケースはまれです。
type=1は「同じ人・同じ店舗」の前後比較にだけ使います。対象が異なる2グループならtype=3を選びましょう。
【早見表】tails × type の引数選択マトリクス
どの引数を選べばよいか迷ったら、この表を参考にしてください。
| やりたいこと | tails | type | 数式例 |
|---|---|---|---|
| 2グループに差があるか知りたい | 2 | 3 | =T.TEST(A:A,B:B,2,3) |
| 施策前後の効果を検証したい | 2 | 1 | =T.TEST(A:A,B:B,2,1) |
| Aの方がBより高いと証明したい | 1 | 3 | =T.TEST(A:A,B:B,1,3) |
| 前後で「上がった」と証明したい | 1 | 1 | =T.TEST(A:A,B:B,1,1) |
多くの場面では tails=2, type=3 の組み合わせで問題ありません。まずはこの設定で試してみてください。
T.TEST関数の使い方(基本の入力手順)
2つのクラスのテストスコアを比較する例で手順を確認しましょう。
| A列(クラスA) | B列(クラスB) | |
|---|---|---|
| 2行目 | 78 | 65 |
| 3行目 | 85 | 70 |
| 4行目 | 90 | 82 |
| 5行目 | 72 | 68 |
| 6行目 | 88 | 75 |
クラスAの平均は82.6、クラスBの平均は72.0です。この差が統計的に意味のある差かを検定します。
手順1: 空いているセル(例: D2)をクリックします。
手順2: 次の数式を入力します。
=T.TEST(A2:A6,B2:B6,2,3)
- A2:A6: クラスAのスコア(範囲1)
- B2:B6: クラスBのスコア(範囲2)
- 2: 両側検定(差の方向は問わない)
- 3: 不等分散(ウェルチのt検定)
手順3: Enterキーを押すとp値が表示されます。
この例では約 0.036 が返ります。0.05より小さいので「2つのクラスに有意な差がある」と判断できます。p値の詳しい読み方は後のセクションで解説しますね。
実務で使えるT.TEST活用パターン3選
A/Bテストで広告クリック率に差があるか調べる
Web広告のA/Bテストで使うパターンです。広告Aと広告Bの日別クリック率を比較します。
| A列(広告Aの日別CTR%) | B列(広告Bの日別CTR%) | |
|---|---|---|
| 2行目 | 3.2 | 4.1 |
| 3行目 | 2.8 | 3.5 |
| 4行目 | 3.5 | 4.0 |
| 5行目 | 3.0 | 3.8 |
| 6行目 | 2.9 | 4.2 |
| 7行目 | 3.3 | 3.6 |
| 8行目 | 3.1 | 3.9 |
広告Aと広告Bは別々のユーザーに表示しています。対象が異なる独立した2群なので、type=3を使います。
=T.TEST(A2:A8,B2:B8,2,3)
p値が0.05未満なら「2つの広告のクリック率に有意な差がある」と統計的に言えます。平均値を見れば広告Bが高いとわかるので、マーケティングの意思決定に客観的な根拠を持たせられますよ。
キャンペーン前後の売上を対応ありt検定で比較する
同じ10店舗のキャンペーン前後の月間売上を比較する例です。
| A列(施策前・万円) | B列(施策後・万円) | |
|---|---|---|
| 2行目 | 120 | 135 |
| 3行目 | 95 | 110 |
| 4行目 | 140 | 138 |
| 5行目 | 110 | 125 |
| 6行目 | 105 | 118 |
同じ店舗の前後データなので type=1(対応あり)を使います。対応ありt検定は個体差を除外できるため、検出力が高くなります。
=T.TEST(A2:A6,B2:B6,2,1)
TIP
type=1(対応あり)では範囲1と範囲2のデータ数を同じにしてください。1行目と1行目が同じ対象のペアになります。データ数が異なると#N/Aエラーになります。
部門間テストスコアを独立2群で比較する
営業部と企画部の社内テストスコアを比較する例です。人数が異なる2グループの比較です。
| A列(営業部) | B列(企画部) |
|---|---|
| 72 | 80 |
| 85 | 78 |
| 68 | 92 |
| 90 | 85 |
| 75 | 88 |
| 82 | — |
| 78 | — |
営業部は7名、企画部は5名です。人数が違っても問題ありません。type=3(不等分散)なら異なるサイズのデータを比較できます。
=T.TEST(A2:A8,B2:B6,2,3)
人数が異なるケースでも使えるのがT.TEST関数の便利なところです。ただしtype=1(対応あり)はデータ数が揃っている必要があるので注意してくださいね。
p値の読み方と判断ステップ
T.TEST関数が返すp値の読み方を整理します。p値とは「2つのグループに本当は差がないのに、たまたまこれだけの差が出る確率」です。
p値の判断基準
| p値の範囲 | 判断 | 意味 |
|---|---|---|
| p < 0.01 | 高度に有意 | 99%の信頼水準で差がある |
| p < 0.05 | 有意 | 95%の信頼水準で差がある |
| p >= 0.05 | 有意差なし | 差があるとは言えない |
ステップ1: T.TEST関数でp値を取得する
=T.TEST(A2:A11,B2:B11,2,3)
ステップ2: p値が0.05未満かを確認する
IF関数と組み合わせると、自動で判定メッセージを出せます。
=IF(T.TEST(A2:A11,B2:B11,2,3)<0.05,"有意差あり","有意差なし")
ステップ3: 結果を解釈する
p値が0.05未満なら「差は偶然ではない」と判断します。ただし重要な注意点があります。
- p値は「差の大きさ」ではありません。p値が小さくても差がごくわずかな場合があります
- 「有意差なし」は「差がない」ではなく「差があるとは言えない」です
- サンプル数が多いと小さな差でも有意になります。実務的に意味のある差かは別途判断が必要です
p値だけで判断せず、AVERAGE関数で平均値の差も確認しましょう。STDEV関数でばらつきも見ると、より正確な判断ができますよ。
TTEST関数(互換関数)との違い
Googleスプレッドシートには「TTEST」と「T.TEST」の2つの関数があります。
| 比較項目 | T.TEST | TTEST |
|---|---|---|
| 構文 | =T.TEST(範囲1,範囲2,tails,type) | =TTEST(範囲1,範囲2,tails,type) |
| 引数 | 同じ | 同じ |
| 戻り値 | 同じ(p値) | 同じ(p値) |
| 推奨度 | 推奨(新関数) | 互換用(旧関数) |
結論として、機能はまったく同じです。TTEST関数はExcel 2007以前の旧名称です。Googleスプレッドシートではどちらも使えますが、T.TEST(ドット付き)が推奨です。
TTEST関数を使う場面があるとすれば、古いExcelファイル(.xls形式)を受け取った場合です。その場合はファイル内の既存数式に合わせてTTESTを使えばよいでしょう。
新しく数式を書くときはT.TESTを使ってください。
よくあるエラーと対処法
T.TEST関数で発生しやすいエラーをまとめました。
| エラー | 原因 | 対処法 |
|---|---|---|
| #N/A | type=1で範囲1と範囲2のデータ数が異なる | データ数を揃える。揃えられないならtype=3に変更 |
| #VALUE! | 範囲に文字列や空白セルが混在している | 数値以外のセルを除外するか修正する |
| #VALUE! | tails や type に無効な値を指定した | tails は1か2、type は1〜3の整数を指定 |
| #NUM! | tails が1でも2でもない数値 | tails を1か2に修正する |
結果がおかしいと感じたら
エラーは出ないのに期待と違う結果になるケースもあります。
- データに空白行がないか確認: 空白セルは無視されますが、範囲がずれる原因になります
- type の選択を見直す: 前後比較なのにtype=3を使っていませんか。同じ対象の前後データならtype=1です
- tails の選択を見直す: 片側(tails=1)と両側(tails=2)ではp値が約2倍異なります。不自然に小さい場合はtails=1になっていないか確認してください
- サンプル数が少なすぎないか: データが3件未満だと検定の信頼性が低くなります
TIP
T.TEST関数の結果をさらに分析したい場合は、T.DIST関数やT.INV関数も活用できます。t統計量からp値を手動計算したり、臨界値を求めたりできますよ。
まとめ
T.TEST関数のポイントをおさらいしましょう。
- T.TEST関数は「2群のデータに統計的な差があるか」を判定する関数
- 書き方:
=T.TEST(範囲1, 範囲2, tails, type) - 迷ったら tails=2, type=3 が標準の設定
- type=1は同じ対象の前後比較、type=3は独立した2グループの比較
- p値が0.05未満なら「有意差あり」と判断する
- p値は「差の大きさ」ではなく「偶然である確率」
まずは身近なデータで =T.TEST(範囲1, 範囲2, 2, 3) を試してみてください。「なんとなく違う気がする」を数値で裏付けられると、データ分析の説得力がグッと上がりますよ。
