> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8c05c8a2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> 金融関数のドキュメント

# 金融関数

<Note>
  以下のドキュメントは、システムテーブル `system.functions` から生成されています
</Note>

{/*AUTOGENERATED_START*/}

<div id="financialInternalRateOfReturn">
  ## financialInternalRateOfReturn
</div>

導入バージョン: v25.7.0

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

IRR は、次の方程式の解として求められます。

$$
\sum&#95;{i=0}^n \frac{cashflow_i}{(1 + irr)^i} = 0
$$

**構文**

```sql theme={null}
financialInternalRateOfReturn(cashflows[, guess])
```

**引数**

* `cashflows` — キャッシュフローの Array。各値は、支払い (負の値) または収入 (正の値) を表します。[`Array(Int8/16/32/64)`](/reference/data-types/array) または [`Array(Float*)`](/reference/data-types/array)
* `[, guess]` — 内部収益率の初期推定値 (定数値、省略可能) です (既定値は 0.1) 。[`Float*`](/reference/data-types/float)

**戻り値**

内部収益率を返します。計算が収束しない場合、入力配列が空であるか要素が 1 つしかない場合、すべてのキャッシュフローが 0 である場合、またはその他の計算エラーが発生した場合は、`NaN` を返します。[`Float64`](/reference/data-types/float)

**例**

**simple\_example**

```sql title=Query theme={null}
SELECT financialInternalRateOfReturn([-100, 39, 59, 55, 20])
```

```response title=Response theme={null}
0.2809484211599611
```

**simple\_example\_with\_guess**

```sql title=Query theme={null}
SELECT financialInternalRateOfReturn([-100, 39, 59, 55, 20], 0.1)
```

```response title=Response theme={null}
0.2809484211599611
```

<h2 id="financialInternalRateOfReturnExtended">
  financialInternalRateOfReturnExtended
</h2>

導入バージョン: v25.7.0

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

XIRRは以下の方程式を解こうとします（`ACT_365F` の場合の例）：

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

Arrayは日付の昇順でソートされている必要があります。日付は重複なしで指定してください。

**Syntax**

```sql theme={null}
financialInternalRateOfReturnExtended(cashflow, date [, guess, daycount])
```

**引数**

* `cashflow` — 第2引数の日付に対応するキャッシュフローのArray。[`Array(Int8/16/32/64)`](/reference/data-types/array) または [`Array(Float*)`](/reference/data-types/array)
* `date` — キャッシュフローに対応する一意の日付を昇順に並べたArray。[`Array(Date)`](/reference/data-types/array) または [`Array(Date32)`](/reference/data-types/array)
* `[, guess]` — 省略可能。XIRR計算の初期推定値（定数値）。[`Float*`](/reference/data-types/float)
* `[, daycount]` — 省略可能。日数計算規則（デフォルト: 'ACT\_365F'）。指定可能な値：
* 'ACT\_365F' - Actual/365 Fixed: 日付間の実際の日数を365で除算
* 'ACT\_365\_25' - Actual/365.25: 日付間の実際の日数を365.25で除算
  [`String`](/reference/data-types/string)

**戻り値**

XIRR値を返します。計算を実行できない場合はNaNを返します。[`Float64`](/reference/data-types/float)

**例**

**simple\_example**

```sql title=Query theme={null}
SELECT financialInternalRateOfReturnExtended([-10000, 5750, 4250, 3250], [toDate('2020-01-01'), toDate('2020-03-01'), toDate('2020-10-30'), toDate('2021-02-15')])
```

```response title=Response theme={null}
0.6342972615260243
```

**simple\_example\_with\_guess**

```sql title=Query theme={null}
SELECT financialInternalRateOfReturnExtended([-10000, 5750, 4250, 3250], [toDate('2020-01-01'), toDate('2020-03-01'), toDate('2020-10-30'), toDate('2021-02-15')], 0.5)
```

```response title=Response theme={null}
0.6342972615260243
```

**simple\_example\_daycount**

```sql title=Query theme={null}
SELECT round(financialInternalRateOfReturnExtended([100000, -110000], [toDate('2020-01-01'), toDate('2021-01-01')], 0.1, 'ACT_365_25'), 6) AS xirr_365_25
```

```response title=Response theme={null}
0.099785
```

<div id="financialNetPresentValue">
  ## financialNetPresentValue
</div>

導入バージョン: v25.7.0

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

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

$$
\sum&#95;{i=0}^{N-1} \frac{values_i}{(1 + rate)^i}
$$

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

$$
\sum&#95;{i=1}^{N} \frac{values_i}{(1 + rate)^i}
$$

**構文**

```sql theme={null}
financialNetPresentValue(rate, cashflows[, start_from_zero])
```

**引数**

* `rate` — 適用する割引率です。[`Float*`](/reference/data-types/float)
* `cashflows` — キャッシュフローの Array です。各値は支払い (負の値) または収入 (正の値) を表します。[`Array(Int8/16/32/64)`](/reference/data-types/array) または [`Array(Float*)`](/reference/data-types/array)
* `[, start_from_zero]` — NPV の計算を期間 `0` (true) から開始するか、期間 `1` (false、Excel 互換) から開始するかを示す、省略可能なブール値 parameter です。デフォルトは true です。[`Bool`](/reference/data-types/boolean)

**戻り値**

正味現在価値を Float64 の値として返します。[`Float64`](/reference/data-types/float)

**例**

**default\_calculation**

```sql title=Query theme={null}
SELECT financialNetPresentValue(0.08, [-40000., 5000., 8000., 12000., 30000.])
```

```response title=Response theme={null}
3065.2226681795255
```

**excel\_compatible\_calculation**

```sql title=Query theme={null}
SELECT financialNetPresentValue(0.08, [-40000., 5000., 8000., 12000., 30000.], false)
```

```response title=Response theme={null}
2838.1691372032656
```

<h2 id="financialNetPresentValueExtended">
  financialNetPresentValueExtended
</h2>

導入バージョン: v25.7.0

不規則なインターバルで発生する一連のキャッシュフローに対して、拡張正味現在価値（XNPV）を計算します。XNPVは現在価値の計算において、各キャッシュフローの発生タイミングを考慮します。

`ACT_365F` のXNPV計算式:

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

Arrayは日付の昇順でソートされている必要があります。日付は重複なしで指定してください。

**Syntax**

```sql theme={null}
financialNetPresentValueExtended(rate, cashflows, dates[, daycount])
```

**引数**

* `rate` — 適用する割引率。[`Float*`](/reference/data-types/float)
* `cashflows` — キャッシュフローのArray。各値は支払い（負の値）または収入（正の値）を表します。正の値と負の値がそれぞれ1つ以上含まれている必要があります。[`Array(Int8/16/32/64)`](/reference/data-types/array) または [`Array(Float*)`](/reference/data-types/array)
* `dates` — 各キャッシュフローに対応する日付のArray。cashflows のArrayと同じサイズである必要があります。[`Array(Date)`](/reference/data-types/array) または [`Array(Date32)`](/reference/data-types/array)
* `[, daycount]` — 省略可能な日数計算規則。指定可能な値: `'ACT_365F'`（デフォルト）— Actual/365 Fixed、`'ACT_365_25'` — Actual/365.25。[`String`](/reference/data-types/string)

**戻り値**

正味現在価値を Float64 値として返します。[`Float64`](/reference/data-types/float)

**例**

**基本的な使い方**

```sql title=Query theme={null}
SELECT financialNetPresentValueExtended(0.1, [-10000., 5750., 4250., 3250.], [toDate('2020-01-01'), toDate('2020-03-01'), toDate('2020-10-30'), toDate('2021-02-15')])
```

```response title=Response theme={null}
2506.579458169746
```

**異なる日数計算規則を使用する場合**

```sql title=Query theme={null}
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')
```

```response title=Response theme={null}
2507.067268742502
```

<div id="related-resources">
  ## 関連リソース
</div>

* [ClickHouse の金融関数のビデオ](https://www.youtube.com/watch?v=BePLPVa0w_o)
