- 作成日 : 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など)と組み合わせれば、複素数の加算・乗算・絶対値・偏角などの処理も数式で進められます。
虚数単位の指定、表示の工夫、エラー時の処理などを押さえておくことで、複素数を使った計算をスムーズに行うことができます。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
CORREL関数の使い方とは?エクセルで相関係数を求めよう
データ分析において、異なる変数間の関係性を把握することは非常に重要です。エクセルには、そうした相関関係を簡単に求めるための「CORREL関数」が用意されています。この関数を使うことで、2つのデータセット間の相関係数を迅速に計算することができ…
詳しくみるSECH関数の使い方:双曲線正割を活用したデータ変換方法
SECH関数は、双曲線正割(ハイパボリックセカント)を計算するエクセルの数学関数です。入力値に対して0から1の範囲で釣鐘型の曲線を描く特性を持ち、確率分布のモデリングやデータの重み付け、ピーク検出などで活用されています。数学的には2/(e^…
詳しくみるエクセルの列が勝手に数字表記になってしまう理由とは?戻す方法はある?
Excelを使用していると、特定の列やセルが勝手に数字表記に変わってしまうことがあります。この現象は、データの入力方法やExcelの設定が影響している場合が多いです。たとえば、数値として認識される形式でデータを入力したり、特定のフォーマット…
詳しくみるエクセルでセルを結合して中央揃えするには?ショートカットも解説
エクセルにおいて、複数のセルを結合し、内容を中央揃えにする操作は、見やすい資料作成やデータの整理に役立ちます。このプロセスを理解することで、シート内の情報を効果的に伝えることが可能となります。さらに、時間短縮を図るためのショートカットキーも…
詳しくみるエクセルで名前を付けて保存するショートカットとは
エクセルを使う際、効率的に作業を進めるためには、ショートカットキーを活用することが非常に重要です。特に「名前を付けて保存」機能は、作成したファイルを適切に管理するために欠かせません。このプロセスを相対的にスピーディに行うためのショートカット…
詳しくみるエクセルで合計を出すショートカットまとめ
エクセルを使ってデータの合計を求めることは、業務の効率化において非常に重要です。特に、ショートカットを活用することで、操作を迅速に行うことができるようになります。本記事では、エクセルで合計を出すための便利なショートカットをまとめてご紹介いた…
詳しくみる