Excelで複素数の大きさ(絶対値)を計算したいとき、IMABS関数が役に立ちます。
複素数「a+bi」の絶対値は √(a² + b²) で求めます。手計算だと面倒ですよね。
IMABS関数なら、複素数を渡すだけで絶対値を一発で計算できます。
この記事では、IMABS関数の基本から実務での活用例まで解説します。
IMABS関数とは
IMABS関数は、複素数の絶対値(モジュラス)を返す関数です。
読み方は「イマジナリー・アブソリュート関数」です。「IM」はImaginary(虚数)、「ABS」はAbsolute(絶対値)を意味します。
複素数「a+bi」を複素平面上の点と見たとき、原点からその点までの距離が絶対値です。ピタゴラスの定理と同じ考え方で、√(a² + b²) で計算します。
NOTE
絶対値は「モジュラス(modulus)」や「ノルム」とも呼ばれます。電気工学では信号の「大きさ(magnitude)」として使われる重要な値です。
複素数の絶対値の計算例
具体的な数値で確認してみましょう。
| 複素数 | 計算式 | 結果 |
|---|---|---|
| 3+4i | √(3² + 4²) = √25 | 5 |
| 1+1i | √(1² + 1²) = √2 | 約1.41 |
| -4+6i | √((-4)² + 6²) = √52 | 約7.21 |
| 5(実数のみ) | √(5² + 0²) = √25 | 5 |
| 3i(純虚数) | √(0² + 3²) = √9 | 3 |
実数だけの場合は、通常の絶対値と同じ結果になります。
IMABS関数の構文と引数
=IMABS(複素数)
| 引数 | 必須/省略 | 説明 |
|---|---|---|
| 複素数 | 必須 | 絶対値を求めたい複素数を指定する |
複素数は以下の形式で指定できます。
- 文字列で直接指定:
"3+4i"のようにダブルクォーテーションで囲む - セル参照: 複素数が入力されたセルを参照する
- COMPLEX関数の結果:
COMPLEX(3, 4)のように関数の戻り値を渡す - 虚数単位:
iのほかj(工学表記)も使用可能
IMABS関数の基本的な使い方
文字列で複素数を直接指定する
=IMABS("3+4i")
結果: 5
√(3² + 4²) = √(9 + 16) = √25 = 5 という計算です。
セル参照で複素数を指定する
セルA1に 3+4i と入力されている場合、次のように書きます。
=IMABS(A1)
A1の複素数の絶対値が返ります。
COMPLEX関数と組み合わせる
実数部と虚数部が別々のセルにある場合は、COMPLEX関数と組み合わせると便利です。
=IMABS(COMPLEX(A2, B2))
A2に実数部、B2に虚数部が入っていれば、複素数を作成してそのまま絶対値を計算できます。
IMABS関数の実務での活用例
活用例1: インピーダンスの大きさを求める
電気回路でインピーダンス Z = R + jX の大きさ |Z| を求める場面です。R は抵抗、X はリアクタンスを表します。
たとえば、抵抗 30 オーム、リアクタンス 40 オームの回路を考えます。A列に抵抗値、B列にリアクタンス値が入っているとします。
C列に次の数式を入力します。
=IMABS(COMPLEX(A2, B2))
結果は 50 です。√(30² + 40²) = √2500 = 50 という計算になります。
下にコピーすれば、複数の回路要素のインピーダンスをまとめて求められます。交流回路の設計や解析で重宝します。
活用例2: 信号の振幅を計算する
FFT(高速フーリエ変換)の結果など、周波数領域のデータは複素数で表されます。この複素数の絶対値が信号の振幅です。
A列にFFT結果の複素数が入っている場合、B列に次の数式を入力します。
=IMABS(A2)
下にコピーすれば、全周波数成分の振幅を一括で取得できます。振幅スペクトルのグラフ作成にも活用できます。
活用例3: 複素数データを多角的に分析する
複素数を多角的に分析したいときは、成分分解と絶対値を組み合わせます。
| 列 | 数式 | 取得できる値 |
|---|---|---|
| B列 | =IMREAL(A2) | 実数係数 |
| C列 | =IMAGINARY(A2) | 虚数係数 |
| D列 | =IMABS(A2) | 絶対値(大きさ) |
| E列 | =IMARGUMENT(A2) | 偏角(ラジアン) |
IMREAL関数で実数部、IMAGINARY関数で虚数部を取り出せます。さらにIMARGUMENT関数で偏角を求めれば、極形式への変換も完了です。
TIP
IMABS関数が返す値(r)とIMARGUMENT関数が返す偏角(θ)を組み合わせると、複素数の極形式 r・e^(iθ) が得られます。直交形式と極形式の変換に便利です。
よくあるエラーと対処法
| エラー | 原因 | 対処法 |
|---|---|---|
| #NUM! | 複素数として認識できない文字列を渡している | "a+bi" または "a+bj" 形式で指定する |
| #VALUE! | 数値でも文字列でもない値が引数に入っている | セル参照や入力値を確認する |
NOTE
空セルを参照した場合はエラーにならず、0 を返します。空セルは 0+0i として扱われるためです。
#NUM! エラーの具体例
=IMABS("abc")
"abc" は複素数として認識できないため、#NUM! エラーになります。正しくは "3+4i" のように数値を含む形式で指定してください。
ABS関数との使い分け
通常の数値の絶対値にはABS関数を使います。ABS関数に複素数の文字列を渡すと #VALUE! エラーになります。
複素数を扱う場合は必ずIMABS関数を使ってください。
| 関数 | 対象 | 例 | 結果 |
|---|---|---|---|
| ABS | 実数 | =ABS(-5) | 5 |
| IMABS | 複素数 | =IMABS("3+4i") | 5 |
| ABS | 複素数 | =ABS("3+4i") | #VALUE! |
なお、IMABS関数に実数を渡しても正しく動作します。=IMABS("5") は 5 を返します。
関連する複素数関数との比較
IMABS関数と合わせて使う複素数関数の一覧です。
| 関数 | 機能 | 戻り値の型 |
|---|---|---|
| COMPLEX | 実数部・虚数部から複素数を作成する | 文字列 |
| IMAGINARY | 複素数の虚数係数を取り出す | 数値 |
| IMREAL | 複素数の実数係数を取り出す | 数値 |
| IMABS | 複素数の絶対値を求める | 数値 |
| IMARGUMENT | 複素数の偏角(ラジアン)を求める | 数値 |
| IMCONJUGATE | 共役複素数を求める | 文字列 |
| IMSUM | 複素数の合計を求める | 文字列 |
| IMSUB | 複素数の差を求める | 文字列 |
複素数の作成はCOMPLEX関数、成分の取り出しはIMAGINARY関数とIMREAL関数を使います。IMABS関数とIMARGUMENT関数を組み合わせれば、極形式(r, θ)への変換もできます。
まとめ
IMABS関数は、複素数の絶対値(モジュラス)を求める関数です。
- 引数は「複素数」の1つだけで、構文がシンプル
- 計算式は
√(a² + b²)で、複素平面上の原点からの距離を返す - COMPLEX関数で作成した複素数をそのまま渡せる
- IMAGINARY・IMREAL・IMARGUMENT関数と組み合わせて多角的に分析できる
- インピーダンス計算や信号の振幅取得など、エンジニアリング分野で活躍する
電気工学・信号処理・物理計算など、複素数の大きさを扱う場面で活用してください。
