「ExcelのシートにFTEST関数があるけど、スプレッドシートでも動くの?」。Excel時代のファイルを開いたときに気になる方は多いはずです。
結論からいえば、スプレッドシートでもFTEST関数はそのまま使えます。ただし互換性のために残されている旧関数です。新規に数式を組むならF.TEST関数への切り替えがおすすめですよ。
この記事ではFTEST関数の書き方から使い方、F.TESTとの違いやエラー対処法まで解説します。
スプレッドシートのFTEST関数とは
FTEST関数(読み方: エフテスト関数)は、2つのデータ群の分散(ばらつき)が等しいかを検定する関数です。統計学では「F検定(エフけんてい)」と呼ばれます。戻り値はp値(ピーち:偶然その差が生じる確率)です。p値が小さいほど「分散に有意な差がある」と判断できます。
名前の由来は統計学者フィッシャー(Fisher)の「F」です。もともとExcelの初期バージョンから搭載されていた関数で、Excel 2010以降に登場したF.TEST関数の前身にあたります。
Googleスプレッドシートでも動作しますが、公式には「互換関数」という位置づけです。
FTEST関数にできることを整理すると、次のとおりです。
- 2つのデータ群の分散(ばらつき)が等しいかを判定する
- T.TEST関数のtype引数を決める前段チェックに使える
- データ範囲を渡すだけでp値を自動計算できる
- Excelから移行した既存シートをそのまま動かせる
NOTE
FTEST関数はGoogleスプレッドシートの全バージョンで使えます。ExcelにもFTEST関数があり、動作は同じです。
F.TESTの互換関数である理由
Excel 2010で統計関数が刷新されました。FTEST関数はドット付きのF.TESTに置き換えられています。Googleスプレッドシートも同じ方針を採用しています。
互換関数は「古いシートが壊れないように残してある関数」です。新旧で結果はまったく同じですが、Googleの公式ヘルプではF.TESTの使用を推奨しています。
FTEST関数の書き方
基本構文と引数
=FTEST(範囲1, 範囲2)
カッコの中に2つの引数を指定します。どちらも必須です。
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 範囲1 | 必須 | 1つ目のデータ範囲(例: A2:A11) |
| 範囲2 | 必須 | 2つ目のデータ範囲(例: B2:B11) |
TTEST関数のようにtailsやtypeを指定する必要はありません。データ範囲を2つ渡すだけで検定が完了します。
範囲1と範囲2のデータ数が異なっていても問題ありません。範囲内の文字列や空白セルは自動で無視されます。
FTEST関数が内部で行っている計算
FTEST関数は、渡されたデータから次の計算を自動で行います。
- 範囲1と範囲2それぞれの分散(VAR関数)を計算する
- 分散の比(F値)を求める: F値 = VAR(範囲1) / VAR(範囲2)
- F値と自由度からF分布の両側確率(p値)を返す
TIP
FTEST関数は「両側検定」のp値を返します。「分散1が大きい場合」も「分散2が大きい場合」も含めた確率です。片側のp値が必要な場合は、FTESTの結果を2で割ってください。
FTEST関数の基本的な使い方
拠点Aと拠点Bの月間売上データで、ばらつきに差があるかを調べてみましょう。
| A列(拠点A・万円) | B列(拠点B・万円) | |
|---|---|---|
| 2行目 | 120 | 95 |
| 3行目 | 138 | 108 |
| 4行目 | 108 | 103 |
| 5行目 | 132 | 100 |
| 6行目 | 142 | 105 |
| 7行目 | 110 | 99 |
拠点Aは108~142万円に散らばり、拠点Bは95~108万円にまとまっています。この「ばらつきの差」が統計的に意味のある差かを検定します。
空いているセル(例: D2)に次の数式を入力します。
=FTEST(A2:A7,B2:B7)
- A2:A7: 拠点Aの売上データ(範囲1)
- B2:B7: 拠点Bの売上データ(範囲2)
Enterキーを押すとp値が表示されます。この例では約 0.026 が返ります。
有意水準(ゆういすいじゅん:判定の基準値)5%(0.05)より小さいですね。「2つの拠点の分散に有意な差がある(等分散ではない)」と判断できます。
p値の判断基準
| p値の範囲 | 判断 | 意味 |
|---|---|---|
| p < 0.01 | 高度に有意 | 99%の信頼水準で分散に差がある |
| p < 0.05 | 有意 | 95%の信頼水準で分散に差がある |
| p >= 0.05 | 有意差なし | 分散が等しいとみなせる |
p値が0.05以上なら「等分散」、0.05未満なら「不等分散」と判断するのが一般的です。
FTEST関数の結果からT.TESTのtype引数を決める
FTEST関数の最も実務的な使い方は、T.TEST関数の前段として等分散かどうかを判定することです。
T.TEST関数の第4引数typeは、type=2が「等分散」、type=3が「不等分散(ウェルチ)」です。FTESTの結果でどちらを使うか決められます。
判断フロー
FTESTのp値 >= 0.05 → 等分散とみなす → T.TESTのtype=2
FTESTのp値 < 0.05 → 不等分散 → T.TESTのtype=3
数式で自動判定する
IF関数を使えば、FTESTの結果に応じてT.TESTのtypeを自動で切り替えられます。
=T.TEST(A2:A7, B2:B7, 2, IF(FTEST(A2:A7,B2:B7)>=0.05, 2, 3))
この数式は次のように動作します。
FTEST(A2:A7,B2:B7)でp値を求める- p値が0.05以上なら type=2(等分散)、0.05未満なら type=3(不等分散)を選ぶ
- 選ばれたtypeでT.TEST関数を実行する
これで「F検定 → t検定」の一連の流れを1つのセルで完結できます。
TIP
実務では type=3(ウェルチのt検定)をデフォルトで使う流派もあります。等分散でも不等分散でも正しく機能するためです。ただし「等分散を確認してからt検定した」と報告書に書くなら、FTESTでの事前チェックが必要ですよ。
FTESTとF.TESTの違い
FTEST関数とF.TEST関数の違いを一覧にまとめます。
| 比較項目 | FTEST(旧) | F.TEST(新) |
|---|---|---|
| 構文 | =FTEST(範囲1,範囲2) | =F.TEST(範囲1,範囲2) |
| 引数の数 | 2つ | 2つ(同じ) |
| 戻り値 | 両側p値 | 両側p値(同じ) |
| 位置づけ | 互換関数(旧) | 推奨関数(新) |
| Excel対応 | 全バージョン | 2010以降 |
結論として機能はまったく同じです。引数も結果も一致します。違いは名前だけです。
=FTEST(A2:A7,B2:B7)
=F.TEST(A2:A7,B2:B7)
この2つの数式はまったく同じ値を返します。
FTEST関数を使う場面があるとすれば、古いExcelファイル(.xls形式)を受け取った場合です。ファイル内の既存数式に合わせてそのまま使えばよいでしょう。新しく数式を書くときはF.TEST関数を使ってみてください。
TIP
既存シートのFTEST数式を移行するのは簡単です。「検索と置換」(Ctrl + H)で
FTEST(をF.TEST(に一括置換するだけでOKですよ。引数の順番も個数も変わりません。
よくあるエラーと対処法
FTEST関数で出やすいエラーを紹介します。
#N/A エラー
範囲内に数値データが2つ未満のときに発生します。文字列や空白セルは無視されるため、数値が足りなくなるケースに注意してください。セル範囲の中身がすべて文字列や空白の場合もこのエラーが出ます。
#DIV/0! エラー
いずれかの範囲の分散が0のときに発生します。全データが同じ値だと分散が0になり、分散の比を計算できません。データに変動がない列がないか確認してみてください。
#VALUE! エラー
引数に数値以外(文字列など)が直接入力されている場合に発生します。セル参照ではなく、引数そのものに文字列を渡していないか確認しましょう。
結果がおかしいと感じたら
エラーは出ないのに期待と違う結果になるケースもあります。
- 外れ値の影響: 極端な値が1つあると分散が大きくなり、p値が小さくなります。外れ値を除外して再検定するのも有効です
- サンプル数が少なすぎないか: データが3件未満だと検定の信頼性が低くなります。最低5件以上は欲しいところです
- データに空白行がないか: 空白セルは無視されますが、範囲がずれる原因になります
まとめ
FTEST関数は、2群のデータの分散(ばらつき)が等しいかを検定する互換関数です。要点を整理しておきましょう。
- FTEST(範囲1, 範囲2) でF検定の両側p値を返す
- p値が0.05未満なら「不等分散」、0.05以上なら「等分散」と判断する
- T.TEST関数のtype引数を決める前段チェックに最適
- F.TEST関数と引数・結果はまったく同じ
- 新規に数式を書くならドット付きのF.TESTがおすすめ
- 既存シートの置き換えは
FTEST(→F.TEST(の一括置換でOK
Excelから移行したシートでFTEST関数を見かけたら、この記事を参考に読み解いてみてください。新しく作る数式ではF.TEST関数を使ってみましょう。
