メインコンテンツへスキップ
メインコンテンツへスキップ

財務関数

注記

このドキュメントは system.functions システムテーブルを元に生成されています

financialInternalRateOfReturn

導入バージョン: v25.7.0

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

IRR は次の方程式を数値的に解きます:

\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.0

不規則な間隔で発生する一連のキャッシュフローに対して、拡張内部収益率(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.0

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

デフォルトのバージョン(start_from_zero = true)の場合:

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

Excel 互換バージョン(start_from_zero = false)の場合:

\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 互換)から開始するかを指定するオプションの boolean パラメータ。デフォルト: true。Bool

返される値

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

default_calculation

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

Excel 互換の計算

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

financialNetPresentValueExtended

導入バージョン: v25.7.0

不規則な間隔で発生する一連のキャッシュフローに対して、拡張正味現在価値(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つ含む必要があります。Array(Int8/16/32/64) または Array(Float*)
  • dates — 各キャッシュフローに対応する日付の配列。cashflows配列と同じサイズである必要があります。Array(Date) または Array(Date32)
  • [, daycount] — 省略可能な日数計算規則。指定可能な値: 'ACT_365F'(デフォルト)— Actual/365 Fixed、'ACT_365_25' — Actual/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