ExcelのFORECAST.ETS.CONFINT関数の使い方|予測信頼区間

スポンサーリンク

ExcelのFORECAST.ETS.CONFINT関数とは?予測の「ブレ幅」を求める関数

「来月の売上をETSで予測したけど、どれくらい誤差があるのか知りたい」
「予測値だけじゃなく、上振れ・下振れの幅もグラフで示したい」

こんな場面で活躍するのがFORECAST.ETS.CONFINT関数です。

この記事ではFORECAST.ETS.CONFINT関数の使い方を、FORECAST.ETS関数との組み合わせや具体的な数値例を交えて解説します。信頼区間の意味から、confidence_levelの調整、よくあるエラーまでまとめて押さえていきましょう。

読み方と語源(ETS=指数三重平滑、CONFINT=信頼区間)

FORECAST.ETS.CONFINT関数の読み方は「フォーキャスト・イーティーエス・コンフィント」です。語源を分解するとわかりやすくなります。

  • FORECAST: Forecast(予測)
  • ETS: Exponential Triple Smoothing(指数三重平滑法)
  • CONFINT: Confidence Interval(信頼区間)

ETS(指数三重平滑法)は、季節変動・トレンド・ノイズを分離して予測するアルゴリズムで、FORECAST.ETS関数の中身でも使われています。CONFINTはその予測値に対する「信頼区間の幅」を返してくれる関数です。

対応バージョンはExcel 2016以降で、Microsoft 365でも問題なく使えます。

信頼区間とは何か(予測値±この値が予測の幅)

そもそも「信頼区間」って何でしょうか。一言でいうと、予測値が収まる可能性が高い範囲の幅のことです。

たとえばFORECAST.ETSで「来月の売上は1,000万円」と予測されたとしても、実際の売上が1,000万円ぴったりになることはまずありませんよね。実績は900万円かもしれないし、1,100万円かもしれません。

信頼区間は「予測値の上下にどれくらいブレる可能性があるか」を統計的に算出した値です。

予測値の上限 = FORECAST.ETS の結果 + FORECAST.ETS.CONFINT の結果
予測値の下限 = FORECAST.ETS の結果 - FORECAST.ETS.CONFINT の結果

デフォルトの95%信頼区間なら、「真の値が予測値±CONFINTの範囲に収まる確率が95%」という意味になります。予測グラフに上下の帯を描くときに、まさにこの値が使われています。

FORECAST.ETS.CONFINT関数の書き方(構文と引数)

基本構文

まずは基本の書き方を確認しましょう。引数は6つあり、後半の3つは省略可能です。

=FORECAST.ETS.CONFINT(target_date, values, timeline, [confidence_level], [seasonality], [data_completion], [aggregation])
引数必須/省略可説明
target_date必須予測したい日付・時点
values必須過去の実績値(数値)の範囲
timeline必須values に対応する日付・時点の範囲(等間隔)
confidence_level省略可信頼区間の水準(0より大きく1より小さい数値、既定値0.95)
seasonality省略可季節性の周期(既定値1=自動検出)
data_completion省略可欠損値の扱い(0=ゼロ扱い、1=補間、既定値1)
aggregation省略可重複日付の集計方法(既定値1=AVERAGE)

target_date には予測対象の日付(例: 2026-05-01)、values には売上などの数値、timeline にはそれに対応する日付列を指定します。

confidence_levelの意味(既定95%)

confidence_levelはどの程度の確からしさで予測区間を求めるかを表す引数です。

0.95 → 95%信頼区間(既定値、もっとも一般的)
0.90 → 90%信頼区間(区間が狭くなる)
0.99 → 99%信頼区間(区間が広くなる)

数値が大きくなるほど、「真の値がこの範囲に収まる確率」が高くなる代わりに、区間の幅も広くなります。逆に小さくすると、幅は狭くなりますが外れる確率も上がります。

ビジネス用途では既定値の0.95(95%)で十分なケースがほとんどです。「もっと厳しめに見積もりたい」なら0.99、「ざっくりでいいから幅を狭くしたい」なら0.90、と覚えておけばOKです。

FORECAST.ETS.CONFINT関数の基本的な使い方

月次売上データで予測区間を求める

実際にFORECAST.ETS.CONFINT関数を使ってみましょう。次のような月次売上データがあるとします。

セル日付(A列)売上(B列)
2行目2025-01-01100
3行目2025-02-01110
4行目2025-03-01130
5行目2025-04-01125
6行目2025-05-01140
7行目2025-06-01155
8行目2025-07-01170
9行目2025-08-01165
10行目2025-09-01180
11行目2025-10-01195
12行目2025-11-01210
13行目2025-12-01230

2026-01-01の売上を予測し、その信頼区間を求める数式はこうなります。

=FORECAST.ETS.CONFINT(DATE(2026,1,1), B2:B13, A2:A13)

たとえば結果が25だったとします。これは「予測値±25の範囲に95%の確率で収まる」という意味です。

合わせてFORECAST.ETS関数で予測値そのものも出してみましょう。

=FORECAST.ETS(DATE(2026,1,1), B2:B13, A2:A13)
→ 245(予測値)

つまり2026年1月の売上は「245 ± 25」、つまり220〜270の範囲に95%の確率で収まると読み取れます。

confidence_levelを変えて区間を広げ・狭める

同じデータで信頼水準を変えて比べてみましょう。

=FORECAST.ETS.CONFINT(DATE(2026,1,1), B2:B13, A2:A13, 0.90)
→ 約21(90%信頼区間、区間が狭い)

=FORECAST.ETS.CONFINT(DATE(2026,1,1), B2:B13, A2:A13, 0.95)
→ 約25(95%信頼区間、既定値)

=FORECAST.ETS.CONFINT(DATE(2026,1,1), B2:B13, A2:A13, 0.99)
→ 約33(99%信頼区間、区間が広い)

信頼水準を上げるほど区間幅が広くなるのがわかりますね。「外したくない」場面では99%、「予測幅をシャープに見せたい」プレゼン資料では90%、と使い分けてみてください。

FORECAST.ETSと組み合わせて予測グラフの「上限・下限」を作る

FORECAST.ETS.CONFINT関数の真価は、FORECAST.ETS関数と組み合わせて予測の上限・下限を作るところにあります。

上限と下限を別セルで計算する

予測値・上限・下限を3列に分けて出すレイアウトが定番です。仮にC列を予測値、D列を上限、E列を下限にしましょう。

C列(予測値) =FORECAST.ETS(対象日付, B2:B13, A2:A13)
D列(上限)   =FORECAST.ETS(対象日付, B2:B13, A2:A13) + FORECAST.ETS.CONFINT(対象日付, B2:B13, A2:A13)
E列(下限)   =FORECAST.ETS(対象日付, B2:B13, A2:A13) - FORECAST.ETS.CONFINT(対象日付, B2:B13, A2:A13)

これで「予測値245、上限270、下限220」のような3つの数字が並びます。グラフにすると、折れ線の上下に予測幅の帯が描けるイメージですね。

予測シート機能でも内部的に使われている

実はExcelの「予測シート」機能(データタブ → 予測シート)を使うと、内部でFORECAST.ETSとFORECAST.ETS.CONFINTが自動的に組み合わされてグラフが生成されます。

予測シートの「信頼区間」の数値を変えると、CONFINTのconfidence_level引数が変わる仕組みです。手動で数式を組まなくても同じ計算ができるので、ざっくり試したいときは予測シート機能から始めてみるのもおすすめですよ。

ちなみに予測値そのものを出したいときはFORECAST.ETS関数、季節性の周期を確認したいときはFORECAST.ETS.SEASONALITY関数、予測の精度や統計指標を見たいときはFORECAST.ETS.STAT関数が使えます。

FORECAST.LINEARとの違い

線形回帰で予測するFORECAST.LINEAR関数にはCONFINTのような信頼区間関数がありません。違いを整理しておきましょう。

関数予測アルゴリズム信頼区間関数季節性対応
FORECAST.LINEAR線形回帰(直線)なしなし
FORECAST.ETS指数三重平滑(ETS)FORECAST.ETS.CONFINTあり

「直線的に伸びるデータ」ならFORECAST.LINEARで十分ですが、「季節変動があるデータの予測幅まで知りたい」ならFORECAST.ETSとFORECAST.ETS.CONFINTのコンビが必須です。

売上のような季節性のあるデータは、ほぼETS系の関数を使う場面ですね。

よくあるエラーと対処法

#N/A エラー:timelineの日付が等間隔でない

FORECAST.ETS.CONFINT関数で一番多いのが#N/Aエラーです。原因のほとんどは「timelineの日付が等間隔になっていない」こと。

2025-01-01, 2025-02-01, 2025-03-01 ... → OK(毎月1日で等間隔)
2025-01-01, 2025-02-15, 2025-03-10 ... → #N/A エラー

ETSアルゴリズムは「等間隔な時系列データ」を前提に動いています。日付がバラバラだと周期を検出できず、エラーになります。

「営業日だけのデータで等間隔じゃない」みたいなときは、いったん月次や週次に集計してからETS関数にかけるのがおすすめです。

#VALUE! エラー:confidence_levelが範囲外

confidence_levelに0以下、1以上、または数値以外を指定すると#VALUE!エラーになります。

=FORECAST.ETS.CONFINT(対象日付, B2:B13, A2:A13, 0)    → #VALUE!エラー
=FORECAST.ETS.CONFINT(対象日付, B2:B13, A2:A13, 1)    → #VALUE!エラー
=FORECAST.ETS.CONFINT(対象日付, B2:B13, A2:A13, 1.5)  → #VALUE!エラー
=FORECAST.ETS.CONFINT(対象日付, B2:B13, A2:A13, 0.95) → OK

「95%信頼区間」のつもりで95と入力しちゃうミスもありがち。confidence_levelは小数で「0.95」と入れる点に注意してください。

#NUM! エラー:データ件数が少ない

データ件数が極端に少ない(目安として2周期分以下)と、ETSアルゴリズムが季節性を検出できず#NUM!エラーになることがあります。

月次データなら最低でも2年分(24件)、できれば3年分以上あると安定して計算できます。データが足りないときは、季節性を無視してFORECAST.LINEAR関数で線形予測するのも一つの選択肢ですね。

IFERROR関数でエラーを拾う

エラーをきれいに表示したいなら、IFERROR関数で囲む方法がおすすめです。

=IFERROR(FORECAST.ETS.CONFINT(対象日付, B2:B13, A2:A13), "予測区間を計算できません")

これなら、データ不足や日付の不整合があった場合でもエラー表示にならず、わかりやすいメッセージが出せます。

まとめ

FORECAST.ETS.CONFINT関数は、FORECAST.ETS関数の予測値に対する信頼区間の幅を求める関数です。

ポイントを整理しておきましょう。

  • 構文は =FORECAST.ETS.CONFINT(target_date, values, timeline, [confidence_level], ...)
  • 既定の信頼水準は0.95(95%信頼区間)。引数で0.90や0.99に変更可能
  • 「予測値±CONFINTの結果」で予測の上限・下限を表現できる
  • FORECAST.ETS関数とセットで使うのが基本パターン
  • timelineが等間隔でないと#N/Aエラーになるので要注意

予測値だけだと「結局どれくらい外れる可能性があるの?」がわかりませんが、CONFINTを併用すれば予測の確からしさまで一緒に提示できます。経営会議や売上予測レポートで説得力がぐっと上がるので、ぜひFORECAST.ETSとセットで使ってみてくださいね。

タイトルとURLをコピーしました