Excel) (WorksheetFunction.MDuration 方法

傳回假定面額為 100 元之證券的 Macauley 修正有效期間。

語法

運算式MDuration (Arg1Arg2Arg3Arg4Arg5Arg6)

表達 代表 WorksheetFunction 物件的 變數。

參數

名稱 必要/選用 資料類型 描述
Arg1 必要 Variant Settlement - 證券的結算日。 證券結算日是證券交割給買方後的次日。
Arg2 必要 Variant Maturity - 證券的到期日。 超過此日,證券即過期。
Arg3 必要 Variant Coupon - 證券的年度票息率。
Arg4 必要 Variant Yld - 證券的年收益。
Arg5 必要 Variant Frequency - 每年票息付款的次數。 若每年付款一次,則 frequency = 1;若半年付款一次,則 frequency = 2;若每季付款一次,則 frequency = 4。
Arg6 選用 Variant Basis - 要使用的日計數基礎類型。

傳回值

雙精確度

註解

重要事項

日期必須使用 DATE 函數來輸入,或是使用其他公式或函數的計算結果來輸入。 例如,使用 DATE(2008,5,23) 表示 2008 年 5 月 23 日。 若使用文字格式輸入日期,可能會發生問題。

下表描述可用於 Arg6 的值。

基礎 日計數基礎
0 或省略 US (NASD) 30/360
1 實際/實際
2 實際/360
3 實際/365
4 歐洲 30/360

Microsoft Excel 會以連續的序列值來儲存日期,以便用來計算。 根據預設,1900 年 1 月 1 日是序列值 1,而 2008 年 1 月 1 日則是序列值 39448,因為這是 1900 年 1 月 1 日之後的第 39,448 天。 Microsoft Excel for the Macintosh 則使用不同的預設日期系統。

注意事項

Visual Basic for Applications (VBA) 會以不同于 Excel 的方式計算序列日期。 在 VBA 中,序號 1 是 1899 年 12 月 31 日,而不是 1900 年 1 月 1 日。

結算日期是買方購買優待券的日期,例如證券。 到期日是優待券到期的日期。 例如,假設 30 年期的證券是在 2008 年 1 月 1 日發行,而買方會在六個月後購買。 發行日期為 2008 年 1 月 1 日,結算日期為 2008 年 7 月 1 日,到期日為 2038 年 1 月 1 日之後的 30 年 1 月 1 日發行日期。

會將 settlement、maturity、frequency 及 basis 無條件捨去成整數。

如果 settlement 或 maturity 不是有效的日期, MDuration 會 傳回#VALUE! 錯誤值。

如果 yld < 0 或優待券 < 0, MDuration 會 傳回#NUM! 錯誤值。

如果 frequency 是 1、2 或 4 以外的任何數位, MDuration 會傳回#NUM! 錯誤值。

如果 basis < 0 或 basis > 4, MDuration 會傳回#NUM! 錯誤值。

如果 settlement ≥ maturity, MDuration 會 傳回#NUM! 錯誤值。

修改的持續時間定義為 公式

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應