Excelで値を補間する方法

Excelで値を補間する方法

私は2つの表を持っています。最初の表には、特定の日数(列見出し)の参考条件付き利率が含まれています。

日付 1日 7日 14日間 30日間 90日間
2021年1月11日 4.36 4.36 4.30 4.49 4.64
2021年1月12日 4.32 4.34 4.36 4.48 4.63
2021年1月13日 4.25 4.32 4.34 4.43 4.60
2021年1月14日 4.26 4.35 4.35 4.36 4.58
2021年1月15日 4.33 4.35 4.37 4.34 4.57

そして、与えられた日数に対する実質レートを計算する2番目の表

日付 日々 レート
2021年1月12日 21 ?
2021年1月13日 74 ?
2021年1月15日 40 ?

ご覧のとおり、一部の日には条件付き利率が示され、その他の日には実質利率が示されています。とりわけ、条件付き利率は各日に対して示され、実質利率はそのうちのいくつかにのみ示されています。この利率を計算するにはどうすればよいですか? ここでは線形補間が使用されています。たとえば、実際の日数が 21 の場合、最も近い条件付き利率は 14 日間に対して示され、この値を数日後に外挿する必要があります。について読みました=forecastが、必要なことは実行されません。Excel でこれを行うのに役立つ関数はありますか、それとも VBA スクリプトを作成する必要がありますか?

答え1

ここに画像の説明を入力してください

オフィス365:

=FORECAST.LINEAR(B7,
 INDEX(B2:F2,MATCH(B7,$B$1:$F$1,1)):INDEX(B2:F2,MATCH(B7,$B$1:$F$1,1)+1),
 INDEX($B$1:$F$1,MATCH(B7,$B$1:$F$1,1)):INDEX($B$1:$F$1,MATCH(B7,$B$1:$F$1,1)+1))

からExcelで補間する

驚くべきことに、Excel で線形補間を行うのは非常に困難です。

これは Excel の予測関数を使用します=FORECAST(x,known_y's,known_x's)

および上=INDEX=MATCH関連する 2 つの点を選択します。known_y'sknown_x's

これは Excel 2007 でも動作しますが、(まもなく廃止予定)=FORECAST.LINEARに変更する必要があります。=FORECAST

答え2

設定点間の日数の比率を取得し、その比率を上限値と下限値の差に掛けて、その結果に下限値を加算する必要があります。

実行する必要がある 1 つの手順は、ヘッダーを実際の数値に変更することです。

OFFICE 365 では、LET を使用して手順を簡素化できます。

=LET(head,$B$1:$F$1,
         lkp,B7,
         rng,$B$2:$F$4,
         dt,$A$2:$A$4,
         rw,INDEX(rng,MATCH(A7,dt,0),0),
         mtch,MATCH(lkp,head),
         mtchp1,mtch+1,
         fst,INDEX(head,,mtch),
         scd,INDEX(head,,mtchp1),
         fct,(lkp-fst)/(scd-fst),
          vlue1,INDEX(rw,,mtch),
          vlue2,INDEX(rw,,mtchp1),
          (vlue2-vlue1)*fct+vlue1)

ここに画像の説明を入力してください

letなし:

=(INDEX(INDEX($B$2:$F$4,MATCH(A7, $A$2:$A$4,0),0),, MATCH(B7, $B$1:$F$1)+1)- INDEX(INDEX($B$2:$F$4,MATCH(A7, $A$2:$A$4,0),0),, MATCH(B7, $B$1:$F$1)))* ((B7- INDEX($B$1:$F$1,, MATCH(B7, $B$1:$F$1)))/( INDEX($B$1:$F$1,, MATCH(B7, $B$1:$F$1)+1)- INDEX($B$1:$F$1,, MATCH(B7, $B$1:$F$1))))+ INDEX(INDEX($B$2:$F$4,MATCH(A7, $A$2:$A$4,0),0),, MATCH(B7, $B$1:$F$1))

ご覧のとおり、非常に扱いにくくなり、管理が難しくなります。

ここに画像の説明を入力してください


LET を使用する別の方法は、開始と終了の x と y を取得した後、math の代わりに FORECAST.LINEAR を使用して答えを取得することです。

=LET(head,$B$1:$F$1,
         lkp,B7,
         rng,$B$2:$F$4,
         dt,$A$2:$A$4,
         rw,INDEX(rng,MATCH(A7,dt,0),0),
         mtch,MATCH(lkp,head),
         mtchp1,mtch+1,
         fst,INDEX(head,,mtch),
         scd,INDEX(head,,mtchp1),
          vlue1,INDEX(rw,,mtch),
          vlue2,INDEX(rw,,mtchp1),
          FORECAST.LINEAR(lkp,CHOOSE({1,2},vlue1,vlue2),CHOOSE({1,2},fst,scd)))

ここに画像の説明を入力してください

関連情報