古いExcelファイルを開いたら =FTEST(...) という関数が使われていて、戸惑ったことはありませんか。新しいExcelには似た名前の F.TEST 関数もあって、どちらを使えばいいのか迷いますよね。
そんなときに知っておきたいのが、ExcelのFTEST関数(旧版・互換性関数)です。Excel 2010以降は新しいF.TEST関数に置き換わりました。ただ、旧バージョンとの互換性のためにFTEST関数も今のExcelに残されているんですよ。
本記事では、FTEST関数の構文と引数の意味、F.TEST関数との違いを解説します。さらに、xls形式や旧バージョンExcelとの互換性、旧マクロやテンプレート保守の実務シナリオも紹介します。F.TEST関数への移行手順やよくあるエラー対処法も網羅していますので、ぜひ参考にしてくださいね。
ExcelのFTEST関数とは?旧版・互換性関数の位置づけ
ExcelのFTEST関数は、2つのデータセットに対してF検定を行い、両側F検定のp値を返す統計関数です。読み方は「エフ・テスト」です。
実はこのFTEST関数、Excel 2010で新しく登場した F.TEST 関数の 旧バージョン(互換性関数) という位置づけです。計算結果は新旧どちらも同じになります。旧バージョンExcelや .xls 形式ファイルとの互換性を維持するため、FTEST関数も今のExcelに残されているんですよ。
F検定で何がわかるのか
F検定とは、2つのデータ群の分散(ばらつきの大きさ)が等しいかどうかを統計的に判定する手法です。t検定が「平均値の差」を見るのに対し、F検定は「ばらつきの差」を見る点が違いますね。
たとえば、製造ラインAとBで作った部品の寸法を比べたとします。平均が同じでもラインBのほうが大きくバラついていれば、品質の安定性に差があるということです。FTEST関数を使えば、その差が偶然なのか統計的に意味のある差なのかを数値で示してくれますよ。
なぜ「FTEST」と「F.TEST」の2つがあるのか
Excelには関数名がよく似た2つのF検定関数が存在します。
| 関数名 | 登場時期 | 位置づけ |
|---|---|---|
| FTEST | Excel 2003以前から | 旧版・互換性関数 |
| F.TEST | Excel 2010から | 新版(推奨) |
Excel 2010で統計関数が大幅にリニューアルされました。このとき、関数名にピリオドを入れた新しい命名規則(F.TEST、T.TEST、STDEV.S など)が導入されたんです。それまでに作られた .xls ブックや古いVBAマクロには旧名の FTEST がたくさん残っています。そのため、互換性関数として今も使えるようにしてあるんですよ。
NOTE
Microsoftは新規で数式を作るときはF.TEST関数の使用を推奨しています。FTEST関数は「過去のブックを開いたときにエラーにならないため」に残されている関数だと考えてくださいね。
FTEST関数の構文と引数
FTEST関数の基本的な書き方は、新版F.TESTと完全に同じシンプルな形です。
構文
=FTEST(配列1, 配列2)
引数の意味
| 引数 | 必須 | 説明 |
|---|---|---|
| 配列1 | 必須 | 1つ目のデータ範囲(数値の配列) |
| 配列2 | 必須 | 2つ目のデータ範囲(数値の配列) |
引数は2つの配列だけです。FTEST関数は内部で大きい分散を分子にとって計算するため、配列1と配列2を入れ替えても結果は変わりません。順序を気にせず使って大丈夫ですよ。
戻り値の意味
FTEST関数が返すのは、両側F検定のp値です。p値は0以上1以下の確率値で、「2つの母分散が等しい」という帰無仮説のもとで観測された分散比が偶然起こる確率を表します。
p値の解釈は次のとおりです。
- p値 < 0.05 → 帰無仮説を棄却(2グループの分散は有意に異なる)
- p値 ≥ 0.05 → 帰無仮説を棄却できない(分散が異なるとは言えない)
なお、有意水準(α)は0.05が一般的です。より厳格に判定したい場合は0.01、緩く判定したい場合は0.10が使われます。業界や場面に応じて使い分けてくださいね。
FTEST関数の基本的な使い方
実際にFTEST関数を使う例を見ていきましょう。製造ラインAとBで作った部品の寸法(ミリ単位)を比較するシーンを想定します。
サンプルデータ
| セル | A列(ラインA) | B列(ラインB) |
|---|---|---|
| 行2 | 10.1 | 10.0 |
| 行3 | 10.0 | 10.2 |
| 行4 | 10.2 | 9.7 |
| 行5 | 9.9 | 10.5 |
| 行6 | 10.0 | 9.8 |
| 行7 | 10.1 | 10.4 |
| 行8 | 9.9 | 9.6 |
数式と結果
D2セルに次の数式を入れます。
=FTEST(A2:A8, B2:B8)
結果としてp値(小数)が返ってきます。たとえば結果が「0.018」だったとします。p値は0.05未満なので「ラインAとBの分散には統計的に有意な差がある」と判断できますよ。
結果の見方(p値の判断基準)
p値の判定は、有意水準と比較するだけでOKです。
- p値 = 0.018 → 0.05未満 → 「ばらつきに有意差あり」と判断
- p値 = 0.32 → 0.05以上 → 「ばらつきに有意差があるとは言えない」
具体的に解釈してみましょう。ラインAは寸法が9.9〜10.2の範囲に収まっているのに対し、ラインBは9.6〜10.5まで広く散らばっています。FTEST関数が「この差は偶然ではない」と教えてくれるわけですね。
FTEST関数とF.TEST関数の違いと使い分け
ここがFTEST関数を語るうえで一番大事なポイントです。新旧2つの関数、どう違って、どう使い分けるのかを整理しましょう。
計算結果は完全に同じ
まず押さえておきたいのは、FTEST関数とF.TEST関数の計算結果は 完全に同じ ということです。同じデータに対して同じp値が返ってくるので、結果に違いはありません。
=FTEST(A2:A8, B2:B8) → 0.018
=F.TEST(A2:A8, B2:B8) → 0.018
中身のアルゴリズムも同じなので、「FTEST関数は精度が低い」といった違いはありません。
互換性関数として残されている理由
それでは、なぜFTEST関数は今もExcelに残っているのでしょうか。理由は次の3つです。
- 旧VBAマクロが動作し続けるため: 過去に作られたマクロが
Application.WorksheetFunction.FTest(...)のように旧名で関数を呼び出している場合、新版に変えてしまうとマクロが動かなくなります - 旧テンプレートとの互換性維持: 業界標準テンプレートや社内テンプレートに
=FTEST(...)が組み込まれている場合、関数を変えるとブック全体の見直しが必要になります - Excel 2007以前との共有: 古いバージョンのExcelには
F.TEST関数が存在しないため、それらのバージョンとブックを共有する場合はFTESTを使う必要があります
使い分けの判断フロー
新規でブックを作るときと、既存ブックを保守するときで判断が変わります。次のフローで考えてみてください。
ブックの状況は?
├─ 新規作成(Excel 2010以降のみで使う)
│ → F.TEST を使う(推奨)
│
├─ 既存ブックの保守(FTESTが既に使われている)
│ → そのままFTESTを使う or 一括でF.TESTに移行
│
├─ xls形式で保存する必要がある
│ → FTESTを使う(F.TESTはxlsで動かない可能性あり)
│
└─ Excel 2007以前のユーザーと共有する
→ FTESTを使う
判断に迷ったら、「ブックを使う環境にExcel 2007以前が混じっていないか」をまず確認するのがおすすめですよ。
旧FTEST関数を実務で使う3つのシナリオ
ここからは、新版F.TESTがある今でもFTEST関数を使う場面を具体的に見ていきましょう。
シナリオ1: 旧マクロ・旧テンプレートの保守
過去に作られたマクロやテンプレートに =FTEST(...) が組み込まれているケースです。
たとえば、品質管理部門で長年使われている分散検定テンプレートが .xls 形式で配布されているとします。中身を開くと =FTEST(A2:A20, B2:B20) のような数式がたくさん埋め込まれている、という状況ですね。
このようなテンプレートは、無理に新版に書き換えるよりも、そのままFTEST関数で運用するのが安全です。書き換えに伴う数式破損のリスクを避けられますし、過去のバージョンとの互換性も維持できますよ。
シナリオ2: xls形式ブックの取引先共有
取引先がExcel 2003以前を使っていて、.xls 形式でブックをやり取りする必要がある場合です。
.xls 形式は仕様上、Excel 2010以降の新関数を完全にはサポートしていません。ピリオド付きのF.TEST、T.TEST、STDEV.S などが該当します。F.TEST関数を使ったブックを .xls で保存して相手に渡すと、相手の環境で #NAME? エラーになる可能性があるんです。
このような共有環境では、最初から FTEST を使ってブックを作っておくと安心ですね。
シナリオ3: 古いExcelバージョンとの互換性確保
社内に複数のExcelバージョンが混在している場合です。最新のMicrosoft 365を使っている人もいれば、古いExcel 2007を使い続けている部署もある。これは大企業や公的機関ではよくある状況ですよね。
そんなときは、共有ブックでは新関数を避けてFTESTを使っておくと、誰の環境でもエラーなく動作します。「最新版で開いたら結果が違う」「古い環境でエラーが出た」といったトラブルを未然に防げますよ。
TIP
自分一人で使うブックなら新版F.TEST、複数人で共有するブックや配布用テンプレートはFTEST、と使い分けるのが現実的です。
FTEST関数のよくあるエラーと対処法
FTEST関数でつまずきやすいエラーをまとめます。原因と対処法を押さえておけば、迷わず解決できますよ。
#DIV/0! エラー
| 項目 | 内容 |
|---|---|
| 原因 | 配列1または配列2の分散が0(=全データが同じ値) |
| 対処法 | データに変動があるか確認する。同じ値ばかりだとF検定は意味を持たない |
たとえば配列1が「{10, 10, 10, 10}」のように全て同じ値だと、分散が0になりエラーになります。検定対象として適切でないため、データを見直しましょうね。
#N/A エラー
| 項目 | 内容 |
|---|---|
| 原因 | 配列1または配列2のデータ数が2未満 |
| 対処法 | 各配列に最低2つ以上の数値データを入れる |
データ数が1つ以下では分散が計算できないため、エラーになります。最低でも各配列に2つは数値を入れてくださいね。
#NUM! エラー
| 項目 | 内容 |
|---|---|
| 原因 | 計算過程で数値が範囲外(極端な分散比) |
| 対処法 | データ値の妥当性を確認する。外れ値が混じっていないかチェックする |
異常に大きい値や小さい値が混ざっていると、F値が計算可能範囲を超えてしまうことがあります。元データに入力ミスがないか確認しましょう。
#VALUE! エラー
| 項目 | 内容 |
|---|---|
| 原因 | 引数に文字列など数値以外が含まれる |
| 対処法 | 数値以外を除外する。空白セルは無視されるが文字列はエラーの原因 |
「未測定」などの文字列がセルに入っているケースが典型例です。ISNUMBER関数でフィルタするか、IFERROR関数で代替値を入れるなどの対処を行ってくださいね。
FTEST関数からF.TEST関数への移行手順
旧FTEST関数を使ったブックを、新版F.TESTに移行する手順を紹介します。社内環境がすべてExcel 2010以降に統一されたタイミングなどで実施するといいですよ。
一括置換の方法
ブック全体の FTEST を F.TEST に一括で置き換えます。
- 移行対象のブックを開く
Ctrl + Hで「検索と置換」ダイアログを開く- 「検索する文字列」に
FTEST(を入力 - 「置換後の文字列」に
F.TEST(を入力 - 「すべて置換」をクリック
WARNING
単に
FTESTだけで置換すると、関数名以外の文字列(コメント、変数名、シート名など)に「FTEST」が含まれている場合に意図しない置換が起こります。必ずFTEST(のように開きカッコまで含めて置換してくださいね。
移行前のチェックポイント
移行作業を始める前に、次の点を必ず確認しましょう。
- 共有環境のExcelバージョン: 共有相手の中にExcel 2007以前のユーザーがいないか
- 保存形式: ブックを
.xls形式で保存する必要がないか - VBAマクロ: マクロ内で
WorksheetFunction.FTestを呼び出している箇所がないか(マクロ側はF.TESTでもFTest_という別名で呼び出す必要があり、別途修正が必要) - バックアップ: 移行前のブックを必ずバックアップしておく
置換後はサンプル計算で結果が一致するかを確認しましょう。FTESTとF.TESTは計算結果が同じなので、置換前と全く同じp値が返ってくれば移行成功です。
まとめ:FTEST関数は互換性のために残された旧F検定関数
ExcelのFTEST関数は、2グループのデータの分散が等しいかをF検定で判定する 旧版の統計関数(互換性関数) です。両側p値を返してくれます。Excel 2010で新しいF.TEST関数が登場した後も、旧バージョンとの互換性のために今のExcelにも残されているんですよ。
要点を整理すると、次のとおりです。
- 構文:
=FTEST(配列1, 配列2)で新版F.TESTと完全に同じ - 戻り値: 両側F検定のp値(0以上1以下)。新版F.TESTと結果が完全に一致
- 判定: p値 < 0.05 で「分散は有意に異なる」、p値 ≥ 0.05 で「異なるとは言えない」
- 新版との違い: 計算結果は同じ。違いは関数名(ピリオドの有無)と対応バージョンのみ
- 使うべきケース: 旧マクロ・旧テンプレート保守、xls形式での保存・共有、Excel 2007以前との共有環境
- 移行手順:
FTEST(をF.TEST(に一括置換。共有環境のバージョンを事前確認
新規でブックを作るならF.TESTが推奨ですが、古い環境やテンプレートを扱う場面ではFTEST関数の知識が役立ちます。「これは旧名のF検定関数なんだな」と理解できれば、古いブックを開いてもあわてずに対応できますよ。
F検定の使い方そのものを詳しく知りたい方は、新版F.TEST関数の解説記事もあわせて参考にしてくださいね。t検定(T.TEST)と組み合わせれば、信頼性の高いデータ分析ができます。
