{
  "category": "Engineering functions",
  "display_name": "IMPOWER",
  "entry_kind": "built_in_function",
  "eval_api": {
    "method": "POST",
    "url": "https://handbook.dnacalc.com/api/eval"
  },
  "function_id": "FUNC.IMPOWER",
  "implementation_state": {
    "answer_bank": null,
    "detail": "Recorded: 4 workbook cells.",
    "dnacalc_commit": "9e1884369a678158dd82d3d74188daf986995e87",
    "in_catalogue": true,
    "state": "matches",
    "state_label": "Matches every recorded Excel answer",
    "summary": "Matches all 4 recorded answers",
    "workbook_corpus": {
      "cells": 4,
      "matched": 4
    }
  },
  "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#L240-L244"
      ],
      "repository": "https://github.com/DnaCalc/DnaCalc",
      "shared_code": [
        "catalogue/engineering::complex_of",
        "catalogue/engineering::complex_text",
        "catalogue/engineering::coefficient",
        "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#L240-L244",
      "state": "matches",
      "suite": null,
      "summary": "Matches all 4 recorded answers"
    }
  ],
  "json_url": "https://handbook.dnacalc.com/api/functions/FUNC.IMPOWER.json",
  "name": "IMPOWER",
  "notes": [],
  "schema": "efh.function-reference/v1",
  "section_order": [
    "what-it-does",
    "try-it",
    "quirks",
    "how-to-implement",
    "version-differences",
    "alternatives"
  ],
  "sections": {
    "alternatives": "\n[IMSQRT](FUNC.IMSQRT.md) is the square-root operation; [IMPRODUCT](FUNC.IMPRODUCT.md) is useful for explicit integer products; [POWER](FUNC.POWER.md) handles a real base.\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\nFor nonzero input compute `h=hypot(a,b)`, `theta=atan2(b,a)`, `u=pow(h,p)` and `angle=theta*p`. Form `(u*cos(angle),u*sin(angle))` and format. Even an integer exponent takes this polar route in the current kernel, so repeated multiplication can have different last bits and different text. Retain the explicit zero cases before computing a logarithm or phase.\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. A nonnumeric exponent gives `#VALUE!`. The current zero rules return one for exponent zero, zero for a positive exponent and `#NUM!` for a negative exponent.\n\n\n",
    "sources": "\n- [Microsoft: IMPOWER function](https://support.microsoft.com/en-us/office/impower-function-210fd2f5-f8ff-4c6a-9d60-30e34fbdef39), 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`=IMPOWER(\"2+i\",2)` is approximately `\"3+4i\"`: algebraically `(2+i)^2=4+4i-1`. A fractional exponent chooses one branch rather than returning every mathematical root.\n\n\n",
    "version-differences": "\nNo same-input comparison between named Excel builds is recorded for this function here. The documented behaviour below is not a measurement of every Excel release.\n\n\n",
    "what-it-does": "\n`IMPOWER(inumber, number)` raises a complex value to a real exponent, including integer, fractional and negative exponents. The result uses a principal angle for fractional powers.\n\n\n"
  },
  "signature": {
    "display": "IMPOWER(inumber, number)",
    "parameters": [
      {
        "description": null,
        "name": "inumber",
        "optional": false,
        "repeats": false
      },
      {
        "description": null,
        "name": "number",
        "optional": false,
        "repeats": false
      }
    ],
    "trailing_repeats": false
  },
  "sources": {
    "metadata": {
      "admission": {
        "label": "implemented",
        "reason": null
      },
      "arity": {
        "max": 2,
        "min": 2
      },
      "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": "A complex number raised to a real power",
        "short_source": "dna-calc-own"
      },
      "docs": {
        "english_description": "Returns a complex number raised to an integer power",
        "microsoft_url": "https://support.microsoft.com/en-us/office/impower-function-210fd2f5-f8ff-4c6a-9d60-30e34fbdef39"
      },
      "entry_kind": "built_in_function",
      "localized_family_names": null,
      "localized_names": [
        {
          "locale": "ar-SA",
          "name": "IMPOWER"
        },
        {
          "locale": "bg-BG",
          "name": "IMPOWER"
        },
        {
          "locale": "cs-CZ",
          "name": "IMPOWER"
        },
        {
          "locale": "da-DK",
          "name": "IMAGPOTENS"
        },
        {
          "locale": "de-DE",
          "name": "IMPOWER"
        },
        {
          "locale": "el-GR",
          "name": "IMPOWER"
        },
        {
          "locale": "en-AU",
          "name": "IMPOWER"
        },
        {
          "locale": "en-GB",
          "name": "IMPOWER"
        },
        {
          "locale": "en-US",
          "name": "IMPOWER"
        },
        {
          "locale": "es-ES",
          "name": "IM.POT"
        },
        {
          "locale": "et-EE",
          "name": "IMPOWER"
        },
        {
          "locale": "fi-FI",
          "name": "KOMPLEKSI.POT"
        },
        {
          "locale": "fr-FR",
          "name": "COMPLEXE.PUISSANCE*"
        },
        {
          "locale": "he-IL",
          "name": "IMPOWER"
        },
        {
          "locale": "hr-HR",
          "name": "IMPOWER"
        },
        {
          "locale": "hu-HU",
          "name": "KÉPZ.HATV"
        },
        {
          "locale": "id-ID",
          "name": "IMPOWER"
        },
        {
          "locale": "it-IT",
          "name": "IMPOWER"
        },
        {
          "locale": "ja-JP",
          "name": "IMPOWER"
        },
        {
          "locale": "ko-KR",
          "name": "IMPOWER"
        },
        {
          "locale": "lt-LT",
          "name": "IMPOWER"
        },
        {
          "locale": "lv-LV",
          "name": "IMPOWER"
        },
        {
          "locale": "nb-NO",
          "name": "IMPOWER"
        },
        {
          "locale": "nl-NL",
          "name": "C.MACHT"
        },
        {
          "locale": "pl-PL",
          "name": "POTĘGA.LICZBY.ZESP"
        },
        {
          "locale": "pt-BR",
          "name": "IMPOWER"
        },
        {
          "locale": "pt-PT",
          "name": "IMPOT"
        },
        {
          "locale": "ro-RO",
          "name": "IMPOWER"
        },
        {
          "locale": "ru-RU",
          "name": "МНИМ.СТЕПЕНЬ"
        },
        {
          "locale": "sk-SK",
          "name": "IMPOWER"
        },
        {
          "locale": "sl-SI",
          "name": "IMPOWER"
        },
        {
          "locale": "sr-Latn-RS",
          "name": "IMPOWER"
        },
        {
          "locale": "sv-SE",
          "name": "IMUPPHÖJT"
        },
        {
          "locale": "th-TH",
          "name": "IMPOWER"
        },
        {
          "locale": "tr-TR",
          "name": "SANKUVVET işlevi"
        },
        {
          "locale": "uk-UA",
          "name": "IMPOWER"
        },
        {
          "locale": "vi-VN",
          "name": "IMPOWER"
        },
        {
          "locale": "zh-CN",
          "name": "IMPOWER"
        },
        {
          "locale": "zh-HK",
          "name": "IMPOWER"
        },
        {
          "locale": "zh-TW",
          "name": "IMPOWER"
        }
      ],
      "signature": {
        "display": "IMPOWER(inumber, number)",
        "parameters": [
          {
            "description": null,
            "name": "inumber",
            "optional": false,
            "repeats": false
          },
          {
            "description": null,
            "name": "number",
            "optional": false,
            "repeats": false
          }
        ],
        "trailing_repeats": false
      },
      "surface_name": "IMPOWER",
      "version_marker": null,
      "xlcall": {
        "code": "398",
        "symbol": "xlfImpower"
      }
    },
    "microsoft": "https://support.microsoft.com/en-us/office/impower-function-210fd2f5-f8ff-4c6a-9d60-30e34fbdef39"
  },
  "try_it": {
    "formula": "=IMPOWER(\"2+i\",2)"
  },
  "url": "https://handbook.dnacalc.com/functions/IMPOWER.html",
  "variants": [],
  "versions": []
}