Excelで複素数を扱っていると、「共役複素数ってどうやって求めるんだろう?」と悩む場面がありますよね。手作業で虚部の符号を反転させるのは、数が多いと面倒ですし、転記ミスのもとになりがちです。
そんなときに使えるのが IMCONJUGATE関数 です。複素数を渡すだけで、共役複素数をサッと返してくれますよ。この記事では、構文や引数の指定方法から、複素インピーダンスや信号処理、複素数の割り算といった実践的な活用例、エラーの対処法まで、実務でそのまま使える形で丁寧に解説していきます。
ExcelのIMCONJUGATE関数とは?
IMCONJUGATE関数は、指定した複素数の 共役複素数(きょうやくふくそすう)を返すExcelのエンジニアリング関数です。
読み方は 「イマジナリー・コンジュゲイト」 です。「Imaginary(虚数の)」と「Conjugate(共役の)」を組み合わせた名前ですね。Excel 2007以降のすべてのバージョンで利用できます。
共役複素数とは?
共役複素数とは、元の複素数の 虚部の符号だけを反転 させたものです。たとえば、元の複素数が「3+4i」なら、共役複素数は「3-4i」になります。
| 元の複素数 | 共役複素数 |
|---|---|
| 3+4i | 3-4i |
| -2+5i | -2-5i |
| 7-3i | 7+3i |
| 6i | -6i |
| 5 | 5 |
実部はそのまま、虚部の「+」と「-」がひっくり返るイメージです。実部しかない(虚部がゼロの)複素数は、共役をとっても値が変わりません。
共役複素数の数学的な意味
共役複素数には、知っておくと応用が効く大事な性質が3つあります。
1. 複素平面上では実軸対称
複素数を複素平面(横軸=実部、縦軸=虚部)にプロットすると、元の複素数と共役複素数は 実軸(横軸)に対して対称 の位置になります。鏡写しの関係ですね。
2. 絶対値は元と同じ
虚部の符号が変わるだけなので、原点からの距離(絶対値)は元の複素数とまったく同じ です。3+4i も 3-4i も、絶対値は √(3² + 4²) = 5 になります。
3. 元の数と掛け算すると実数になる
複素数 z とその共役 z̄ を掛けると、結果は必ず実数(= 絶対値の2乗)になります。これは電気工学や信号処理で頻繁に使う、とても重要な性質です。
(a+bi) × (a-bi) = a² + b²
虚部が打ち消し合って消えるのがポイントですよ。
IMCONJUGATE関数の書き方(構文と引数)
基本構文
=IMCONJUGATE(複素数)
引数は1つだけなので、とてもシンプルです。
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 複素数 | 必須 | 共役複素数を求めたい複素数。”x+yi” または “x+yj” のテキスト形式で指定します |
引数にはセル参照も使えます。COMPLEX関数で作成した複素数を、そのまま渡すのが実務では便利ですよ。
入力と出力のイメージ
- 入力: 複素数(例: “3+4i”)
- 出力: 共役複素数(例: “3-4i”)
虚部がゼロの場合(実数のみの場合)は、そのまま同じ値が返ります。たとえば「5」を渡すと、結果も「5」です。
IMCONJUGATE関数の基本的な使い方
実際にIMCONJUGATE関数を使ってみましょう。
例1: セルの複素数から共役複素数を求める
セルA1に「3+4i」が入っているとします。
=IMCONJUGATE(A1)
結果: 3-4i
虚部の「+4i」が「-4i」に変わっただけですね。実部の3はそのままです。
例2: 関数内に直接値を指定する
セル参照を使わず、直接テキストで複素数を指定することもできます。
=IMCONJUGATE("-2+5i")
結果: -2-5i
直接指定するときは、ダブルクォーテーション(”)で囲むのを忘れないでくださいね。
例3: COMPLEX関数と組み合わせる
実部と虚部を別々のセルで管理している場合は、COMPLEX関数と組み合わせると便利です。
セルA1に「3」、B1に「4」が入っているとき:
=IMCONJUGATE(COMPLEX(A1, B1))
結果: 3-4i
COMPLEX関数が「3+4i」を作り、それをIMCONJUGATEが「3-4i」に変換する流れです。実部と虚部を個別に管理するデータ設計では、この組み合わせが基本形になりますよ。
IMCONJUGATE関数の実践的な活用例
ここからは、IMCONJUGATE関数が実務でどう役に立つのかを、具体的なシーンで見ていきましょう。
活用例1: 複素数の絶対値の2乗を求める
複素数にその共役複素数を掛けると、絶対値の2乗(実数)が得られます。これは電気工学のパワー計算などでよく使うテクニックです。
セルA1に「3+4i」が入っているとき:
=IMPRODUCT(A1, IMCONJUGATE(A1))
結果: 25(= 3² + 4²)
IMPRODUCT関数で複素数同士の掛け算ができます。結果が実数になるのがポイントですよ。ちなみに、同じ値はIMABS関数で絶対値を求めてから2乗しても得られます。
活用例2: 複素数の割り算をIMDIVと組み合わせて実行
複素数の割り算は、分母の共役を使って分母を実数化する のが定石です。ExcelにはそもそもIMDIV関数があるので直接割り算できますが、共役複素数を使った計算過程を可視化したいときに役立ちます。
たとえば (1+2i) ÷ (3+4i) を計算したいとき。
[直接計算]
=IMDIV("1+2i", "3+4i")
→ 結果: 0.44+0.08i
[共役を使って手順を追う]
分子 = IMPRODUCT("1+2i", IMCONJUGATE("3+4i")) → 11+2i
分母 = IMPRODUCT("3+4i", IMCONJUGATE("3+4i")) → 25
結果 = 分子 ÷ 分母 = 0.44+0.08i
分母に共役をかけることで、分母が実数(25)になり、あとは実部・虚部をそれぞれ割るだけになるんですね。検算や教育用途でとても使えるパターンです。
活用例3: 電気回路の複素インピーダンス計算
交流回路のインピーダンスは、抵抗(実部)とリアクタンス(虚部)を合わせた複素数で表現されます。このとき、消費電力の計算 や 整合インピーダンス の検討で共役複素数が登場します。
たとえば、インピーダンス Z = 4+3i [Ω] の回路に、電流 I = 2+1i [A] が流れているときの複素電力 S は:
S = V × I* = (Z × I) × IMCONJUGATE(I)
Excel上では、
=IMPRODUCT(IMPRODUCT("4+3i","2+1i"), IMCONJUGATE("2+1i"))
のように、電流側の共役 を使って複素電力を求めます。実部が有効電力、虚部が無効電力を表します。手計算だと符号ミスしやすい場面で、IMCONJUGATEが活躍しますよ。
活用例4: 信号処理での応用(FFT結果の扱い)
FFT(高速フーリエ変換)の結果は複素数の配列として出てきます。このとき、パワースペクトル を求めるには各周波数成分 X(k) について |X(k)|² = X(k) × IMCONJUGATE(X(k)) を計算します。
ExcelでFFTの結果列(A列)からパワースペクトル列(B列)を作る例:
B1: =IMREAL(IMPRODUCT(A1, IMCONJUGATE(A1)))
IMREAL関数で実部だけを取り出すのは、計算誤差で虚部にごく小さい値が残ることがあるためです。理論上はゼロになる値を、確実に実数として扱えますよ。
活用例5: 複数の複素数を一括で変換する
複素数がA1:A5に並んでいる場合、B1に次の数式を入力してB5までコピーすれば、まとめて共役複素数を求められます。
=IMCONJUGATE(A1)
| セル | 元の複素数(A列) | 共役複素数(B列) |
|---|---|---|
| 1行目 | 3+4i | 3-4i |
| 2行目 | -1+2i | -1-2i |
| 3行目 | 5-3i | 5+3i |
| 4行目 | 7i | -7i |
| 5行目 | 2 | 2 |
5行目のように虚部がゼロの実数は、共役をとっても変わらない点に注目してくださいね。
よくあるエラーと対処法
#NUM! エラー
引数に有効な複素数として認識できない値を渡すと、#NUM! エラーが表示されます。
よくある原因と対処法:
| 原因 | 例 | 対処法 |
|---|---|---|
| 複素数のテキスト形式が正しくない | =IMCONJUGATE(“3+4”) | 虚数単位の「i」または「j」を末尾に付ける |
| 数値の間にスペースが入っている | =IMCONJUGATE(“3 + 4i”) | スペースをすべて削除する |
| 全角文字が混在している | =IMCONJUGATE(“3+4i”) | 半角英数字で入力し直す |
| i と j を混在させている | =IMCONJUGATE(“3+4i+2j”) | どちらかに統一する |
「i」や「j」を付け忘れるケースが一番多いので、気を付けてくださいね。
#VALUE! エラー
引数が数値でもテキストでもない場合(論理値や空のセルなど)に、#VALUE! エラーが発生します。
=IMCONJUGATE(TRUE) → #VALUE!エラー
=IMCONJUGATE("") → #VALUE!エラー
セル参照を使う場合は、参照先に正しい複素数テキストが入っているか確認してみてください。空白セルを参照してエラーになるときは、IFERRORで包んでおくと表が見やすくなりますよ。
=IFERROR(IMCONJUGATE(A1),"")
結果が意図した形式にならないとき
IMCONJUGATEは入力と同じ虚数単位(i か j)を維持して返します。プロジェクトで表記を統一したい場合は、最初に入力する段階で "i" か "j" のどちらかに揃えておくのがおすすめです。途中で混ぜると、下流の関数でエラーの温床になりがちですよ。
似た関数との違い・使い分け
IMCONJUGATE関数と一緒に使うことが多い関連関数を整理しておきましょう。
| 関数名 | 機能 | 使用例 |
|---|---|---|
| COMPLEX | 実部と虚部から複素数を作成 | =COMPLEX(3, 4) → “3+4i” |
| IMREAL | 複素数の実部を取得 | =IMREAL(“3+4i”) → 3 |
| IMAGINARY | 複素数の虚部を取得 | =IMAGINARY(“3+4i”) → 4 |
| IMABS | 複素数の絶対値を取得 | =IMABS(“3+4i”) → 5 |
| IMARGUMENT | 複素数の偏角をラジアンで取得 | =IMARGUMENT(“3+4i”) → 0.927… |
| IMPRODUCT | 複素数同士の積 | =IMPRODUCT(“1+i”,”1-i”) → “2” |
| IMDIV | 複素数同士の商 | =IMDIV(“1+2i”,”3+4i”) → “0.44+0.08i” |
共役複素数を求めたあとにIMREAL関数やIMAGINARY関数で実部・虚部を取り出す、というパターンもよく使いますよ。
まとめ
IMCONJUGATE関数は、複素数の共役複素数を返すExcelのエンジニアリング関数です。
この記事のポイントをおさらいしましょう。
- 共役複素数は虚部の符号を反転させたもの(a+bi → a-bi)
- 複素平面上では実軸対称、絶対値は元の複素数と同じ
- 元の複素数と共役を掛けると実数(絶対値の2乗)になる
- 引数は1つだけ。”x+yi” 形式のテキストで複素数を渡す
- COMPLEX・IMPRODUCT・IMDIV関数と組み合わせて使うのが実践的
- 複素インピーダンス・信号処理・複素数の割り算で活躍する
- エラーが出たら、虚数単位(i / j)の付け忘れやスペース混入、全角混在をチェック
複素数の計算をExcelで効率的に進めたい方は、ぜひ活用してみてくださいね。
