Contact

MIRR Function (Gnumeric)

Financial Intermediate Gnumeric

Calculate a periodic cash-flow MIRR in Gnumeric. Separate financing and reinvestment rates, preserve zero periods, and audit the terminal-value calculation.

Verification status: See the evidence and test scope described in this guide. How formula examples are checked

Quick answer: =MIRR(H2:H4,0.1,0.1) has the reference result 0.1 with the inputs described below. This is an independently checked expectation from Gnumeric’s pinned source, not an observed application result.

Availability and version history

  • Introduced: First introduction is unknown from the inspected records.
  • Documented support: Registered in Gnumeric 1.12.62, in the Financial Functions plugin. No retirement is established.
  • Last functioning version: Unverified for this guide; source presence does not certify an application execution.
  • Scope and dates: English formulas are shown. Official source snapshots were retained from the October 13–14, 2026 audit. This full guide and its reference calculations were checked on October 15, 2026; no newer source retrieval or native run is implied.

What MIRR does

MIRR compares the future value of positive flows with the present value of negative flows across n-1 intervals, where n is the number of collected values. Unlike IRR, the two external rates are supplied explicitly. The function assumes equal spacing and has no date arguments. A rate from an annual schedule is annual; a rate from a monthly schedule is monthly.

The function-specific help and complete callback provide the product-specific contract.

Syntax and arguments

=MIRR(values,finance_rate,reinvest_rate)
  • values: Required range or array of periodic cash flows, in time order. Negative amounts are outflows; positive amounts are receipts.
  • finance_rate: Per-period discount rate for negative cash flows.
  • reinvest_rate: Per-period reinvestment rate for positive flows. All three arguments are required.

The registration was checked alongside the callback; use the exact function name and argument order rather than assuming cross-application equivalence.

Reproducible worksheet

Enter -1000, 0 and 1210 in B2:B4. In B6 enter =MIRR(B2:B4,10%,10%); the reference result is 10%. The first flow occurs at time zero and the last at time two, giving two intervals. Its check is 1000*(1+10%)^2=1210. Keep the middle zero because it represents a full period with no flow.

Replacing that zero with a blank is materially different in the inspected implementation. Blank cells are ignored, so the collected sequence becomes -1000,1210 with only one interval; its source-derived MIRR is 21%. A missing value can therefore change the timing, even though no cash was added.

Formula and boundary checks

All outputs below are source-derived independent reference results. Decimal outputs are rounded to twelve places where needed. Each row is an independent fixture: clear and rebuild the stated H-column cells before entering its formula. The main practical worksheet uses a separate range.

Formula Independent H-column setup Expected reference result
=MIRR(H2:H4,0.1,0.1) H2 -1000; H3 0; H4 1210 0.1
=MIRR(H2:H4,0.1,0.1) H2 -1000; H3 cleared; H4 1210 0.21
=MIRR(H2:H4,0.1,0.1) H2 -1000; H3 =“missing”; H4 1210 0.21
=MIRR(H2:H4,0.08,0.1) H2 -1000; H3 500; H4 600 0.072380529476
=MIRR(H2:H4,0.08,0.1) H2 -1000; H3 -100; H4 1300 0.090793522384
=MIRR(H2:H3,0.1,0.1) H2 -1000; H3 1000 0
=MIRR(H2:H3,0.1,0.1) H2 100; H3 200 #DIV/0!
=MIRR(H2:H3,0.1,0.1) H2 -100; H3 -200 #DIV/0!
=MIRR(H2:H3,0.1,-1) H2 -1000; H3 1210 #DIV/0!
=MIRR(H2:H4,0.1,0.1) H2 -1000; H3 =TRUE(); H4 1210 #VALUE!

Advanced application and cross-check

For -1000,500,600 with financing 8% and reinvestment 10%, the terminal value of receipts is 500*1.1+600=1150. The outflow present value is 1000, so the reference MIRR is SQRT(1150/1000)-1, approximately 7.238052947636%. The finance rate has no effect in this specific example because the only outflow is at time zero.

With -1000,-100,1300, the second outflow is discounted: its present-value cost is 1000+100/1.08. Since the only receipt is at the final date, its terminal value is 1300. The reference rate is the square root of their ratio minus one. This distinguishes financing negative flows from reinvesting positive ones.

Errors, boundaries and troubleshooting

The callback ignores strings and blanks while collecting the values; even a referenced numeric string is skipped under that flag. Numeric zero is retained, preserving a period. Logical values are not accepted by the collector’s default boolean branch. Use an explicit numeric flow for each intended period and check the count before calculating.

The callback returns #DIV/0! when the discounted negative total or positive total is zero, or when reinvest_rate is at most -100%. That covers ordinary all-positive and all-negative examples. The financing rate does not have a matching explicit guard. This guide uses finance_rate greater than -100% and does not infer reliable behavior for singular discounting or extreme values. It does not certify an error for every malformed list. At least one negative and one positive numeric value are needed for the ordinary interpretation.

Use actual numeric input cells for the principal and rates. The table states any deliberately mixed-type range separately. No native application-localized formula entry or display formatting was executed.

Official evidence and verification limits

The calculations are an independent reference model, not execution of the full Gnumeric engine, headless application or graphical editor. No exact installed-release behavior, GUI entry, locale handling, import parity or extreme-value outcome is certified beyond the stated source scope. Reproduce a small fixture in the target build before relying on an operational workbook.