Excelで複素数を扱うとき、虚数部分だけを取り出したい場面があります。
IMAGINARY関数を使えば、複素数「a+bi」の虚数係数「b」を簡単に取得できます。
この記事では、IMAGINARY関数の構文と基本操作を紹介します。交流回路や信号処理での実務活用例、IMREAL関数との違いもあわせて解説します。
IMAGINARY関数とは
IMAGINARY関数は、複素数の虚数係数を返すエンジニアリング関数です。
複素数「a+bi」または「a+bj」を受け取り、虚数部分の係数「b」を数値で返します。読み方は「イマジナリー」で、英語の「imaginary(虚数の)」に由来します。
Excel 2007以降のすべてのバージョンで使用できます。Microsoft 365やExcel for Mac、Excel Onlineにも対応しています。
複素数の基礎知識
複素数は「実数部(a)+虚数部(bi)」で構成されます。
| 複素数 | 実数係数(a) | 虚数係数(b) |
|---|---|---|
| 3+2i | 3 | 2 |
| -4+6i | -4 | 6 |
| 5(実数のみ) | 5 | 0 |
| 3i(純虚数) | 0 | 3 |
ExcelではCOMPLEX関数で複素数を作成します。作成した複素数から各係数を取り出すには、IMAGINARY関数とIMREAL関数を使います。
IMAGINARY関数の構文と引数
=IMAGINARY(複素数)
| 引数 | 必須/省略 | 説明 |
|---|---|---|
| 複素数 | 必須 | 虚数係数を取り出したい複素数。文字列またはセル参照で指定する |
複素数は「”a+bi”」または「”a+bj”」の形式で指定します。虚数単位は「i」でも「j」でも同じ結果を返します。COMPLEX関数で作成した値をそのまま渡すこともできます。
実数(虚数部がない値)を渡した場合は 0 を返します。エラーにはなりません。
IMAGINARY関数の基本的な使い方
文字列で複素数を直接指定する
=IMAGINARY("-4+6i")
結果: 6
「-4+6i」の虚数係数である「6」が返ります。
セル参照で複素数を指定する
セルA1に「3+5i」が入力されている場合を考えます。
=IMAGINARY(A1)
結果: 5
セルに入力された複素数から虚数係数を取り出します。
COMPLEX関数と組み合わせる
COMPLEX関数で複素数を作成し、虚数係数を取り出す例です。
=IMAGINARY(COMPLEX(3, 5))
結果: 5
COMPLEX(3, 5)は「3+5i」を作成します。IMAGINARY関数がその虚数係数「5」を返します。
IMAGINARY関数の実務活用例
活用例1: 複素数データの成分分離
A列に複素数のリストがあるとします。B列に実数係数、C列に虚数係数を一覧化できます。
B2: =IMREAL(A2)
C2: =IMAGINARY(A2)
IMREAL関数で実数係数を取り出し、IMAGINARY関数で虚数係数を取り出します。下方向にコピーすれば全データの成分を一括分離できます。
活用例2: 交流回路のインピーダンス分析
交流回路のインピーダンスは「Z = R + jX」の複素数で表されます。Rは抵抗、Xはリアクタンスです。
セルA2にインピーダンス「50+30j」が入力されている場合を考えます。
=IMAGINARY(A2)
結果: 30
リアクタンス成分(30Ω)を取り出せます。値が正なら誘導性(インダクタ優勢)、負なら容量性(コンデンサ優勢)と判断できます。
さらにIMABS関数でインピーダンスの大きさを求めたり、IMARGUMENT関数で位相角を計算したりできます。
活用例3: 信号処理でのフーリエ成分分析
フーリエ変換の結果は複素数で出力されます。虚部は正弦成分(sin成分)に対応します。
IMREAL関数で余弦成分(cos成分)を取り出せます。IMAGINARY関数で正弦成分を取り出せます。両方の成分を比較することで、信号の位相特性を分析できます。
活用例4: 複素数の演算結果から虚部を確認する
IMSUB関数やIMPRODUCT関数の演算結果から虚数係数を取り出す例です。
=IMAGINARY(IMSUB("5+3i", "2+1i"))
結果: 2
IMSUB関数が「(5+3i) – (2+1i) = 3+2i」を計算します。IMAGINARY関数がその虚数係数「2」を返します。
IMAGINARY関数とIMREAL関数の違い
| 関数 | 返す値 | 使用例 | 結果 |
|---|---|---|---|
| IMAGINARY | 虚数係数(b) | =IMAGINARY(“3+5i”) | 5 |
| IMREAL | 実数係数(a) | =IMREAL(“3+5i”) | 3 |
どちらも引数は「複素数」のみで、書き方はほぼ同じです。取り出す成分が異なるだけです。
複素数の大きさ(絶対値)を求めるにはIMABS関数を使います。IMABS関数は「√(a² + b²)」を計算して返します。
よくあるエラーと対処法
| エラー | 原因 | 対処法 |
|---|---|---|
| #NUM! | 複素数として認識できない形式(例: “1+2” でiがない) | “a+bi” または “a+bj” 形式に修正する |
| #VALUE! | 引数が空白・論理値・エラー値 | 正しい複素数文字列またはセル参照を使う |
| 0 が返る | 実数のみの値を指定(虚数部がゼロ) | 正常動作。純実数の虚数係数は0 |
NOTE
複素数を手入力するときは、虚数単位の「i」または「j」を忘れないようにしましょう。「1+2」のように虚数単位がないと#NUM!エラーになります。
まとめ
IMAGINARY関数は、複素数から虚数係数(b)を取り出す関数です。
- 引数は「複素数」のみで、書き方がシンプル
- “a+bi” 形式の文字列またはCOMPLEX関数の結果を渡せる
- IMREAL関数と組み合わせて実数部・虚数部を分離できる
- 交流回路のインピーダンス分析や信号処理の成分分析で活用できる
- IMABS関数・IMARGUMENT関数など複素数関数群と連携して使う
関連する複素数関数
| 関数 | 機能 |
|---|---|
| COMPLEX | 実部と虚部から複素数を作成 |
| IMREAL | 複素数の実数係数を返す |
| IMABS | 複素数の絶対値を返す |
| IMARGUMENT | 複素数の偏角を返す |
| IMSUB | 2つの複素数の差を返す |
| IMPRODUCT | 複素数の積を返す |
