Excel

【Excel】エクセルで補間(直線、線形)や予測(外挿や内挿)する方法【TREND関数やFORECAST関数】

当サイトでは記事内に広告を含みます
技術ブログ特化メルマガはこちら

エクセルでは、データの傾向を把握したり、欠損値を補完したりするために、補間や予測の機能が役立ちます。

このような背景もありここでは、、直線補間と外挿の方法を数式とVBAの両面から解説します。

 

エクセルで直線補間(線形補間)の数式を出す方法【TREND関数やFORECAST関数】

直線補間とは、既知のデータ点を結ぶ直線上の値を求める方法です。線形補間ともいいますね。

エクセルでは、TREND関数(もしくはFORECAST関数)を使って実現できます。

以下は、B列にxの値、C列にyの値がある場合の数式です。

=TREND(C2:C6,B2:B6,B8)

この数式内の引数の意味は以下の通りです。

– C2:C6は既知のyの値の範囲
– B2:B6は既知のxの値の範囲
– B8は補間したいxの値

 

例えば、以下のようなデータがあるとします。

A B C
1 x y
2 1 2
3 2 4
4 3 6
5 4 8
6
7 補間したいx 補間結果
8 2.5 =TREND(C2:C5,B2:B5,B8)

 

B8セルに2.5と入力し、C8セルに上記の数式を入れると、x=2.5の時のyの値として5が返ってきます。

 

エクセルで線形補間の数式をもとに外挿の予測を行う方法

外挿とは、既知のデータの範囲外の値を予測する方法です。

実は外挿補間であっても、上の内挿の直線補間の数式をそのまま使えばいいです。同様の計算式で未来や過去の値を予測できます。

例えば、以下のようなデータを使って、x=5の時のyの値を予測してみましょう。

A B C
1 x y
2 1 2
3 2 4
4 3 6
5 4 8
6
7 予測したいx 予測結果
8 5 =TREND(C2:C5,B2:B5,B8)

C8セルの数式は補間の時と同じです。これを実行すると、x=5の時のyの予測値として10が得られます。

 

VBA(マクロ)の場合

Alt+F11でVBE画面を開いて以下をコピペしましょう。

Sub InterpolateAndExtrapolate()
    Dim knownY As Range
    Dim knownX As Range
    Dim newX As Double
    
    Set knownY = Range("C2:C5")
    Set knownX = Range("B2:B5")
    newX = Range("B8").Value
    
    Range("C8").Value = Application.WorksheetFunction.Trend(knownY, knownX, newX)
End Sub

このコードの意味は次の通りです。

– knownYは既知のyの値の範囲(C2:C5)
– knownXは既知のxの値の範囲(B2:B5)
– newXは補間・外挿したいxの値(B8のセルの値)
– Application.WorksheetFunction.Trendでエクセル関数のTRENDを呼び出し、結果をC8セルに出力

Alt+F8でマクロ選択画面を開きInterpolateAndExtrapolate関数を実行します。

使い方は以下の通りです。

A B C
1 x y
2 1 2
3 2 4
4 3 6
5 4 8
6
7 予測したいx 予測結果
8 5

B8セルに補間・外挿したいxの値(ここでは5)を入力し、マクロを実行するとC8セルに結果が表示されます。

 

まとめ エクセルで線形補間や予測(外挿や内挿)する方法【TREND関数やFORECAST関数】

ここでは、エクセルで補間(直線、線形)や予測(外挿や内挿)する方法【TREND関数やFORECAST関数】について解説しました。

エクセルの扱いになれ、さらに快適に過ごしていきましょう!