{
  "category": "Statistical functions",
  "display_name": "LOGEST",
  "entry_kind": "built_in_function",
  "eval_api": {
    "method": "POST",
    "url": "https://handbook.dnacalc.com/api/eval"
  },
  "function_id": "FUNC.LOGEST",
  "implementation_state": {
    "answer_bank": {
      "excel_builds": [
        "20228"
      ],
      "larger_numeric": 0,
      "last_bit": 0,
      "matched": 360,
      "other_mismatch": 0,
      "refused": 0,
      "rows": 360,
      "unread": 0,
      "worst_ulp": 0
    },
    "detail": "Of 2,417 recorded answers (360 in the answer bank and 2,057 workbook cells), 243 do not match: 150 differ by more than 16 ULP, 12 differ by at most 16 ULP, 81 differ in kind or value.",
    "dnacalc_commit": "9e1884369a678158dd82d3d74188daf986995e87",
    "in_catalogue": true,
    "state": "differs",
    "state_label": "Known larger differences",
    "summary": "Known larger differences on 243 of 2,417 recorded answers",
    "workbook_corpus": {
      "cells": 2057,
      "larger_numeric": 150,
      "last_bit": 12,
      "matched": 1814,
      "other_mismatch": 81,
      "worst_ulp": 7
    }
  },
  "implementations": [
    {
      "commit": "9e1884369a678158dd82d3d74188daf986995e87",
      "flavour": "excel-compatibility-candidate",
      "language": "Rust",
      "name": "CalcFunc",
      "own_code": [
        "https://github.com/DnaCalc/DnaCalc/blob/9e1884369a678158dd82d3d74188daf986995e87/crates/calc-func/src/catalogue/statistics.rs#L433-L435",
        "https://github.com/DnaCalc/DnaCalc/blob/9e1884369a678158dd82d3d74188daf986995e87/crates/calc-func/src/ported/regression_forecast_family.rs#L1082-L1105",
        "https://github.com/DnaCalc/DnaCalc/blob/9e1884369a678158dd82d3d74188daf986995e87/crates/calc-func/src/ported/regression_forecast_family.rs#L1234-L1248"
      ],
      "repository": "https://github.com/DnaCalc/DnaCalc",
      "shared_code": [
        "catalogue/statistics::regression",
        "ported/excel_numeric::binary_with",
        "ported/excel_numeric::excel_x87_add",
        "ported/excel_numeric::excel_x87_sub",
        "ported/excel_numeric::excel_x87_mul",
        "ported/excel_numeric::excel_x87_div",
        "ported/excel_numeric/x87::mul",
        "ported/excel_numeric/x87::add",
        "ported/excel_numeric/x87::sub",
        "ported/excel_numeric/x87::div",
        "ported/regression_forecast_family::GramInterval::checked",
        "ported/regression_forecast_family::GramInterval::subtract",
        "ported/regression_forecast_family::GramInterval::multiply",
        "ported/regression_forecast_family::GramInterval::square",
        "ported/regression_forecast_family::GramInterval::divide_positive",
        "ported/regression_forecast_family::moment",
        "ported/regression_forecast_family::column",
        "ported/regression_forecast_family::entry",
        "ported/regression_forecast_family::factor_column",
        "ported/regression_forecast_family::unresolved_inner",
        "ported/regression_forecast_family::unresolved",
        "ported/regression_forecast_family::resolve_arg_eval",
        "ported/regression_forecast_family::optional_arg_value",
        "ported/regression_forecast_family::numeric_from_cell",
        "ported/regression_forecast_family::numeric_scalar_from_eval",
        "ported/regression_forecast_family::bool_flag_from_eval_or_default",
        "ported/regression_forecast_family::collect_numeric_vector_from_eval",
        "ported/regression_forecast_family::collect_numeric_vector_arg",
        "ported/regression_forecast_family::NumericMatrix::cell",
        "ported/regression_forecast_family::NumericMatrix::transpose",
        "ported/regression_forecast_family::collect_numeric_matrix_from_eval",
        "ported/regression_forecast_family::collect_numeric_matrix_arg",
        "ported/regression_forecast_family::sequence_predictors",
        "ported/regression_forecast_family::default_output_shape_for_known_y",
        "ported/regression_forecast_family::normalize_known_x_matrix",
        "ported/regression_forecast_family::prepare_predictor_input",
        "ported/regression_forecast_family::predictor_input_from_optional",
        "ported/regression_forecast_family::least_squares",
        "ported/regression_forecast_family::exact_product",
        "ported/regression_forecast_family::exactly_proportional",
        "ported/regression_forecast_family::linear_fit_from_data",
        "ported/regression_forecast_family::exponential_fit_from_data",
        "ported/regression_forecast_family::row_array",
        "ported/regression_forecast_family::one_observation_statistics",
        "ported/regression_forecast_family::statistics_block"
      ],
      "source": "https://github.com/DnaCalc/DnaCalc/blob/9e1884369a678158dd82d3d74188daf986995e87/crates/calc-func/src/catalogue/statistics.rs#L433-L435",
      "state": "differs",
      "suite": null,
      "summary": "Known larger differences on 243 of 2,417 recorded answers"
    }
  ],
  "json_url": "https://handbook.dnacalc.com/api/functions/FUNC.LOGEST.json",
  "name": "LOGEST",
  "notes": [
    {
      "basis": "Gains 11 recorded answers and loses none over the 3,944 regression rows of the corpus; 35 selections from two fits were checked directly.",
      "documentation": null,
      "evidence": [
        {
          "commit": "3f3b1622003f4f349a08ee8b054163e58f8dba67",
          "locator": "line 680",
          "note": "recorded selections pinned",
          "path": "crates/calc-func/tests/f1_stats.rs",
          "repository": "DnaCalc"
        },
        {
          "commit": "130ec21b3da03276c01fb27dce70463f08f90d9a",
          "locator": "reflector_study",
          "note": "research round 22 result",
          "path": "round22-result.json",
          "repository": "DnaCalc-Research"
        },
        {
          "commit": "130ec21b3da03276c01fb27dce70463f08f90d9a",
          "locator": null,
          "note": "reflector study",
          "path": "evidence/round22/householder-all-hard.json",
          "repository": "DnaCalc-Research"
        }
      ],
      "functions": [
        "FUNC.LINEST",
        "FUNC.LOGEST"
      ],
      "inferred": null,
      "kind": "bit-matching-detail",
      "note_id": "FN-LINEST-001",
      "open": [
        "Norm, rank, mean, pivot and back-substitution policies are not identified. 48 fixed rank policies and 240 rounded Gram/LDL rank labels are contradicted by the 241 recorded degrees-of-freedom observations."
      ],
      "recorded_on": "2026-11-04",
      "repros": [
        {
          "call": "=INDEX(LINEST({-17.979;-0.126;8;-5;1.7;37;12.4;14.46;-8;24.2},{20.8,50;34,23.41;38.875,-17.7;4.863,36.9;42.1,6;-14.55,44.41;-4.57,-12.96;-9.909,2.589;47.549,42;54.9,-17.63},TRUE,TRUE),2,1)",
          "correct": null,
          "excel": {
            "bits": "0x3fc863a97e13b089",
            "display": "0.19054144531344644",
            "kind": "number"
          },
          "input_route": "formula-literal",
          "inputs": [],
          "recorded_in": "Excel 16.0.20527.20088 Current Channel, Windows 64-bit (NT 10.0.26200), x86-64, AMD Ryzen 7 4800H, en-ZA",
          "source": {
            "commit": "c9f9d354165d2c20b9455c32582ea50baac7ba73",
            "locator": "sheet dcj9k_linest_stats, row 1094, column 4",
            "note": null,
            "path": "crates/calc-func/tests/captures/catalogue/sections/dcj9k_linest_stats.capture.json",
            "repository": "DnaCalc"
          }
        }
      ],
      "schema": "efh.function-note/v1",
      "statement": "In Excel's QR route the reflector arithmetic behaves as stored precision-64 steps: v0 = x0 - alpha, v'v, each dot-product term, f = 2t/v'v, and a - f*v. With this change the row below gets Excel's last bits, where a plain binary64 reflector does not.",
      "status": "measured",
      "title": "LINEST's Householder reflector stores each step from the x87 unit"
    }
  ],
  "schema": "efh.function-reference/v1",
  "section_order": [
    "what-it-does",
    "try-it",
    "quirks",
    "how-to-implement",
    "version-differences",
    "alternatives"
  ],
  "sections": {
    "alternatives": "\n### Relationships\n\n\n- **[LINEST](FUNC.LINEST.md)** — the linear engine `LOGEST` is built on. Mathematically,\n  `LOGEST(y, x, …)` is `EXP(LINEST(LN(y), x, …))` applied to the coefficient row. Whether the\n  two agree in their last bits is a question requiring evidence; the composition route and the\n  direct route can differ by where the logarithm is taken and how the statistics are\n  accumulated.\n- **`GROWTH`** — returns fitted `y` values from the same fit, as\n  [TREND](FUNC.TREND.md) does for `LINEST`. `GROWTH` is the function to use for prediction;\n  `LOGEST` for the parameters.\n- **[TREND](FUNC.TREND.md)** — the linear-scale predictor, for the comparison a reader should\n  make before choosing an exponential model.\n- **`RRI`** and **`PDURATION`** — the financial two-point\n  exponential-growth surfaces. `RRI` is exactly `LOGEST` on two observations with the\n  constant fitted, expressed as a rate; it uses no least squares because two points determine\n  the curve.\n- **Confused with:** the exponential chart trendline (fitted on the plotted series, displayed\n  with its own rounding), and with `LOGEST`'s own `r²` as a measure of exponential fit\n  quality — see above.\n\n\n",
    "how-to-implement": "\n### Numerical notes\n\n\nEverything in [LINEST](FUNC.LINEST.md)'s numerical notes applies to the inner fit —\nnormal-equations conditioning, the `κ₂(XᵀX) = κ₂(X)²` squaring, centring and scaling, the NIST\nStRD record. Three hazards are specific to `LOGEST`.\n\n**1. Cancellation in `ln y` near 1.** For `y` close to 1, `ln y` is a small difference computed\nfrom a value near unity, and the relative error in the logarithm blows up like `1/|ln y|`. This\nis the classical reason `log1p` exists: `ln(1 + t)` computed as `log(1 + t)` loses digits once\n`|t| ≲ 2⁻²⁶`, because the addition `1 + t` discards the low bits of `t` before the logarithm\never runs. Data that hovers near 1 — index series normalised to a base year, survival fractions\nnear unity — is the case where `LOGEST` can lose most of its precision before the regression\nstarts. A careful implementation cannot fix this from the outside: the `y` values arrive as\ndoubles and the information is already gone. What it *can* do is compute the logarithm\ncorrectly rounded, so the loss is exactly the unavoidable one.\n\n**2. Exponentiation amplifies absolute error into relative error.** The returned base is\n`m = exp(β̂)`, so\n\n    δm / m  ≈  δβ̂\n\nAn absolute error of `10⁻¹⁰` in the fitted slope becomes a *relative* error of `10⁻¹⁰` in the\nbase — acceptable — but the same error compounds when the base is raised to a large `x` in a\nprediction: `m^x` carries relative error `x·δβ̂`. Extrapolating an exponential fit fifty steps\nmultiplies the coefficient error by fifty before you even consider the model risk. This is\ninherent to the parameterisation, not a defect.\n\n**3. The statistics block inherits the log-scale accumulation.** `SSE = Σ(ln yᵢ − ln ŷᵢ)²`\ncomputed as `SST − SSR` cancels when the fit is good, and a good exponential fit is exactly\nwhen people look at `r²`. Accumulating residuals directly is unconditionally better here, as\nin `LINEST`.\n\nOn the mathematical library side, the accuracy of `LOGEST` is bounded by the accuracy of the\nplatform's `log` and `exp`. The correctly-rounded-or-nearly references are fdlibm's `__ieee754_log`\nand `__ieee754_exp` (Sun, and their descendants in glibc and musl), Cody and Waite's\n*Software Manual for the Elementary Functions* for the classic argument-reduction schemes, and\nMuller's *Elementary Functions: Algorithms and Implementation* for the modern treatment. A\nhalf-ulp `log` and a half-ulp `exp` are achievable; the Handbook does not assert what Excel\nuses.\n\n\n",
    "quirks": "\n### The returned array\n\n\nSame shape and same reversal as [LINEST](FUNC.LINEST.md):\n\n    { m_k , m_{k−1} , … , m₁ , b }\n\nwith the multiplier last and the predictor bases in reverse column order. With `stats = TRUE`\nthe five-row block is returned, laid out identically to `LINEST`'s.\n\n**The statistics describe the log fit, not the exponential fit.** The `r²`, the standard\nerrors, the `F` statistic and both sums of squares are computed on `ln y`. Consequences that\nmatter in practice:\n\n- `se(m_j)` in row 2 is the standard error of `β̂_j = ln m_j`, on the log scale. It is **not**\n  the standard error of `m_j`. Converting requires the delta method: `se(m_j) ≈ m_j · se(β̂_j)`\n  to first order, and that approximation degrades as `se(β̂_j)` grows.\n- An `r²` from `LOGEST` and an `r²` from `LINEST` on the same raw data are not comparable. A\n  higher `r²` from `LOGEST` does not mean the exponential model fits better in the original\n  units; it means it fits better *in log units*, which is a different comparison.\n- Because `E[exp(Z)] > exp(E[Z])` for a non-degenerate `Z` (Jensen's inequality), the fitted\n  curve `ŷ = b·∏m_j^{x_j}` is a fit to the **conditional median** of `y`, not its conditional\n  mean, when the log-scale residuals are symmetric. Predictions from `LOGEST` are therefore\n  systematically low as estimates of the mean. The classical correction multiplies by\n  `exp(σ̂²/2)`; whether to apply it is a modelling decision, and no Excel function applies it\n  for you.\n\n`EV-MISC-0010` records the corresponding structural observation for this surface: with `const`\nFALSE the returned row still carries a trailing base cell set to one rather than being\nshortened, and multivariate coefficients come back in reverse predictor order. That record is\nexplicit that these observations are structural and uncounted.\n\n\n\n### Result and edge cases\n\n\nReturns an `Array`; a spilled dynamic array in modern Excel, historically a Ctrl+Shift+Enter\nformula.\n\n- **`y` values very close to 1** are the interesting numerical case; see Numerical notes.\n- **`n = p`** — exact fit on the log scale, zero residual sum of squares, `df = 0`, and the\n  statistics cells that need `df > 0` become `#N/A`.\n- **Error values** propagate.\n\n\n\n### Errors\n\n\n| Error | Condition | Basis |\n|---|---|---|\n| `#NUM!` | Any `known_y's` value is zero or negative | Documented by Microsoft on the `LOGEST` page; also required by the model |\n| `#REF!` | `known_y's` and `known_x's` have incompatible shapes | Documented layout rule shared with `LINEST` |\n| `#VALUE!` | An argument cannot be converted | Shared coercion rule, chapter 02 |\n| `#N/A` | Unused cells of statistics rows 3–5 | Documented layout |\n| propagated | An error value in the data | Shared coercion rule, chapter 02 |\n\n",
    "sources": "- Handbook [LINEST](FUNC.LINEST.md) — the least-squares engine and its conditioning analysis,\n  including the Golub and Van Loan, Björck, Higham and NIST StRD references that apply here\n  unchanged.\n- Cody and Waite, *Software Manual for the Elementary Functions* — argument reduction for\n  `log` and `exp`.\n- Muller, *Elementary Functions: Algorithms and Implementation*, 3rd ed. — the modern\n  treatment, including `log1p` and why it exists.\n- fdlibm (`__ieee754_log`, `__ieee754_exp`) and its descendants in glibc and musl — the\n  reference implementations against which elementary-function accuracy is usually judged.\n- McCullough and Wilson, *On the accuracy of statistical procedures in Microsoft Excel*; and\n  Morten Welinder's work on Gnumeric's statistical functions — published literature on the\n  family, not Handbook evidence about this surface.\n- Handbook evidence record `EV-MISC-0010` (subjects `FUNC.LINEST`, `FUNC.LOGEST`; class\n  open-discrepancy; carries a reader warning against per-surface attribution).\n- Handbook projections `data/functions/FUNC.LOGEST.json` (arity 1–4, `xlfLogest`,\n  `RefsVisibleInAdapter`) and `data/presence/FUNC.LOGEST.json` (module\n  `regression_forecast_family.rs`, shared with `FORECAST`, `FORECAST.LINEAR`, `GROWTH`,\n  `LINEST`, `TREND`; upstream defect stream `BUG-FUNC-028` named on the module).\n\n",
    "version-differences": "The recorded environments below distinguish a reading from a same-input comparison. Counts describe captured inputs in each environment; overlapping captures and comparisons are not totals of unique worksheet calls.\n\n| Excel 16.0 build | Platform and CPU | Captured inputs |\n|---|---|---:|\n| 20228 | Windows, 64-bit, CPU not recorded | 180 |\n\nThe record contains no same-input comparison between these environments. Reading different inputs on different builds does not establish either a version change or cross-build agreement.\n\n[Recorded environments and comparison details](https://github.com/DnaCalc/ExcelFunctionsHandbook/blob/5dc75391aa5125ccc5abdb095da85950980d6fd8/content/evidence/environments/FUNC.LOGEST.json).",
    "what-it-does": "\n`LOGEST(known_y's, [known_x's], [const], [stats])` fits the **exponential** model\n\n    y = b · m₁^x₁ · m₂^x₂ · … · m_k^x_k\n\nand returns the bases `m₁ … m_k` together with the multiplier `b`.\n\nThe fit is not done in that form. Taking logarithms turns the model linear:\n\n    ln y = ln b + x₁·ln m₁ + … + x_k·ln m_k\n\nso `LOGEST` runs an ordinary least-squares fit of `ln y` on the predictors — exactly the\ncomputation described on the [LINEST](FUNC.LINEST.md) page — and exponentiates the\ncoefficients back:\n\n    m_j = exp( β̂_j ),    b = exp( β̂₀ )\n\n**This is the whole function, and it is also the whole caveat.** The quantity minimised is\n\n    Σᵢ ( ln yᵢ − ln ŷᵢ )²\n\nnot `Σ(yᵢ − ŷᵢ)²`. Least squares in log space weights **relative** error equally at every\nscale; least squares in the original space weights **absolute** error equally. On data\nspanning several orders of magnitude these two criteria give visibly different curves, and\nneither is \"the\" exponential fit — they answer different questions. If the noise in the data\nis multiplicative (a constant percentage), the log-space fit is the maximum-likelihood one and\n`LOGEST` is right. If the noise is additive, `LOGEST` systematically over-weights the small\nobservations and a nonlinear least-squares fit is the correct tool. Excel has no worksheet\nfunction for that.\n\n**Domain.** Every `y` value must be strictly positive — `ln y` is undefined otherwise — and\nthe usual least-squares requirements apply to the design matrix: at least as many observations\nas parameters, full column rank. **Range:** the bases `m_j` and the multiplier `b` are\nstrictly positive by construction, since they are exponentials. `LOGEST` can never return a\nnegative or zero coefficient, which is a real modelling restriction: it cannot fit a decaying\nprocess to zero and cannot fit data that changes sign.\n\nInterpretation of the bases: `m_j` is the multiplicative factor per unit increase in `x_j`.\n`m = 1.05` means five percent growth per unit; `m = 1` means no effect; `m < 1` means decay.\n\n\n\n### Arguments\n\n\n| Argument | Meaning | Default |\n|---|---|---|\n| `known_y's` | The response values; **all must be positive** | Required |\n| `known_x's` | The predictor columns or rows | `{1, 2, …, n}` |\n| `const` | `TRUE` fits `b`; `FALSE` forces `b = 1` | `TRUE` |\n| `stats` | `TRUE` returns the five-row block | `FALSE` |\n\n**`const = FALSE` forces `b = 1`, not `b = 0`.** In the log-linear model the constant is\n`ln b`, so suppressing the constant means `ln b = 0`, i.e. `b = 1`. The curve is then forced\nthrough `(0, 1)` rather than through the origin. This is the exponential analogue of\n`LINEST`'s through-the-origin fit and it catches people who reason by analogy with `LINEST`\nwithout redoing the algebra.\n\nThe orientation rules — which axis carries observations and which carries predictors — are\nidentical to `LINEST`'s and are decided by the shapes of the two arguments, not by a flag.\n\n\n"
  },
  "signature": {
    "display": "LOGEST(known_ys, [known_xs], [const], [stats])",
    "parameters": [
      {
        "description": null,
        "name": "known_ys",
        "optional": false,
        "repeats": false
      },
      {
        "description": null,
        "name": "known_xs",
        "optional": true,
        "repeats": false
      },
      {
        "description": null,
        "name": "const",
        "optional": true,
        "repeats": false
      },
      {
        "description": null,
        "name": "stats",
        "optional": true,
        "repeats": false
      }
    ],
    "trailing_repeats": false
  },
  "sources": {
    "metadata": {
      "admission": {
        "label": "implemented",
        "reason": null
      },
      "arity": {
        "max": 4,
        "min": 1
      },
      "category": "Statistical functions",
      "classification": {
        "arg_preparation_profile": "RefsVisibleInAdapter",
        "coercion_lift_profile": "Custom",
        "determinism_class": "Deterministic",
        "error_collapse_profile": "None",
        "fec_dependency_profile": "RefOnly",
        "host_interaction_class": "None",
        "kernel_signature_class": "Custom",
        "rich_value_usage": "RichBlind",
        "surface_fec_dependency_profile": "RefOnly",
        "thread_safety_class": "SafePure",
        "volatility_class": "NonVolatile"
      },
      "descriptions": {
        "long": null,
        "short": "Coefficients and statistics of the exponential curve fitted to the data",
        "short_source": "dna-calc-own"
      },
      "docs": {
        "english_description": "Returns the parameters of an exponential trend",
        "microsoft_url": "https://support.microsoft.com/en-us/office/logest-function-f27462d8-3657-4030-866b-a272c1d18b4b"
      },
      "entry_kind": "built_in_function",
      "localized_family_names": null,
      "localized_names": [
        {
          "locale": "ar-SA",
          "name": "LOGEST"
        },
        {
          "locale": "bg-BG",
          "name": "LOGEST"
        },
        {
          "locale": "cs-CZ",
          "name": "LOGLINREGRESE"
        },
        {
          "locale": "da-DK",
          "name": "LOGREGR"
        },
        {
          "locale": "de-DE",
          "name": "LOGEST"
        },
        {
          "locale": "el-GR",
          "name": "LOGEST"
        },
        {
          "locale": "en-AU",
          "name": "LOGEST"
        },
        {
          "locale": "en-GB",
          "name": "LOGEST"
        },
        {
          "locale": "en-US",
          "name": "LOGEST"
        },
        {
          "locale": "es-ES",
          "name": "ESTIMACION.LOGARITMICA"
        },
        {
          "locale": "et-EE",
          "name": "LOGEST"
        },
        {
          "locale": "fi-FI",
          "name": "LOGREGR"
        },
        {
          "locale": "fr-FR",
          "name": "LOGREG*"
        },
        {
          "locale": "he-IL",
          "name": "LOGEST"
        },
        {
          "locale": "hr-HR",
          "name": "LOGEST"
        },
        {
          "locale": "hu-HU",
          "name": "LOG.ILL"
        },
        {
          "locale": "id-ID",
          "name": "LOGEST"
        },
        {
          "locale": "it-IT",
          "name": "LOGEST"
        },
        {
          "locale": "ja-JP",
          "name": "LOGEST"
        },
        {
          "locale": "ko-KR",
          "name": "LOGEST"
        },
        {
          "locale": "lt-LT",
          "name": "LOGEST"
        },
        {
          "locale": "lv-LV",
          "name": "LOGEST"
        },
        {
          "locale": "nb-NO",
          "name": "KURVE"
        },
        {
          "locale": "nl-NL",
          "name": "LOGSCH"
        },
        {
          "locale": "pl-PL",
          "name": "REGEXPP"
        },
        {
          "locale": "pt-BR",
          "name": "LOGEST"
        },
        {
          "locale": "pt-PT",
          "name": "PROJ.LOG"
        },
        {
          "locale": "ro-RO",
          "name": "LOGEST"
        },
        {
          "locale": "ru-RU",
          "name": "ЛГРФПРИБЛ"
        },
        {
          "locale": "sk-SK",
          "name": "LOGEST"
        },
        {
          "locale": "sl-SI",
          "name": "LOGEST"
        },
        {
          "locale": "sr-Latn-RS",
          "name": "LOGEST"
        },
        {
          "locale": "sv-SE",
          "name": "EXPREGR"
        },
        {
          "locale": "th-TH",
          "name": "LOGEST"
        },
        {
          "locale": "tr-TR",
          "name": "LOT işlevi"
        },
        {
          "locale": "uk-UA",
          "name": "LOGEST"
        },
        {
          "locale": "vi-VN",
          "name": "LOGEST"
        },
        {
          "locale": "zh-CN",
          "name": "LOGEST"
        },
        {
          "locale": "zh-HK",
          "name": "LOGEST"
        },
        {
          "locale": "zh-TW",
          "name": "LOGEST"
        }
      ],
      "signature": {
        "display": "LOGEST(known_ys, [known_xs], [const], [stats])",
        "parameters": [
          {
            "description": null,
            "name": "known_ys",
            "optional": false,
            "repeats": false
          },
          {
            "description": null,
            "name": "known_xs",
            "optional": true,
            "repeats": false
          },
          {
            "description": null,
            "name": "const",
            "optional": true,
            "repeats": false
          },
          {
            "description": null,
            "name": "stats",
            "optional": true,
            "repeats": false
          }
        ],
        "trailing_repeats": false
      },
      "surface_name": "LOGEST",
      "version_marker": null,
      "xlcall": {
        "code": "51",
        "symbol": "xlfLogest"
      }
    },
    "microsoft": "https://support.microsoft.com/en-us/office/logest-function-f27462d8-3657-4030-866b-a272c1d18b4b"
  },
  "try_it": {
    "formula": "=LOGEST(1)"
  },
  "url": "https://handbook.dnacalc.com/functions/LOGEST.html",
  "variants": [],
  "versions": [
    {
      "behaviour": "180 captured inputs are indexed for this environment. Capture dates: 2026-08-09 to 2026-08-09. This is a reading count, not a comparison with another build.",
      "excel_build": "16.0 build 20228",
      "platform": "Windows, 64-bit, CPU not recorded",
      "sources": [
        "https://github.com/DnaCalc/ExcelFunctionsHandbook/blob/5dc75391aa5125ccc5abdb095da85950980d6fd8/content/evidence/environments/FUNC.LOGEST.json"
      ]
    }
  ]
}