用途
- 残存期間が1年以上(償還日が受渡日の1年応当日以降)である債券の残存年数の算出
※残存期間が1年以上である債券の残存年数=閏日を除く残存日数(片端)÷365
Excelでの数式
前提
次のとおり日付が入力されているものとする。
- A1セル:受渡日
- B1セル:償還日
※A1<B1
閏日の日数を得る数式
次のとおり数式を設定すれば、両日付の間の閏日の数を得られる。
=SUMPRODUCT((DAY(DATE(ROW(INDIRECT(CONCAT(YEAR(A1),":",YEAR(B1)))),2,29))=29)*1,(A1+1<=DATE(ROW(INDIRECT(CONCAT(YEAR(A1),":",YEAR(B1)))),2,29))*1,(DATE(ROW(INDIRECT(CONCAT(YEAR(A1),":",YEAR(B1)))),2,29)<B1+1)*1)
閏日を除く残存日数(片端)を得る数式
次のとおり数式を設定すれば、両日付の間の日数(片端)であって、閏日を除く日数を得られる。
=B1-A1-SUMPRODUCT((DAY(DATE(ROW(INDIRECT(CONCAT(YEAR(A1),":",YEAR(B1)))),2,29))=29)*1,(A1+1<=DATE(ROW(INDIRECT(CONCAT(YEAR(A1),":",YEAR(B1)))),2,29))*1,(DATE(ROW(INDIRECT(CONCAT(YEAR(A1),":",YEAR(B1)))),2,29)<B1+1)*1)
残存期間が1年以上であるか1年未満であるかに応じて残存日数(片端)を得る数式
IF関数及びEDATE関数を組み合わせて
=IF(B1>=EDATE(A1,12),B1-A1-SUMPRODUCT((DAY(DATE(ROW(INDIRECT(CONCAT(YEAR(A1),":",YEAR(B1)))),2,29))=29)*1,(A1+1<=DATE(ROW(INDIRECT(CONCAT(YEAR(A1),":",YEAR(B1)))),2,29))*1,(DATE(ROW(INDIRECT(CONCAT(YEAR(A1),":",YEAR(B1)))),2,29)<B1+1)*1),B1-A1)
とする。残存年数を得るには365で除すればよい。