{
  "category": "Engineering functions",
  "display_name": "IMSUM",
  "entry_kind": "built_in_function",
  "eval_api": {
    "method": "POST",
    "url": "https://handbook.dnacalc.com/api/eval"
  },
  "function_id": "FUNC.IMSUM",
  "implementation_state": {
    "answer_bank": {
      "excel_builds": [
        "20430"
      ],
      "larger_numeric": 0,
      "last_bit": 0,
      "matched": 3260,
      "other_mismatch": 0,
      "refused": 0,
      "rows": 3260,
      "unread": 0,
      "worst_ulp": 0
    },
    "detail": "Recorded: 3,260 in the answer bank and 6 workbook cells.",
    "dnacalc_commit": "9e1884369a678158dd82d3d74188daf986995e87",
    "in_catalogue": true,
    "state": "matches",
    "state_label": "Matches every recorded Excel answer",
    "summary": "Matches all 3,266 recorded answers",
    "workbook_corpus": {
      "cells": 6,
      "matched": 6
    }
  },
  "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/engineering.rs#L250-L254"
      ],
      "repository": "https://github.com/DnaCalc/DnaCalc",
      "shared_code": [
        "catalogue/engineering::complex_of",
        "catalogue/engineering::complex_text",
        "catalogue/engineering::complexes",
        "ported/complex_decimal::nearest_even",
        "ported/complex_decimal::decimal_pair",
        "ported/complex_family::parse_ascii_decimal_15",
        "ported/complex_family::ParsedComplex::new",
        "ported/complex_family::ParsedComplex::abs",
        "ported/complex_family::normalize_zero",
        "ported/complex_family::number_to_excel_text",
        "ported/complex_family::format_complex_text",
        "ported/complex_family::parse_real_number",
        "ported/complex_family::find_real_imag_split",
        "ported/complex_family::parse_imag_coeff",
        "ported/complex_family::parse_complex_text",
        "ported/complex_family::suffix_from_operands"
      ],
      "source": "https://github.com/DnaCalc/DnaCalc/blob/9e1884369a678158dd82d3d74188daf986995e87/crates/calc-func/src/catalogue/engineering.rs#L250-L254",
      "state": "matches",
      "suite": null,
      "summary": "Matches all 3,266 recorded answers"
    }
  ],
  "json_url": "https://handbook.dnacalc.com/api/functions/FUNC.IMSUM.json",
  "name": "IMSUM",
  "notes": [],
  "schema": "efh.function-reference/v1",
  "section_order": [
    "what-it-does",
    "try-it",
    "quirks",
    "how-to-implement",
    "version-differences",
    "alternatives"
  ],
  "sections": {
    "alternatives": "\n[COMPLEX](FUNC.COMPLEX.md) constructs each input; [IMDIV](FUNC.IMDIV.md) divides; [IMPOWER](FUNC.IMPOWER.md) raises one input to a real power.\n\n\n",
    "how-to-implement": "\nParse the two coefficients and suffix before doing arithmetic; use the common complex formatter afterward. Retain suffix consistency, suppress a zero component and omit the coefficient one before the imaginary unit. Formatting and parsing have their own fifteen-significant-digit rules, so testing only the algebra misses observable behaviour.\n\nStart at `(0,0)` and fold `(a,b)+(c,d)=(a+c,b+d)` in argument order. The example adds real coefficients two and four and imaginary coefficients three and minus one. The current implementation uses ordinary binary64 component arithmetic. Keep error propagation and traversal of range arguments consistent with the worksheet call model; flattening values without their error policy can change which result is returned.\n\n\n",
    "quirks": "\nComplex arguments may be real numbers or text such as `\"2-3i\"`. Use lowercase `i` or `j`; operands in one call must agree on the suffix. The current parser rejects malformed complex text with `#NUM!` and logical values with `#VALUE!`. A complex result is text, so ordinary worksheet arithmetic does not automatically treat it as a pair of numeric components. Floating-point reduction order can affect a long calculation even when the corresponding mathematical operation is associative.\n\n\n",
    "sources": "\n- [Microsoft: IMSUM function](https://support.microsoft.com/en-us/office/imsum-function-81542999-5f1c-4da6-9ffe-f1d7aaa9457f), opened 6 November 2026; syntax, documented argument rules and errors.\n- [DnaCalc implementation](https://github.com/DnaCalc/DnaCalc/blob/da3ecc4fb19a3a5529708c311d0e8f05688ac165/crates/calc-func/src/ported/complex_family.rs); implementation steps and the limits identified in the text.\n\n",
    "try-it": "\n`=IMSUM(\"2+3i\",\"4-i\")` returns `\"6+2i\"`. The real components add to six; three and minus one add to two in the imaginary component. Neither coordinate is a string concatenation.\n\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| 20430 | Windows, 64-bit, CPU not recorded | 3,260 |\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.IMSUM.json).",
    "what-it-does": "\n`IMSUM(inumber1, [inumber2], ...)` adds complex numbers component by component. The variadic form accepts individual complex values and collections of them.\n\n\n"
  },
  "signature": {
    "display": "IMSUM(inumber1, [inumber2], ...)",
    "parameters": [
      {
        "description": null,
        "name": "inumber1",
        "optional": false,
        "repeats": false
      },
      {
        "description": null,
        "name": "inumber2",
        "optional": true,
        "repeats": true
      }
    ],
    "trailing_repeats": true
  },
  "sources": {
    "metadata": {
      "admission": {
        "label": "implemented",
        "reason": null
      },
      "arity": {
        "max": 255,
        "min": 1
      },
      "category": "Engineering functions",
      "classification": {
        "arg_preparation_profile": "ValuesOnlyPreAdapter",
        "coercion_lift_profile": "Custom",
        "determinism_class": "Deterministic",
        "error_collapse_profile": "None",
        "fec_dependency_profile": "None",
        "host_interaction_class": "None",
        "kernel_signature_class": "Custom",
        "rich_value_usage": "RichBlind",
        "surface_fec_dependency_profile": "None",
        "thread_safety_class": "SafePure",
        "volatility_class": "NonVolatile"
      },
      "descriptions": {
        "long": null,
        "short": "Sum of complex numbers",
        "short_source": "dna-calc-own"
      },
      "docs": {
        "english_description": "Returns the sum of complex numbers",
        "microsoft_url": "https://support.microsoft.com/en-us/office/imsum-function-81542999-5f1c-4da6-9ffe-f1d7aaa9457f"
      },
      "entry_kind": "built_in_function",
      "localized_family_names": null,
      "localized_names": [
        {
          "locale": "ar-SA",
          "name": "IMSUM"
        },
        {
          "locale": "bg-BG",
          "name": "IMSUM"
        },
        {
          "locale": "cs-CZ",
          "name": "IMSUM"
        },
        {
          "locale": "da-DK",
          "name": "IMAGSUM"
        },
        {
          "locale": "de-DE",
          "name": "IMSUM"
        },
        {
          "locale": "el-GR",
          "name": "IMSUM"
        },
        {
          "locale": "en-AU",
          "name": "IMSUM"
        },
        {
          "locale": "en-GB",
          "name": "IMSUM"
        },
        {
          "locale": "en-US",
          "name": "IMSUM"
        },
        {
          "locale": "es-ES",
          "name": "IM.SUM"
        },
        {
          "locale": "et-EE",
          "name": "IMSUM"
        },
        {
          "locale": "fi-FI",
          "name": "KOMPLEKSI.SUM"
        },
        {
          "locale": "fr-FR",
          "name": "COMPLEXE.SOMME*"
        },
        {
          "locale": "he-IL",
          "name": "IMSUM"
        },
        {
          "locale": "hr-HR",
          "name": "IMSUM"
        },
        {
          "locale": "hu-HU",
          "name": "KÉPZ.ÖSSZEG"
        },
        {
          "locale": "id-ID",
          "name": "IMSUM"
        },
        {
          "locale": "it-IT",
          "name": "IMSUM"
        },
        {
          "locale": "ja-JP",
          "name": "IMSUM"
        },
        {
          "locale": "ko-KR",
          "name": "IMSUM"
        },
        {
          "locale": "lt-LT",
          "name": "IMSUM"
        },
        {
          "locale": "lv-LV",
          "name": "IMSUM"
        },
        {
          "locale": "nb-NO",
          "name": "IMSUM"
        },
        {
          "locale": "nl-NL",
          "name": "C.SOM"
        },
        {
          "locale": "pl-PL",
          "name": "SUMA.LICZB.ZESP"
        },
        {
          "locale": "pt-BR",
          "name": "IMSUM"
        },
        {
          "locale": "pt-PT",
          "name": "IMSOMA"
        },
        {
          "locale": "ro-RO",
          "name": "IMSUM"
        },
        {
          "locale": "ru-RU",
          "name": "МНИМ.СУММ"
        },
        {
          "locale": "sk-SK",
          "name": "IMSUM"
        },
        {
          "locale": "sl-SI",
          "name": "IMSUM"
        },
        {
          "locale": "sr-Latn-RS",
          "name": "IMSUM"
        },
        {
          "locale": "sv-SE",
          "name": "IMSUM"
        },
        {
          "locale": "th-TH",
          "name": "IMSUM"
        },
        {
          "locale": "tr-TR",
          "name": "SANÇIKAR"
        },
        {
          "locale": "uk-UA",
          "name": "IMSUM"
        },
        {
          "locale": "vi-VN",
          "name": "IMSUM"
        },
        {
          "locale": "zh-CN",
          "name": "IMSUM"
        },
        {
          "locale": "zh-HK",
          "name": "IMSUM"
        },
        {
          "locale": "zh-TW",
          "name": "IMSUM"
        }
      ],
      "signature": {
        "display": "IMSUM(inumber1, [inumber2], ...)",
        "parameters": [
          {
            "description": null,
            "name": "inumber1",
            "optional": false,
            "repeats": false
          },
          {
            "description": null,
            "name": "inumber2",
            "optional": true,
            "repeats": true
          }
        ],
        "trailing_repeats": true
      },
      "surface_name": "IMSUM",
      "version_marker": null,
      "xlcall": {
        "code": "412",
        "symbol": "xlfImsum"
      }
    },
    "microsoft": "https://support.microsoft.com/en-us/office/imsum-function-81542999-5f1c-4da6-9ffe-f1d7aaa9457f"
  },
  "try_it": {
    "formula": "=IMSUM(\"2+3i\",\"4-i\")"
  },
  "url": "https://handbook.dnacalc.com/functions/IMSUM.html",
  "variants": [],
  "versions": [
    {
      "behaviour": "3,260 captured inputs are indexed for this environment. Capture dates: 2026-09-29 to 2026-09-29. This is a reading count, not a comparison with another build.",
      "excel_build": "16.0 build 20430",
      "platform": "Windows, 64-bit, CPU not recorded",
      "sources": [
        "https://github.com/DnaCalc/ExcelFunctionsHandbook/blob/5dc75391aa5125ccc5abdb095da85950980d6fd8/content/evidence/environments/FUNC.IMSUM.json"
      ]
    }
  ]
}