「ExcelのシートをGoogleスプレッドシートに移したら、TINV関数ってそのまま動くのかな?」。移行時に気になるポイントですよね。
結論からいえば、スプレッドシートでもTINV関数はそのまま使えます。ただし互換性のために残されている旧関数で、新しく数式を組むならT.INV.2T関数への切り替えがおすすめですよ。
しかも名前が似ているT.INV関数とは別の関数なので、片側と両側の取り違えに注意が必要です。
この記事ではスプレッドシートのTINV関数の使い方を、基本構文から信頼区間・両側t検定の実務テンプレ、T.INV.2Tへの移行手順、よくあるエラー、FAQまでまとめて解説しますよ。
スプレッドシートのTINV関数とは
TINV関数(読み方: ティー・インバース関数)は、t分布の両側逆関数を求める互換関数です。両側確率を指定すると、その確率に対応するt値(正の値)を返してくれます。
「T」はt分布の「t」、「INV」は「Inverse(逆)」の略です。
たとえば「自由度10のt分布で、両側5%に対応するt値はいくつか」を1つの数式で求められます。
TINV関数にできることをまとめると、次のとおりです。
- 両側確率(有意水準)からt値を逆算する
- 両側t検定の棄却値(ききゃくち:帰無仮説を棄却する境界値)を算出する
- 信頼区間(しんらいくかん:母集団の値が入る範囲)の計算に必要なt値を求める
- Excelから移行した既存シートをそのまま動かす
NOTE
TINV関数はGoogleスプレッドシートの全バージョンで使えます。ExcelにもTINV関数があり、動作は同じです。ただし公式には「互換関数」という位置づけで、Microsoftは新しいT.INV.2T関数を推奨していますよ。
TINVの対応先はT.INVではなくT.INV.2T
ここが最も注意すべきポイントです。名前から「TINVはT.INVの旧名」と思いがちですが、TINVが対応するのはT.INV.2T(両側) です。
TINVとT.INV.2Tは引数も戻り値も完全に同じです。一方、T.INVは片側(左側累積)の逆関数なので、用途が異なります。
数式で表すと、3つの関数には次の関係がありますよ。
TINV(p, df) = T.INV.2T(p, df) = T.INV(1 - p/2, df)
たとえば TINV(0.05, 10) と T.INV(0.975, 10) はどちらも約 2.228 という同じ値になります。
TINV関数の書き方
基本構文と2つの引数
=TINV(確率, 自由度)
カッコの中に2つの引数を指定します。
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 確率(probability) | 必須 | t分布の両側確率。0より大きく1以下の値 |
| 自由度(degrees_freedom) | 必須 | 自由度(データから自由に決められる値の個数)。1以上の正の数 |
TIP
自由度はサンプルサイズから1を引いた値です。たとえばデータ10件なら自由度は9になりますよ。自由度が小数の場合は切り捨てられます(
TINV(0.05, 9.7)はTINV(0.05, 9)として処理)。
基本的な使い方
シンプルな例でTINV関数の動きを確認してみましょう。自由度10のt分布を使います。
=TINV(0.05, 10)
結果は約2.228です。「t分布の両端を合わせて5%になる境界のt値」を意味します。
確率を変えて、いくつかの値を見てみましょう。
| 確率(両側) | 数式 | 結果 | 意味 |
|---|---|---|---|
| 0.10 | =TINV(0.10, 10) | 約1.812 | 両端合計10%の境界 |
| 0.05 | =TINV(0.05, 10) | 約2.228 | 両端合計5%の境界 |
| 0.01 | =TINV(0.01, 10) | 約3.169 | 両端合計1%の境界 |
| 1.00 | =TINV(1.00, 10) | 0 | 全範囲(t値0が境界) |
確率が小さいほど大きなt値が返ります。有意水準を厳しくするほど、棄却に必要なt値が高くなるイメージですね。
自由度を変えると値はどう動く?
同じ確率0.05でも、自由度(サンプルサイズ)が変わるとt値が変わります。サンプルが多いほど標準正規分布に近づき、t値は小さくなりますよ。
| 自由度 | 数式 | 結果 |
|---|---|---|
| 1 | =TINV(0.05, 1) | 約12.706 |
| 5 | =TINV(0.05, 5) | 約2.571 |
| 10 | =TINV(0.05, 10) | 約2.228 |
| 30 | =TINV(0.05, 30) | 約2.042 |
| 100 | =TINV(0.05, 100) | 約1.984 |
| 1000 | =TINV(0.05, 1000) | 約1.962 |
自由度が大きくなると、約1.96(標準正規分布の両側5%境界)に収束していくのがわかりますね。小標本ほどt分布の補正が効いている、と覚えておくと感覚がつかみやすいです。
TINV関数の実務活用パターン
基本がわかったところで、実務で使えるパターンを紹介します。
母平均の信頼区間を計算する
「サンプルデータから、母集団の平均がどの範囲に入るか」を求めるのが信頼区間です。サンプルが少ないときはt分布を使います。
売上データ10件の平均が500万円、標準偏差が80万円のケースで95%信頼区間を計算してみましょう。
=TINV(0.05, 9)
結果は約2.262です。有意水準0.05をそのまま指定するだけでOKです。
このt値を使って信頼区間を求めます。
標準誤差 = 標準偏差 / √サンプルサイズ = 80 / √10 ≒ 25.3
下限 = 500 - 2.262 × 25.3 ≒ 442.8(万円)
上限 = 500 + 2.262 × 25.3 ≒ 557.2(万円)
スプレッドシートで一気に計算するなら、次のように書けます。
=AVERAGE(B2:B11) - TINV(0.05, COUNT(B2:B11)-1) * STDEV(B2:B11) / SQRT(COUNT(B2:B11))
=AVERAGE(B2:B11) + TINV(0.05, COUNT(B2:B11)-1) * STDEV(B2:B11) / SQRT(COUNT(B2:B11))
AVERAGE関数で平均、STDEV関数で標準偏差、COUNT関数でサンプルサイズを自動取得しています。新しく数式を書くならT.INV.2T関数を使いましょう。動作は同じですよ。
TIP
信頼区間を一発で求めたい場合は、CONFIDENCE.T関数(誤差幅を直接返す)を使う手もあります。半幅さえわかれば、平均±半幅で区間が出せます。
両側t検定の棄却値を求める
「2つのグループの平均に差があるか」を判定するのが両側t検定です。TINV関数で棄却値(クリティカル値)を直接求められます。
有意水準5%、サンプルサイズ16(自由度15)の場合です。
=TINV(0.05, 15)
結果は約2.131です。計算したt統計量(検定統計量)の絶対値がこの値を超えれば、「平均に有意な差がある」と判定できますよ。
A店とB店の月間売上を比較するケースで試してみましょう。A店16か月分の平均が320万円、B店16か月分の平均が290万円です。プールした標準偏差が50万円とすると、t統計量は次のとおりです。
t統計量 = (320 - 290) / (50 × √(1/16 + 1/16)) ≒ 1.697
t統計量1.697は棄却値2.131を下回っています。「売上差は統計的に有意とはいえない」という結果ですね。
仮説検定の判定フロー(実務テンプレ)
両側t検定の判定をスプレッドシート上で再現するテンプレを用意しておくと、毎回手計算する必要がなくなります。
| セル | 内容 | 数式・値 |
|---|---|---|
| B2 | グループAの平均 | =AVERAGE(A_range) |
| B3 | グループBの平均 | =AVERAGE(B_range) |
| B4 | プールした標準偏差 | =SQRT(((COUNT(A)-1)VAR(A)+(COUNT(B)-1)VAR(B))/(COUNT(A)+COUNT(B)-2)) |
| B5 | t統計量 | =(B2-B3)/(B4*SQRT(1/COUNT(A)+1/COUNT(B))) |
| B6 | 自由度 | =COUNT(A)+COUNT(B)-2 |
| B7 | 棄却値(α=0.05) | =TINV(0.05, B6) |
| B8 | 判定 | =IF(ABS(B5)>B7, “有意差あり”, “有意差なし”) |
このテンプレに範囲を当てはめれば、A/Bテストの結果判定が一瞬でできますよ。有意水準を 0.01 や 0.10 に切り替えたいときは B7 の 0.05 を変えるだけです。
品質管理の管理限界線として使う
工場の製造ラインで、サンプル平均が母平均からどれくらい離れていれば「異常」と判定するか——この管理限界も TINV で求められます。
サンプル数 n=10、有意水準 1% の管理限界は次のとおりです。
管理限界の幅 = TINV(0.01, 9) × σ / √n
= 3.250 × σ / √10
≒ 1.028 × σ
母標準偏差 σ が既知の場合は ±1.028σ の範囲を超えたら警告、という運用にできますよ。
T.INV.2Tとの関係
TINVとT.INV.2Tは完全に同じ動作をします。引数の名前・順番・戻り値すべて同じです。
=TINV(0.05, 10) → 約2.228
=T.INV.2T(0.05, 10) → 約2.228(同じ結果)
違いをまとめると次の表のとおりです。
| 項目 | TINV | T.INV.2T |
|---|---|---|
| 関数名の形式 | ピリオドなし(旧形式) | ピリオドあり(新形式) |
| Googleスプレッドシート | 使える | 使える(推奨) |
| Excel 2007以前 | 使える | 使えない |
| Excel 2010以降 | 使える(互換用) | 使える(推奨) |
| 引数・戻り値 | 同じ | 同じ |
| 公式ドキュメントでの扱い | 互換関数 | 推奨関数 |
新しく数式を書くときはT.INV.2Tを使いましょう。既存シートにTINVで書いた数式がある場合は、書き換える必要はありません。そのまま使い続けて大丈夫ですよ。
T.INVとの違い——片側と両側で用途が異なる
「TINVとT.INVは名前が似ているけど、何が違うの?」と迷う方も多いと思います。ここは詳しく押さえておきましょう。
| 比較項目 | TINV(= T.INV.2T) | T.INV |
|---|---|---|
| 確率の指定 | 両側確率 | 左側累積確率 |
| 確率の範囲 | 0 < p ≦ 1 | 0 < p < 1 |
| 返す値 | 常に正の値 | 正の値も負の値も返す |
| 主な用途 | 両側検定の棄却値・信頼区間 | 片側検定の棄却値・分位点 |
| 例(df=10) | =TINV(0.05,10)→2.228 | =T.INV(0.05,10)→-1.812 |
使い分けのポイントは次のとおりです。
- 両側検定・信頼区間 → TINV(またはT.INV.2T)
- 片側検定(「Aが Bより大きい」など方向を決めた検定) → T.INV関数
- 分位点を直接求めたい(下位5%のt値など) → T.INV
TINVを「T.INVの旧名」と思い込むと、片側と両側を取り違えるのでご注意くださいね。両者の換算式は次のとおりですよ。
TINV(α, df) = T.INV(1 - α/2, df) (T.INVで両側を表現する場合)
T.INV(p, df) = -TINV(2*p, df) (p < 0.5 のときの片側→両側換算)
T.INV.2Tへの移行ガイド
既存シートのTINV数式を新関数に置き換える手順を紹介します。
ステップ1: 数式を書き換える
書き換えはとてもシンプルです。関数名を変えるだけで、引数はそのままです。
【Before】=TINV(A2, B2)
【After】 =T.INV.2T(A2, B2)
ステップ2: 結果が一致するか検証する
置き換え後、元のTINV数式と新関数の結果が一致するかセルを並べて確認しましょう。数値が一致していれば移行完了です。
TIP
大量の数式を置き換えるときは「検索と置換」(Ctrl + H)が便利です。ただし「TINV(」を「T.INV.2T(」に一括置換すると、すでに「T.INV.2T(」になっているセルに影響する可能性があります。置換前に「TINV(」だけが対象か確認してくださいね。正規表現で
bTINV(のように単語境界を指定すると安全です。
他の互換関数も同じパターン
TINVだけでなく、t分布の統計関数は多くが「ピリオドなし→ピリオドあり」に移行しています。
どの関数も「旧名の数式はそのまま動く。新しく書くなら新名を使う」が基本の考え方ですよ。
よくあるエラーと対処法
TINV関数で出やすいエラーを紹介します。
#NUM! エラー
もっとも多いのがこのエラーです。原因は次のいずれかです。
- 確率に0以下を指定した: 確率は0より大きく1以下の値が必要です
- 確率が1を超えている: 上限は1まで
- 自由度が1未満: 自由度は1以上の正の数を指定してください
=TINV(0, 10) ← #NUM! エラー(確率が0)
=TINV(-0.5, 10) ← #NUM! エラー(確率が負)
=TINV(1.5, 10) ← #NUM! エラー(確率が1超)
=TINV(0.05, 0) ← #NUM! エラー(自由度が0)
TIP
確率1は指定可能です。
=TINV(1, 10)は結果が0になります。これは全範囲を含むことを意味していますよ。
#VALUE! エラー
引数に数値以外(文字列など)が入っているとこのエラーが出ます。セル参照先が空白や文字列になっていないか確認してみてください。
=TINV("五%", 10) ← #VALUE! エラー
セル参照を使う場合は、対象セルに「5%」のような表記ではなく 0.05 という数値が入っているか確認しましょう。
#N/A エラー
引数の数が不足している場合に出ます。TINVは必ず2つの引数が必要ですよ。
=TINV(0.05) ← #N/A エラー(自由度が指定されていない)
よくある質問(FAQ)
Q1. TINVとT.INV.2Tは結果に微妙な差はありますか?
A. 完全に同じ結果を返します。内部的にも同じアルゴリズム(不完全ベータ関数の逆関数)で計算されています。小数点以下15桁レベルまで一致しますよ。
Q2. 片側検定にTINVを使うにはどうしたらいいですか?
A. 片側検定の有意水準を α とすると、両側換算で 2α を TINV に渡せばOKです。
片側5%の棄却値 = TINV(0.10, df) (= T.INV(0.95, df) と同じ)
片側1%の棄却値 = TINV(0.02, df) (= T.INV(0.99, df) と同じ)
ただし用途的にはT.INV関数を直接使うほうが意味が明確でおすすめですよ。
Q3. 自由度が小数のときはどう扱われますか?
A. 整数部分のみが使われます(切り捨て)。TINV(0.05, 9.7) は TINV(0.05, 9) と同じ結果になりますよ。Welch の t検定のように自由度が小数になるケースでは、関数側の挙動に頼らず手動で INT() や ROUND() を使って丸め方を明示しておくと安全です。
Q4. 自由度が非常に大きいときは何に近づきますか?
A. 自由度 → ∞ のとき、t分布は標準正規分布に収束します。TINV(0.05, 10000) は約 1.960 となり、これは標準正規分布の両側5%境界(z = 1.96)にほぼ一致しますよ。
Q5. ExcelファイルをスプレッドシートにインポートしたらTINVがエラーになります
A. ほとんどの場合はそのまま動きますが、まれにExcel側で =_xlfn.TINV(...) のような形式で保存されているとエラーが出ることがあります。その場合は数式バーで _xlfn. 部分を削除して =TINV(...) に直してください。
Q6. TINVとCONFIDENCE.T関数はどう違うの?
A. TINV は「t値(境界値)」を返す関数、CONFIDENCE.T は「信頼区間の半幅(誤差幅)」を直接返す関数です。CONFIDENCE.T の内部では実質的に TINV × 標準偏差 / √n を計算していますよ。手早く信頼区間を出したいなら CONFIDENCE.T が便利です。
まとめ
TINV関数は、t分布で両側確率からt値を逆算する互換関数です。
- T.INV.2T関数と引数・計算結果は完全に同じ。違いは関数名だけ
- 対応先はT.INVではなくT.INV.2T。名前の印象で片側と両側を混同しないよう注意
- 換算式:
TINV(p, df) = T.INV.2T(p, df) = T.INV(1 - p/2, df) - 既存シートのTINV数式は書き換え不要。そのまま動く
- 新しく数式を書くときはT.INV.2T関数を推奨
- 信頼区間の計算、両側t検定の棄却値、品質管理の管理限界に活用できる
- 自由度が大きくなるほど標準正規分布(z = 1.96)に収束する
- TDIST関数と同様に、新関数への移行は関数名を変えるだけ
- 確率に0を指定すると
#NUM!エラー。範囲は0より大きく1以下
ExcelからGoogleスプレッドシートへ移行した方は、まず既存の数式がそのまま動くことを確認してみてください。新しく書く数式から少しずつT.INV.2Tに切り替えていくのがおすすめですよ。
