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

財務関数

注記

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

financialInternalRateOfReturn

導入バージョン: v25.7

一定間隔で発生する一連のキャッシュフローの内部収益率 (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 つだけの場合、すべてのキャッシュフローが 0 の場合、またはその他の計算エラーが発生した場合は 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' - Actual/365 Fixed:日付間の実際の日数を365で除算
  • 'ACT_365_25' - Actual/365.25:日付間の実際の日数を365.25で除算 String

返り値

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

基本的な例

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

推定値を指定した例

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

日数計算規則を指定した例

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: Net Present Value)を計算します。

デフォルトのバリアント(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 互換)から計算するかを示すオプションのブール値型パラメータ。デフォルト: true。Bool

戻り値

正味現在価値 (NPV) を 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'(デフォルト)— 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