「ExcelからGoogleスプレッドシートに移行したら、TDIST関数がそのまま使えるのか気になる」。こんな場面に出くわした方も多いのではないでしょうか。
結論からいえば、スプレッドシートでもTDIST関数はそのまま動きます。ただし互換性のために残されている旧関数です。新規に数式を組むならT.DISTファミリーへの切り替えがおすすめですよ。
この記事ではTDIST関数の使い方を基本構文から解説します。T.DISTファミリーとの対応関係やよくあるエラーまで紹介しますよ。
スプレッドシートのTDIST関数とは
TDIST関数(読み方: ティー・ディスト関数)は、t分布(サンプル数が少ないときに使う確率分布)にもとづいて確率を返す関数です。「T」はt分布の「t」、「DIST」は「Distribution(分布)」の略ですよ。NORMDIST関数の「t分布版」と考えるとイメージしやすいかもしれません。
もともとExcelの初期バージョンから搭載されていた関数です。Excel 2010以降に登場したT.DIST関数ファミリーの前身にあたります。Googleスプレッドシートでも動きますが、公式には「互換関数」という位置づけです。
TDIST関数にできることを整理すると、次のとおりです。
- t分布の右側確率(片側)を求める
- t分布の両側確率を求める
- t検定のp値計算に使う
- Excelから移行した既存シートをそのまま動かす
NOTE
TDIST関数はGoogleスプレッドシートの全バージョンで使えます。ExcelにもTDIST関数があり、動作は同じです。
TDIST関数の書き方
基本構文と3つの引数
=TDIST(x, 自由度, tails)
カッコの中に3つの引数を指定します。
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| x | 必須 | t分布で評価する数値(正の値のみ) |
| 自由度(degrees_freedom) | 必須 | 自由度。サンプルサイズ – 1 が基本(1以上の正の整数) |
| tails | 必須 | 1 = 片側確率(右側)、2 = 両側確率 |
T.DIST関数との大きな違いは2つあります。
- xに負の値を渡せない: TDIST関数はxが0未満だと
#NUM!エラーになります。T.DIST関数は負の値も受け付けます。 - 3番目の引数がtails: T.DIST関数はTRUE/FALSE(累積か密度か)ですが、TDIST関数は1(片側)か2(両側)です。
TIP
自由度(データから自由に値を決められる個数)は、サンプルサイズから1を引いた値です。たとえばサンプル10個なら自由度は9になりますよ。
tails引数の意味——1と2で何が変わる?
tails引数で片側確率と両側確率を切り替えます。
tails = 1(片側確率)
t分布の右側の面積(確率)を返します。「xより大きい値が出る確率」です。
=TDIST(2, 10, 1)
結果は約0.0367(3.67%) です。これはT.DIST.RT関数と同じ結果になります。
tails = 2(両側確率)
t分布の両端の面積(確率)を返します。「絶対値がxより大きい値が出る確率」です。
=TDIST(2, 10, 2)
結果は約0.0734(7.34%) です。これはT.DIST.2T関数と同じ結果になります。片側確率の2倍になっていますね。
基本的な使い方
t検定でp値を求める基本パターンを見てみましょう。
ある部品の目標寸法が50mmで、10個のサンプルを測定したとします。平均は50.3mm、標準偏差は0.5mmでした。
まず、t統計量を計算します。
=(50.3 - 50) / (0.5 / SQRT(10))
結果は約1.8974です。
次に、TDIST関数でp値を求めます。両側検定なのでtailsに2を指定します。
=TDIST(1.8974, 9, 2)
結果は約0.0903です。有意水準5%(0.05)より大きいですね。「目標値と有意な差があるとはいえない」と判断できますよ。
TIP
t統計量が負の値になった場合はABS関数(絶対値を返す関数)で変換してからTDISTに渡します。
=TDIST(ABS(t統計量), 自由度, tails)とすればOKです。
T.DISTファミリーとの対応表
TDIST関数とT.DISTファミリーの対応関係を一覧にまとめます。既存シートの数式を置き換えるときに活用してください。
| TDIST(旧) | T.DISTファミリー(新) | 返す値 |
|---|---|---|
=TDIST(x, df, 1) | =T.DIST.RT(x, df) | 右側確率(片側) |
=TDIST(x, df, 2) | =T.DIST.2T(x, df) | 両側確率 |
| (対応なし) | =T.DIST(x, df, TRUE) | 左側累積確率 |
| (対応なし) | =T.DIST(x, df, FALSE) | 確率密度 |
ポイントは次の3つです。
- TDIST(x, df, 1) は T.DIST.RT関数 と同じ結果
- TDIST(x, df, 2) は T.DIST.2T関数 と同じ結果
- T.DIST関数 の「左側累積確率」と「確率密度」にはTDISTで直接対応する書き方がない
新しく数式を組むならT.DISTファミリーがおすすめです。左側累積や確率密度も扱えますし、xに負の値も渡せますよ。
よくあるエラーと対処法
TDIST関数で出やすいエラーを3つ紹介します。
#NUM! エラー
もっとも多いのがこのエラーです。原因は次のいずれかです。
- xに負の値を指定した: TDIST関数はxが0未満だとエラーになります。
=TDIST(ABS(x), df, tails)で絶対値に変換してください - 自由度が1未満: 自由度は1以上の正の整数を指定する必要があります
- tailsが1でも2でもない: tailsには1か2だけを指定できます
#VALUE! エラー
引数に数値以外(文字列など)が入っているとこのエラーが出ます。セル参照先が空白や文字列になっていないか確認してみてください。
計算結果がおかしい(エラーではないが期待と違う)
tailsを1にすべきところで2にしている(またはその逆)ケースがよくあります。片側検定なら1、両側検定なら2を指定しましょう。
TDISTからT.DISTファミリーへの移行ガイド
既存シートのTDIST数式を新関数に置き換える手順を紹介します。
ステップ1: tailsの値を確認する
まず、TDIST関数のtails引数が1か2かを確認します。
- tails = 1 → T.DIST.RT に置き換え
- tails = 2 → T.DIST.2T に置き換え
ステップ2: 数式を書き換える
書き換えはシンプルです。
【Before】=TDIST(A2, B2, 1)
【After】 =T.DIST.RT(A2, B2)
【Before】=TDIST(A2, B2, 2)
【After】 =T.DIST.2T(A2, B2)
tailsが不要になるので引数が1つ減ります。
ステップ3: 結果が一致するか検証する
置き換え後、元のTDIST数式と新関数の結果が一致するかセルを並べて確認しましょう。数値が一致していれば移行完了です。
TIP
大量の数式を置き換えるときは「検索と置換」(Ctrl + H)が便利です。
TDIST(をT.DIST.RT(に一括置換できます。ただしtailsが混在するシートでは事故になるので、先にtailsの値を確認してくださいね。
まとめ
TDIST関数は、t分布の確率を求める互換関数です。要点を整理しておきましょう。
- TDIST(x, 自由度, tails) で右側確率(tails=1)または両側確率(tails=2)を返す
- xには正の値のみ指定可能(負の値は
#NUM!エラー) - TDIST(x, df, 1) = T.DIST.RT、TDIST(x, df, 2) = T.DIST.2T
- 新規に数式を組むならT.DISTファミリーがおすすめ
- 既存シートのTDIST数式は、tails値に応じてT.DIST.RTかT.DIST.2Tに置き換え可能
Excelから移行した既存シートでTDIST関数を見かけたら、この記事を参考に読み解いてみてください。新しく作る数式では、より柔軟なT.DISTファミリーを使ってみましょう。
