メインコンテンツまでスキップ
メインコンテンツまでスキップ

財務関数

financialInternalRateOfReturn

導入バージョン: v25.7

定期的に発生する一連のキャッシュフローの内部収益率(IRR)を計算します。 IRRは、正味現在価値(NPV)がゼロになる割引率です。

IRRは、次の方程式を解こうとします:

i=0ncashflowi(1+irr)i=0\sum_{i=0}^n \frac{cashflow_i}{(1 + irr)^i} = 0

構文

financialInternalRateOfReturn(cashflows[, guess])

引数

  • cashflows — キャッシュフローの配列。各値は支払い(負の値)または収入(正の値)を表します。 Array(Int8/16/32/64) または Array(Float*)
  • [, guess] — 内部収益率のためのオプションの初期推定値(定数値、デフォルトは0.1)。 Float*

返戻値

内部収益率を返します。計算が収束できない場合、入力配列が空であるか要素が1つしかない場合、すべてのキャッシュフローがゼロである場合、または他の計算エラーが発生した場合は NaN を返します。 Float64

simple_example

SELECT financialInternalRateOfReturn([-100, 39, 59, 55, 20])
0.2809484211599611

simple_example_with_guess

SELECT financialInternalRateOfReturn([-100, 39, 59, 55, 20], 0.1)
0.2809484211599611

financialInternalRateOfReturnExtended

導入バージョン: v25.7

不定期に発生する一連のキャッシュフローの拡張内部収益率(XIRR)を計算します。XIRRは、すべてのキャッシュフローの正味現在価値(NPV)がゼロになる割引率です。

XIRRは次の方程式を解こうとします(ACT_365Fの例):

i=0ncashflowi(1+rate)(dateidate0)/365=0\sum_{i=0}^n \frac{cashflow_i}{(1 + rate)^{(date_i - date_0)/365}} = 0

配列は日付で昇順にソートされている必要があります。日付はユニークである必要があります。

構文

financialInternalRateOfReturnExtended(cashflow, date [, guess, daycount])

引数

  • cashflow — 2番目のパラメータの日時に対応するキャッシュフローの配列。 Array(Int8/16/32/64) または Array(Float*)
  • date — キャッシュフローに対応するユニークな日付のソートされた配列。 Array(Date) または Array(Date32)
  • [, guess] — オプション。XIRR計算のための初期推定値(定数値)。 Float*
  • [, daycount] — オプションの日数計算方式(デフォルト 'ACT_365F')。サポートされている値は次の通りです:
  • 'ACT_365F' - 実際/365固定:日付間の実際の日数を365で割った値を使用
  • 'ACT_365_25' - 実際/365.25:日付間の実際の日数を365.25で割った値を使用 String

返戻値

XIRRの値を返します。計算を実行できない場合、NaN を返します。 Float64

simple_example

SELECT financialInternalRateOfReturnExtended([-10000, 5750, 4250, 3250], [toDate('2020-01-01'), toDate('2020-03-01'), toDate('2020-10-30'), toDate('2021-02-15')])
0.6342972615260243

simple_example_with_guess

SELECT financialInternalRateOfReturnExtended([-10000, 5750, 4250, 3250], [toDate('2020-01-01'), toDate('2020-03-01'), toDate('2020-10-30'), toDate('2021-02-15')], 0.5)
0.6342972615260243

simple_example_daycount

SELECT round(financialInternalRateOfReturnExtended([100000, -110000], [toDate('2020-01-01'), toDate('2021-01-01')], 0.1, 'ACT_365_25'), 6) AS xirr_365_25
0.099785

financialNetPresentValue

導入バージョン: v25.7

各キャッシュフローの間隔が均等であると仮定して、一連のキャッシュフローの正味現在価値(NPV)を計算します。

デフォルトのバリアント (start_from_zero = true):

i=0N1valuesi(1+rate)i\sum_{i=0}^{N-1} \frac{values_i}{(1 + rate)^i}

Excel互換バリアント (start_from_zero = false):

i=1Nvaluesi(1+rate)i\sum_{i=1}^{N} \frac{values_i}{(1 + rate)^i}

構文

financialNetPresentValue(rate, cashflows[, start_from_zero])

引数

  • rate — 適用する割引率。 Float*
  • cashflows — キャッシュフローの配列。各値は支払い(負の値)または収入(正の値)を表します。 Array(Int8/16/32/64) または Array(Float*)
  • [, start_from_zero] — NPV計算を期間 0(true)または期間 1(false、Excel互換)から開始するかどうかを示すオプションのブールパラメータ。デフォルト: true。 Bool

返戻値

正味現在価値をFloat64値として返します。 Float64

default_calculation

SELECT financialNetPresentValue(0.08, [-40000., 5000., 8000., 12000., 30000.])
3065.2226681795255

excel_compatible_calculation

SELECT financialNetPresentValue(0.08, [-40000., 5000., 8000., 12000., 30000.], false)
2838.1691372032656

financialNetPresentValueExtended

導入バージョン: v25.7

不定期に発生する一連のキャッシュフローの拡張正味現在価値(XNPV)を計算します。XNPVは、現在価値を計算する際に、各キャッシュフローの具体的なタイミングを考慮します。

ACT_365FのためのXNPV方程式:

XNPV=i=1ncashflowi(1+rate)(dateidate0)/365XNPV=\sum_{i=1}^n \frac{cashflow_i}{(1 + rate)^{(date_i - date_0)/365}}

配列は日付で昇順にソートされている必要があります。日付はユニークである必要があります。

構文

financialNetPresentValueExtended(rate, cashflows, dates[, daycount])

引数

  • rate — 適用する割引率。 Float*
  • cashflows — キャッシュフローの配列。各値は支払い(負の値)または収入(正の値)を表します。少なくとも1つの正の値と1つの負の値を含む必要があります。 Array(Int8/16/32/64) または Array(Float*)
  • dates — 各キャッシュフローに対応する日付の配列。cashflows配列と同じサイズである必要があります。 Array(Date) または Array(Date32)
  • [, daycount] — オプションの日数計算方式。サポートされている値: 'ACT_365F'(デフォルト) — 実際/365固定、'ACT_365_25' — 実際/365.25。 String

返戻値

正味現在価値をFloat64値として返します。 Float64

基本的な使用法

SELECT financialNetPresentValueExtended(0.1, [-10000., 5750., 4250., 3250.], [toDate('2020-01-01'), toDate('2020-03-01'), toDate('2020-10-30'), toDate('2021-02-15')])
2506.579458169746

異なる日数計算方式を使用

SELECT financialNetPresentValueExtended(0.1, [-10000., 5750., 4250., 3250.], [toDate('2020-01-01'), toDate('2020-03-01'), toDate('2020-10-30'), toDate('2021-02-15')], 'ACT_365_25')
2507.067268742502