「ExcelのシートにTTEST関数があるけど、スプレッドシートでも動くの?」。Excel時代のファイルを開いたときに気になる方は多いはずです。
結論からいえば、スプレッドシートでもTTEST関数はそのまま使えます。ただし互換性のために残されている旧関数です。新規に数式を組むならT.TEST関数への切り替えがおすすめですよ。
この記事ではTTEST関数の書き方から使い方、T.TESTとの違いやエラー対処法まで解説します。
スプレッドシートのTTEST関数とは
TTEST関数(読み方: ティーテスト関数)は、2つのデータ群に統計的な差があるかを判定する関数です。戻り値はp値(ピーち:偶然その差が生じる確率)です。p値が小さいほど「有意な差がある」と判断できます。
名前の「T」はt検定(ティーけんてい:2群の平均値の差を統計的に検定する手法)の「t」に由来します。もともとExcelの初期バージョンから搭載されていた関数です。Excel 2010以降に登場したT.TEST関数の前身にあたります。
Googleスプレッドシートでも動作しますが、公式には「互換関数」という位置づけです。
TTEST関数にできることを整理すると、次のとおりです。
- 2つのグループのデータに統計的な差があるか判定する
- 片側検定(方向あり)と両側検定(方向なし)を切り替えられる
- 対応あり・等分散・不等分散の3タイプのt検定に対応する
- Excelから移行した既存シートをそのまま動かす
NOTE
TTEST関数はGoogleスプレッドシートの全バージョンで使えます。ExcelにもTTEST関数があり、動作は同じです。
T.TESTの互換関数である理由
Excel 2010で統計関数が刷新されました。TTEST関数はドット付きのT.TESTに置き換えられています。Googleスプレッドシートも同じ方針を採用しています。
互換関数は「古いシートが壊れないように残してある関数」です。新旧で結果はまったく同じですが、Googleの公式ヘルプではT.TESTの使用を推奨しています。
TTEST関数の書き方
基本構文と4つの引数
=TTEST(範囲1, 範囲2, tails, type)
カッコの中に4つの引数を指定します。すべて必須です。
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 範囲1 | 必須 | 1つ目のデータ範囲(例: A2:A11) |
| 範囲2 | 必須 | 2つ目のデータ範囲(例: B2:B11) |
| tails | 必須 | 1 = 片側検定、2 = 両側検定 |
| type | 必須 | 1 = 対応あり、2 = 等分散、3 = 不等分散(ウェルチ) |
tails引数の選び方
- tails=2(両側検定): 「AとBに差があるか?」を調べます。方向は問いません
- tails=1(片側検定): 「AはBより大きいか?」など方向が決まっている場合に使います
迷ったらtails=2を選んでください。実務では両側検定が標準です。
type引数の選び方
- type=1(対応あり): 同じ対象の前後比較に使います。例: 同じ社員の研修前後テスト
- type=2(等分散): 2群が独立で、分散(ばらつき)が等しいとき
- type=3(不等分散): 2群が独立で、分散が等しいか不明なとき。ウェルチのt検定(分散が異なるデータにも使える検定)と呼ばれます
実務ではtype=3が安全です。等分散でも不等分散でも正しく機能しますよ。
TIP
tails・typeに小数を指定した場合は整数に切り捨てられます。たとえばtails=2.9は2として扱われます。また、範囲内の数値以外の要素(文字列や空白セル)は無視されます。
TTEST関数の基本的な使い方
対応のあるt検定の例
同じ5人の社員に対して、研修前後のテストスコアを比較する例です。
| A列(研修前) | B列(研修後) | |
|---|---|---|
| 2行目 | 65 | 72 |
| 3行目 | 70 | 78 |
| 4行目 | 55 | 60 |
| 5行目 | 80 | 85 |
| 6行目 | 60 | 70 |
同じ社員の前後データなので、type=1(対応あり)を使います。差の方向は問わないので、tails=2(両側検定)です。
=TTEST(A2:A6,B2:B6,2,1)
結果は約0.0018です。有意水準(ゆういすいじゅん:判定の基準となる確率)5%(0.05)より小さいですね。「研修前後で有意な差がある」と判断できます。
NOTE
type=1(対応あり)では範囲1と範囲2のデータ数を揃えてください。1行目と1行目がペアになります。データ数が異なると#N/Aエラーが出ます。
対応のないt検定の例
東京支店と大阪支店の月間売上を比較する例です。支店数が異なる2グループの比較です。
| A列(東京支店・万円) | B列(大阪支店・万円) |
|---|---|
| 320 | 280 |
| 350 | 310 |
| 310 | 290 |
| 340 | 300 |
| 330 | 270 |
| 360 | — |
東京は6か月分、大阪は5か月分のデータです。異なるグループなのでtype=3(不等分散)を使います。データ数が違っても問題ありません。
=TTEST(A2:A7,B2:B6,2,3)
結果は約0.0012です。0.05よりかなり小さいので「2拠点の売上に有意な差がある」と判断できます。
tails=2(両側検定)なので、わかることは「差がある」ということだけです。「東京のほうが高い」と言いたい場合は、平均値の差もあわせて確認してくださいね。
TTESTとT.TESTの違い
TTEST関数とT.TEST関数の違いを一覧にまとめます。
| 比較項目 | TTEST(旧) | T.TEST(新) |
|---|---|---|
| 構文 | =TTEST(範囲1,範囲2,tails,type) | =T.TEST(範囲1,範囲2,tails,type) |
| 引数の数 | 4つ | 4つ(同じ) |
| 戻り値 | p値 | p値(同じ) |
| 位置づけ | 互換関数(旧) | 推奨関数(新) |
| Excel対応 | 全バージョン | 2010以降 |
結論として機能はまったく同じです。引数も結果も一致します。違いは名前だけです。
=TTEST(A2:A6,B2:B6,2,3)
=T.TEST(A2:A6,B2:B6,2,3)
この2つの数式はまったく同じ値を返します。
TTEST関数を使う場面があるとすれば、古いExcelファイル(.xls形式)を受け取った場合です。ファイル内の既存数式に合わせてそのまま使えばよいでしょう。新しく数式を書くときはT.TEST関数を使ってみてください。
TIP
既存シートのTTEST数式を移行するのは簡単です。「検索と置換」(Ctrl + H)で
TTEST(をT.TEST(に一括置換するだけでOKですよ。引数の順番も個数も変わりません。
よくあるエラーと対処法
TTEST関数で出やすいエラーを3つ紹介します。
#N/A エラー
type=1(対応あり)で範囲1と範囲2のデータ数が異なると発生します。対応ありt検定はペアでの比較が前提です。データ数を揃えるか、type=3(不等分散)に変更してください。
#NUM! エラー
引数の数値が範囲外のときに発生します。原因は次のいずれかです。
- tailsが1でも2でもない: tailsには1か2だけを指定できます
- typeが1・2・3のいずれでもない: typeは1〜3の整数です
#VALUE! エラー
引数に数値以外(文字列など)が入っている場合に発生します。tails や type に文字列を渡していないか確認してみてください。セル参照先が空白や文字列になっているケースも多いですよ。
計算結果がおかしいと感じたら
エラーは出ないのに期待と違う結果になるケースもあります。
- typeの選択を見直す: 前後比較なのにtype=3を使っていませんか。同じ対象の前後データならtype=1です
- tailsの選択を見直す: 片側(tails=1)と両側(tails=2)ではp値が約2倍異なります
- データに空白行がないか確認: 空白セルは無視されますが、範囲がずれる原因になります
TIP
t検定の結果をさらに深掘りしたい場合は、TDIST関数やTINV関数も活用できます。p値から臨界値を求めたり、t分布の確率を確認したりできますよ。新関数のT.DIST関数やT.INV関数もあわせてチェックしてみてください。
まとめ
TTEST関数は、2群のデータに統計的な差があるかを判定する互換関数です。要点を整理しておきましょう。
- TTEST(範囲1, 範囲2, tails, type) でp値を返す
- tails: 1=片側検定、2=両側検定。迷ったら2
- type: 1=対応あり、2=等分散、3=不等分散。迷ったら3
- T.TEST関数と引数・結果はまったく同じ
- 新規に数式を書くならドット付きのT.TESTがおすすめ
- 既存シートの置き換えは
TTEST(→T.TEST(の一括置換でOK
Excelから移行したシートでTTEST関数を見かけたら、この記事を参考に読み解いてみてください。新しく作る数式ではT.TEST関数を使ってみましょう。
