Excel 16.0 build 20430
Windows, 64-bit, CPU not recorded
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.
Engineering functions
Matches all 3,266 recorded answers
Recorded: 3,260 in the answer bank and 6 workbook cells. How we measure this · See the Rust code
| Language | Name in Excel |
|---|---|
| Arabic | IMPRODUCT |
| Bulgarian | IMPRODUCT |
| Czech | IMPRODUCT |
| Danish | IMAGPRODUKT |
| German | IMPRODUCT |
| Greek | IMPRODUCT |
| English (Australia) | IMPRODUCT |
| English (United Kingdom) | IMPRODUCT |
| English (United States) | IMPRODUCT |
| Spanish | IM.PRODUCT |
| Estonian | IMPRODUCT |
| Finnish | KOMPLEKSI.TULO |
| French | COMPLEXE.PRODUIT |
| Hebrew | IMPRODUCT |
| Croatian | IMPRODUCT |
| Hungarian | KÉPZ.SZORZAT |
| Indonesian | IMPRODUCT |
| Italian | IMPRODUCT |
| Japanese | IMPRODUCT |
| Korean | IMPRODUCT |
| Lithuanian | IMPRODUCT |
| Latvian | IMPRODUCT |
| Norwegian | IMPRODUCT |
| Dutch | C.PRODUCT |
| Polish | ILOCZYN.LICZB.ZESP |
| Portuguese (Brazil) | IMPRODUCT |
| Portuguese (Portugal) | IMPROD |
| Romanian | IMPRODUCT |
| Russian | МНИМ.ПРОИЗВЕД |
| Slovak | IMPRODUCT |
| Slovenian | IMPRODUCT |
| Serbian (Latin) | IMPRODUCT |
| Swedish | IMPRODUKT |
| Thai | IMPRODUCT |
| Turkish | SANÇARP işlevi |
| Ukrainian | IMPRODUCT |
| Vietnamese | IMPRODUCT |
| Chinese (Simplified) | IMPRODUCT |
| Chinese (Hong Kong) | IMPRODUCT |
| Chinese (Traditional) | IMPRODUCT |
Names from Microsoft's support site.
IMPRODUCT(inumber1, [inumber2], ...)
IMPRODUCT(inumber1, [inumber2], ...) multiplies complex numbers. The variadic form accepts individual complex values and collections of them.
=IMPRODUCT("2+i","2-i") returns "5". The imaginary cross terms cancel, while the real term is 4-(-1)=5 because i*i=-1. The returned five is text, ready for another complex function.
Complex 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.
Parse 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.
Start at (1,0) and fold (a,b)*(c,d)=(a*c-b*d,a*d+b*c), retaining both old coefficients until the new pair is computed. The example gives real 4-(-1)=5 and imaginary -2+2=0. 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.
Quoted from the public repository DnaCalc/DnaCalc, crates calc-func and calc-fml, at commit 9e1884369a67. Comments are the source's own. A kernel shared with other functions appears once, on its module page.
IMPRODUCT · 5 lines · calc-func/src/catalogue/engineering.rs on GitHub55 improduct "IMPRODUCT" (1, 255) [R "inumber1", R "inumber2"] |s, a, sv| {
let zs = complexes(s, a, sv)?;
let product = zs.iter().fold(ParsedComplex::new(1.0, 0.0, None), |acc, z| acc.mul(*z));
complex_text(Ok(product), &zs)
}
complex_of catalogue/engineeringcomplex_text catalogue/engineeringcomplexes catalogue/engineeringnearest_even ported/complex_decimaldecimal_pair ported/complex_decimalparse_ascii_decimal_15 ported/complex_familyParsedComplex::new ported/complex_familyParsedComplex::abs ported/complex_familynormalize_zero ported/complex_familynumber_to_excel_text ported/complex_familyformat_complex_text ported/complex_familyparse_real_number ported/complex_familyfind_real_imag_split ported/complex_familyparse_imag_coeff ported/complex_familyparse_complex_text ported/complex_familysuffix_from_operands ported/complex_familyfail catalogue/kittext catalogue/kittext_value catalogue/kitvalues catalogue/kitNo implementation has been published with a Handbook test suite for this function.
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.
| Excel 16.0 build | Platform and CPU | Captured inputs |
|---|---|---|
| 20430 | Windows, 64-bit, CPU not recorded | 3,260 |
The 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.
Recorded environments and comparison details.
Windows, 64-bit, CPU not recorded
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.
COMPLEX constructs each input; IMDIV divides; IMPOWER raises one input to a real power.
No named variants are recorded yet.
Suggest a correction or contribute an implementation · For agents