• 作成日 : 2025年8月25日

COMPLEX関数の使い方:実部と虚部から複素数を作成する方法

COMPLEX関数は、実部と虚部を指定して複素数を作成する関数です。電気工学での交流回路解析、信号処理でのフーリエ変換、制御工学での伝達関数、物理学での波動計算など、複素数を扱う技術計算で活用されます。例えば、インピーダンスの計算(抵抗3Ω、リアクタンス4Ω → 3+4i)、振動の振幅と位相の表現、フィルタ設計での周波数応答解析などに使用できます。

本記事では、COMPLEX関数の基本的な使い方から実践的な活用方法、他の関数との効果的な組み合わせまで、初心者の方にも理解しやすく解説していきます。

COMPLEX関数とは

COMPLEX関数は、実数の実部と虚部から複素数を生成するエンジニアリング関数です。複素数は「a+bi」の形式で表現され、aが実部、bが虚部、iが虚数単位を表します。この関数により、数値データから複素数形式への変換が簡単に行えます。

この関数の重要な特徴は、エクセルで複素数演算を行うための基礎となることです。測定データや計算結果を複素数形式に変換することで、他の複素数関数(IMSUM、IMPRODUCT等)と組み合わせることで、複素数を含む計算を段階的に進めることができます。

COMPLEX関数の基本的な使い方

関数の構文を理解する

COMPLEX関数の構文は次のとおりです。

=COMPLEX(実部, 虚部, [虚数単位])

実部は複素数の実数部分、虚部は複素数の虚数部分、虚数単位は省略可能で「i」(デフォルト)または「j」を指定できます。

基本的な使用例

実際の使用例を見てみましょう。

実部3、虚部4の複素数を作成:

=COMPLEX(3, 4)

この結果は「3+4i」となります。

負の値を含む例:

=COMPLEX(5, -2)     ‘ 結果:5-2i

=COMPLEX(-3, 4)     ‘ 結果:-3+4i

=COMPLEX(-2, -3)    ‘ 結果:-2-3i

虚数単位の指定

電気工学では「j」を使用することが一般的:

=COMPLEX(3, 4, “j”)  ‘ 結果:3+4j

純虚数や実数の作成:

=COMPLEX(0, 5)      ‘ 結果:5i(純虚数)

=COMPLEX(7, 0)      ‘ 結果:7(実数)

COMPLEX関数の実践的な利用シーン

電気回路のインピーダンス計算

交流回路では、抵抗(R)とリアクタンス(X)を複素数で表現します。コンデンサやインダクタを含む回路の総インピーダンスを計算する際、COMPLEX関数で各素子のインピーダンスを複素数化します。

例えば、抵抗50Ω、誘導性リアクタンス30Ωの直列回路のインピーダンスは、COMPLEX(50, 30)で表現できます。この形式に変換することで、回路の電流や電圧計算、力率の算出などに使うことができます。

信号処理での周波数解析

デジタル信号処理では、時間領域の信号を周波数領域に変換する際、複素数を使用します。フーリエ変換の結果は複素数で表現され、実部が余弦成分、虚部が正弦成分を表します。

音声や振動データの周波数スペクトルを分析する際、各周波数成分の振幅と位相を複素数として扱うことで、フィルタ設計や信号の特徴抽出を整理して行うことができます。

制御システムの設計

制御工学では、システムの伝達関数を複素数平面で解析します。極や零点の位置を複素数で表現し、システムの安定性や応答特性を評価します。

PID制御器の設計では、望ましい極配置を複素数で指定し、制御パラメータを決定します。COMPLEX関数により、設計仕様を数値として記述できます。

COMPLEX関数の応用テクニック

セル参照を使った動的な複素数生成

実部と虚部を別セルから参照:

=COMPLEX(A1, B1)

=COMPLEX(実部セル, 虚部セル, “j”)

極座標形式からの変換

大きさと角度から複素数を生成:

=COMPLEX(大きさ*COS(角度), 大きさ*SIN(角度))

=COMPLEX(R*COS(RADIANS(θ)), R*SIN(RADIANS(θ)))

配列数式での一括変換

複数の実部・虚部ペアを一度に変換:

=COMPLEX(A1:A10, B1:B10) ‘ 動的配列(スピル)対応:Microsoft 365/Excel 2021以降/Excel for the web

COMPLEX関数のよくあるエラーと対策

#VALUE!エラーへの対処

数値以外の値を指定した場合に発生します。

基本的なエラー処理:

=IFERROR(COMPLEX(A1, B1), “数値を入力してください”)

入力値の検証:

=IF(AND(ISNUMBER(A1), ISNUMBER(B1)),

COMPLEX(A1, B1),

“エラー:実部と虚部は数値である必要があります”)

文字列や空白セルが原因でエラーが発生することがあります。特に、外部データをインポートした際は、数値に見える文字列に注意が必要です。VALUE関数で明示的に数値変換を行うことで、多くの問題を回避できます。

虚数単位の指定エラー

無効な虚数単位を指定した場合:

=IFERROR(COMPLEX(3, 4, C1), “虚数単位は ‘i’ または ‘j’ を指定してください”)

虚数単位の自動選択:

=IF(分野=”電気工学”, COMPLEX(A1, B1, “j”), COMPLEX(A1, B1, “i”))

虚数単位は「i」または「j」のみ有効です。それ以外の文字を指定するとエラーになります。組織や分野によって使用する虚数単位が異なるため、組織内で虚数単位の使い方を揃えておくと便利です。

表示形式の問題(COMPLEX はテキストを返します)

見た目の桁数を整える:

=COMPLEX(ROUND(A1, 4), ROUND(B1, 4))

表記を完全に固定(常に±と桁数を明示):

=TEXT(A1,”0.00″) & IF(B1<0,””,”+”) & TEXT(B1,”0.00″) & “i”

:セルの「表示形式(数値書式)」はテキストには効きません。表示幅は列幅調整や折り返しで対応してください。

ゼロの扱い

虚部が0の場合の表示:

=IF(B1=0, TEXT(A1, “0.00”), COMPLEX(A1, B1))

実部が0の場合の最適化:

=IF(A1=0, TEXT(B1, “0.00”) & “i”, COMPLEX(A1, B1))

虚部が0の場合でも「3+0i」のように表示されることがあります。見やすさを重視する場合は、条件分岐で純実数や純虚数として表示することを検討してください。

COMPLEX関数と他の関数との組み合わせ

IMREAL・IMAGINARY関数での成分抽出

複素数の実部と虚部を取り出す:

=”実部: ” & IMREAL(COMPLEX(A1, B1)) & “, 虚部: ” & IMAGINARY(COMPLEX(A1, B1))

=IF(IMREAL(COMPLEX(A1, B1))=A1, “変換確認OK”, “エラー”)

COMPLEX関数で作成した複素数から、実部と虚部を再度取り出すことで、変換の妥当性を確認できます。データの整合性チェックや、計算結果の検証に有用です。デバッグ時には、往復変換で元の値に戻ることを確認することが重要です。

IMABS関数での絶対値計算

複素数の大きさ(絶対値)を計算:

=IMABS(COMPLEX(A1, B1))

=SQRT(A1^2 + B1^2)  ‘ 直接計算との比較

=”大きさ: ” & TEXT(IMABS(COMPLEX(実部, 虚部)), “0.000”)

複素数の絶対値は、複素平面上での原点からの距離を表します。インピーダンスの大きさや、信号の振幅を求める際に使用します。電力計算や、フィルタの利得計算で重要な指標となります。

IMARGUMENT関数での偏角計算

複素数の角度(偏角)を求める:

=IMARGUMENT(COMPLEX(A1, B1))*180/PI()  ‘ 度数法で表示

=TEXT(IMARGUMENT(COMPLEX(実部, 虚部))*180/PI(), “0.0”) & “°”

偏角は複素数の位相を表し、交流回路での位相差や、信号処理での位相特性の解析に使用します。制御システムでは、極の角度から安定性を判断する際に重要です。

IMSUM関数での複素数の加算

複数の複素数を合計:

=IMSUM(COMPLEX(A1, B1), COMPLEX(A2, B2), COMPLEX(A3, B3))

=IMSUM(COMPLEX(実部1, 虚部1), COMPLEX(実部2, 虚部2))

直列回路の総インピーダンスや、複数の信号の合成など、複素数の加算が必要な場面で活用します。ベクトル和として考えることで、物理的な意味を理解しやすくなります。

IMPRODUCT関数での複素数の乗算

複素数の積を計算:

=IMPRODUCT(COMPLEX(A1, B1), COMPLEX(C1, D1))

複素電力(S)の計算:

=”複素電力 S = ” & IMPRODUCT(電圧, IMCONJUGATE(電流))

有効電力(P, W)の計算:

=”有効電力 P = ” & IMREAL(IMPRODUCT(電圧, IMCONJUGATE(電流)))

無効電力(Q, var)の計算(参考):

=”無効電力 Q = ” & IMAGINARY(IMPRODUCT(電圧, IMCONJUGATE(電流)))

皮相電力(|S|, VA)の計算(参考):

=”皮相電力 |S| = ” & IMABS(IMPRODUCT(電圧, IMCONJUGATE(電流)))

複素数の乗算は、回路解析での電力計算や、信号処理での変調・復調に使用します。共役複素数との積は、複素電力の計算で重要です。

IF関数での条件分岐

複素数の特性に基づく判定:

=IF(IMAGINARY(COMPLEX(A1, B1))>0, “誘導性”,

IF(IMAGINARY(COMPLEX(A1, B1))<0, “容量性”, “抵抗性”))

インピーダンスの性質を自動判定し、回路の特性を分類できます。これにより、適切な補償回路の選択や、力率改善の方針決定が可能になります。

グラフでの可視化準備

複素数を座標データに変換:

X座標: =IMREAL(COMPLEX(A1, B1))

Y座標: =IMAGINARY(COMPLEX(A1, B1))

複素平面(X=実部、Y=虚部)にプロットすれば、周波数応答の軌跡としてナイキスト線図に活用できます。

一方、ボード線図は周波数ごとのゲインと位相を描くため、応答の複素数列 H(jω)H(jomega)H(jω) から

  • ゲイン[dB]:=20*LOG10(IMABS(応答範囲))
  • 位相[deg]:=IMARGUMENT(応答範囲)*180/PI()
    を計算し、周波数軸に対してそれぞれをプロットしてください。

COMPLEX関数で複素数を数式に取り入れる

COMPLEX関数は、実部と虚部から複素数を作成する関数です。

電気回路や信号処理、制御設計などの分野で使われる複素数を、Excel上で数式として扱うための基本的な手段となります。

他の関数(IMSUM、IMABSなど)と組み合わせれば、複素数の加算・乗算・絶対値・偏角などの処理も数式で進められます。

虚数単位の指定、表示の工夫、エラー時の処理などを押さえておくことで、複素数を使った計算をスムーズに行うことができます。


※ 掲載している情報は記事更新時点のものです。

※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。

関連記事