電気回路のインピーダンス計算やフェーザ解析など、理工系の実務でExcelを使っていると「複素数のまま足し算したい」という場面が出てきますよね。普通のSUM関数では"3+4i"のような文字列は計算できず、#VALUE!エラーになってしまいます。
この記事では、ExcelのIMSUM関数の構文・引数から、使い方の4パターン、実務での活用シーン、つまずきやすいエラーと対処法まで、まとめて解説します。
ExcelのIMSUM関数とは?複素数の合計を返す関数
IMSUM関数は、"x+yi" または "x+yj" の形式で指定した複素数の合計を返すエンジニアリング関数です。読み方は「イマジナリー・サム関数」で、Excel 2013 以降のバージョンおよびMicrosoft 365で使用できます。Googleスプレッドシートでも同じ構文で動作します。
数学的には、複素数の和は実部同士・虚部同士をそれぞれ足し合わせた結果になります。手作業でやろうとすると文字列を分解して再結合する必要がありますが、IMSUM関数はその処理を内部で一気にこなしてくれるので、結果だけを受け取れますよ。
複素数の入力値は、COMPLEX関数 を使って実数係数と虚数係数から生成するのが一般的です。IMSUMはそのCOMPLEX関数とセットで使うと真価を発揮します。
SUM関数とIMSUM関数の違い
SUMとIMSUMは名前が似ていますが、扱えるデータ型がまったく違います。
| 関数 | 対象 | 複素数の文字列を渡すと |
|---|---|---|
| SUM | 数値のみ | #VALUE! エラー |
| IMSUM | 複素数(テキスト文字列) | 正常に合計を返す |
たとえば =SUM("3+4i","2-1i") はエラーになりますが、=IMSUM("3+4i","2-1i") は "5+3i" を正しく返します。複素数の合計には必ずIMSUMを使ってください。
IMSUM関数の構文と引数
IMSUM関数の基本構文はシンプルです。
=IMSUM(複素数1, [複素数2], …)
※ [ ] で囲まれた引数は省略可能です。
| 引数 | 必須 | 説明 |
|---|---|---|
| 複素数1 | 必須 | 合計したい1つ目の複素数("x+yi" または "x+yj" 形式) |
| 複素数2以降 | 任意 | 追加で合計したい複素数。最大254個まで指定可 |
引数:複素数(inumber)
合計したい複素数を、"x+yi" または "x+yj" のテキスト文字列で指定します。ここで x が実部、y が虚部です。虚数単位は必ず小文字の i または j を使ってください。大文字の I や J を入れるとエラーになります。
整数や実数もそのまま引数として渡せます。たとえば 5 は 5+0i として処理されるので、実数と複素数が混在したリストの合計にも使えますよ。
戻り値もテキスト文字列として返ります。さらに別の計算に使いたい場合は、IMREAL関数 や IMAGINARY関数 で実部・虚部を取り出しましょう。IMABS関数 で絶対値(大きさ)に変換することもできます。
IMSUM関数の使い方【4パターン】
実際の使い方を、よくあるパターンで見ていきましょう。
パターン1:関数内に複素数を直接入力する
一番シンプルな書き方は、複素数の文字列を直接引数に入れる方法です。
=IMSUM("3+4i","-4+6i") → -1+10i
シンプルに2つの複素数を足すだけなら、このように文字列で直接渡すのが一番早いですよ。整数と複素数を混ぜた書き方も可能です。
=IMSUM("3+4i", 5) → 8+4i
パターン2:セル参照で複素数を渡す
実務ではセル参照を使うケースがほとんどです。A1セルに "3+4i"、A2セルに "2-1i" が入っていれば、次のように書けます。
=IMSUM(A1, A2) → 5+3i
計算対象を表にまとめておけば、後から値を差し替えても数式を書き換える必要がありません。オートフィルで下にコピーすれば、累積合計風の使い方もできますよ。
パターン3:範囲指定で一括合計する
複素数を縦にズラッと並べたデータの合計は、範囲指定がもっとも効率的です。
=IMSUM(A1:A10) → A1からA10の10個の複素数を一括合計
SUM関数と同じ感覚でセル範囲を渡せるので、測定データが何十行・何百行あっても数式はこれ1本で済みます。IMSUMの引数は最大254個までですが、セル範囲で渡せばその上限を超えるデータも合計できます。大量データを扱うときは必ず範囲指定を使ってください。
パターン4:COMPLEX関数と組み合わせる
実部と虚部が別々のセルに入っているときは、COMPLEX関数 で合成してからIMSUMに渡します。A列に実部、B列に虚部を入力したデータシートでは、こう書けますよ。
=IMSUM(COMPLEX(A1,B1), COMPLEX(A2,B2))
エンジニアリング分野では実部と虚部を別カラムで管理することが多いので、この組み合わせが一番実務的です。列数が多くなる場合は、C列にあらかじめ =COMPLEX(A1,B1) で複素数文字列を作っておき、最後にIMSUMで範囲指定するほうが見通しよく組めますよ。
IMSUM関数が役立つ実務シーン
IMSUM関数は、複素数を扱う理工系の現場ではさまざまな場面で登場します。代表的な活用シーンを紹介します。
電気工学:直列インピーダンスの合成
直列接続された回路の合成インピーダンスは、各素子のインピーダンス(複素数)の和で求まります。抵抗・コイル・コンデンサが混在している回路でも、それぞれを複素数として表現すればIMSUM一発で合成できますよ。
たとえば R=10Ω、jωL=j20Ω、1/(jωC)=-j5Ω の3素子直列なら、=IMSUM("10+0i", "0+20i", "0-5i") で 10+15i という合成インピーダンスが得られます。手計算より圧倒的にミスが減ります。
交流回路の電圧・電流合成
フェーザ表示した電圧や電流の合計を求める場面でも、IMSUMは便利です。キルヒホッフの電流則でノードに流れ込む電流をすべて足し合わせるとき、位相ごとに実部と虚部を分けずに一度に合計できます。
信号処理・フーリエ変換後の成分加算
FFT後の周波数成分(複素数)を一部だけ合算して逆変換に渡す、といった解析途中の処理にもIMSUMが使えますよ。部分和をExcelで試算してから本格的な解析ツールに持っていく、というワークフローに向いています。
制御工学:伝達関数の中間計算
伝達関数の評価過程で発生する複素数の足し算は、IMSUMで一気に片付けられます。ボード線図の手前段階で、特定の周波数における各項の和を確認したいときに重宝します。
いずれの場面でも、実部と虚部を別々に足すよりIMSUMを使ったほうが数式がスッキリして、計算ミスも減らせますよ。
よくあるエラーと対処法
IMSUM関数でつまずきやすいエラーをまとめます。
#NUM! エラー
複素数の書式が正しくないときに出ます。もっとも多いのが スペースの混入 で、"3 + 4i" のように演算子の前後に半角スペースが入っているとNGです。"3+4i" のように詰めて書いてください。
また、"3+4"(虚数単位なし)や "3,4i"(カンマ区切り)といった独自書式もエラーになります。実部と虚部の符号は必ず + または - で明示しましょう。
#VALUE! エラー
参照先のセルが空だったり、複素数の係数に数値以外の文字が混ざっていたりすると発生します。また、虚数単位に大文字の I・J を使った場合や、全角の i・j が混入している場合もこのエラーになりますよ。
エラーが出たら、まずセルの中身をコピーしてメモ帳などに貼り付け、見えない文字が入っていないか確認してみてください。
i と j の混在
同じ数式の中で i を使う複素数と j を使う複素数を混ぜると、#NUM! エラーになります。データセット全体でどちらかに統一してから、IMSUMに渡してください。既存データを一括変換したい場合は、SUBSTITUTE関数 で j → i に置き換える前処理を挟むと楽ですよ。
IMSUM関数に関するよくある質問
Q. SUM関数で複素数を合計できないのはなぜですか?
SUM関数は数値型を対象としており、"3+4i" のような文字列型の複素数は計算対象外です。複素数の文字列を渡すと #VALUE! エラーになります。IMSUM関数は文字列型の複素数に対応した専用関数なので、必ずこちらを使ってください。
Q. Googleスプレッドシートでも使えますか?
はい。Googleスプレッドシートでも =IMSUM("3+4i","2-1i") と書けば同様に動作します。構文は完全に互換です。
Q. 255個以上の複素数を合計したい場合は?
IMSUM関数は引数を最大254個まで受け付けますが、セル範囲(例:A1:A1000)で指定すればその上限を超えるデータも一括合計できます。大量データは必ず範囲指定で渡しましょう。
Q. 戻り値をそのまま四則演算に使えますか?
戻り値は文字列型なので、直接数値計算には使えません。実数として使いたい場合は IMREAL・IMAGINARY で実部・虚部を取り出すか、IMABS で絶対値に変換してください。複素数のまま演算したいときは、IMSUB・IMPRODUCT・IMDIV などの「IM系演算関数」を使いましょう。
関連する複素数関数
IMSUM関数と一緒に使われることが多い複素数関数も押さえておきましょう。
- COMPLEX関数: 実数係数と虚数係数から複素数を生成
- IMSUB関数: 複素数の引き算
- IMPRODUCT関数: 複素数の掛け算
- IMDIV関数: 複素数の割り算
- IMREAL関数: 複素数の実部を取り出す
- IMAGINARY関数: 複素数の虚部を取り出す
- IMABS関数: 複素数の絶対値(大きさ)
まずはCOMPLEXで複素数を作成し、IMSUM・IMSUB・IMPRODUCT・IMDIVで計算、最後にIMREAL・IMAGINARYで結果を分解する、というのが基本の流れです。
まとめ
ExcelのIMSUM関数は、複素数の合計を一発で求められる便利なエンジニアリング関数です。最後にポイントを整理しておきます。
- 構文は
=IMSUM(複素数1, [複素数2], ...)で、最大254個まで引数指定できる - 複素数は
"x+yi"または"x+yj"の文字列で指定する - 虚数単位は必ず小文字の
iまたはjを使い、同じ数式内で混在させない - セル範囲で指定すれば254個を超える大量データも一括合計できる
- 電気工学のインピーダンス合成や信号処理の成分加算など、理工系の実務で活躍する
- COMPLEX・IMSUB・IMPRODUCT・IMDIVとセットで覚えると複素数演算がスムーズになる
複素数計算が必要な場面では、ぜひIMSUM関数を活用してみてください。理系部署のサポート業務をしている方は、ブックマークしておくと安心ですよ。
