コンテンツへスキップ
🛠️ToolsShed

IRR 計算機

キャッシュフロー系列の内部収益率(IRR)を計算します。

将来キャッシュフロー

1
2
3
4

このツールについて

内部収益率(IRR)は、投資やプロジェクトの利益性と効率性を評価するための重要な指標です。このツールは、すべてのキャッシュフローの正味現在価値(NPV)がゼロになる割引率を計算し、投資の年間収益率を表す単一のパーセンテージを提供します。IRRを理解することで、投資家や財務専門家は投資規模やタイムラインに関係なく、異なる投資機会を同じ基準で比較できます。

このツールを使用するには、初期投資(通常は負の値)とその後のすべてのキャッシュフローを年ごとに入力します。ツールは数値計算方法を使用してIRRを反復的に解くことができます。IRRは資本投資、ビジネス買収、不動産取引、およびプロジェクト実現可能性の評価に一般的に使用されます。競合する投資機会の間で決定する必要がある場合やプロジェクトが必要な収益率を満たしているかどうかを評価する場合に特に有用です。

IRRはキャッシュフローがIRR率自体で再投資されることを前提としており、これが常に現実的とは限らないことに注意してください。複雑なシナリオでは修正IRR(MIRR)がこれに対応できます。さらに、非従来的なキャッシュフローパターンでは複数のIRR解が生じる可能性があります。このツールは主要なIRR値を提供し、最初の支出の後に流入が続く従来的なパターンの場合に最も信頼できます。

よくある質問

コード実装

def npv(rate: float, cash_flows: list) -> float:
    """Net Present Value at given rate."""
    return sum(cf / (1 + rate) ** t for t, cf in enumerate(cash_flows))

def irr(cash_flows: list, max_iter: int = 1000, tol: float = 1e-7) -> float | None:
    """Internal Rate of Return via Newton-Raphson iteration."""
    # Check sign change
    positives = any(cf > 0 for cf in cash_flows)
    negatives = any(cf < 0 for cf in cash_flows)
    if not (positives and negatives):
        return None

    rate = 0.1  # initial guess
    for _ in range(max_iter):
        f = npv(rate, cash_flows)
        # Derivative: d/dr NPV = sum(-t * cf / (1+r)^(t+1))
        df = sum(-t * cf / (1 + rate) ** (t + 1) for t, cf in enumerate(cash_flows))
        if df == 0:
            break
        new_rate = rate - f / df
        if abs(new_rate - rate) < tol:
            return new_rate
        rate = new_rate
    return None

# Example: invest $1000, receive $300, $400, $500 over 3 years
cash_flows = [-1000, 300, 400, 500]
result = irr(cash_flows)
if result is not None:
    print(f"IRR = {result * 100:.2f}%")
    print(f"NPV at IRR ≈ {npv(result, cash_flows):.6f}")  # should be ~0

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.