<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>IMLN &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/imln/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 04 Jun 2026 14:20:17 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.1</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>IMLN &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>スプレッドシートのIMLN関数の使い方｜複素数の自然対数を一発で計算</title>
		<link>https://mashukabu.com/spreadsheet-imln-function/</link>
					<comments>https://mashukabu.com/spreadsheet-imln-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Tue, 28 Apr 2026 14:24:06 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[IMLN]]></category>
		<category><![CDATA[エンジニアリング関数]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[自然対数]]></category>
		<category><![CDATA[複素数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6274</guid>

					<description><![CDATA[GoogleスプレッドシートのIMLN関数の使い方を解説。複素数（a+bi）の自然対数を一発で求める基本構文、IMEXP関数との逆関数関係、主値の範囲（-π〜π）、COMPLEX関数との連携、フェーザ表現の振幅・位相分解や信号解析での実務活用例、よくあるエラー対処法まで実例付きで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「スプレッドシートで複素数の自然対数を出したいけど、振幅と位相に分けて手計算するのが面倒&#8230;」</p>



<p class="wp-block-paragraph">スプレッドシートで複素数を扱っていると、ln(a+bi)の値が必要になる場面がありますよね。IMABSやIMARGUMENTをLNと組み合わせ、最後にCOMPLEXで合体させて&#8230;と数式を何段にも重ねるのは結構大変です。</p>



<p class="wp-block-paragraph">そんなときに頼りになるのがGoogleスプレッドシートのIMLN関数です。複素数を1つ渡すだけで「その複素数の自然対数」を一発で返してくれます。フェーザ分解や周波数応答の数式が一気にすっきりしますよ。</p>



<p class="wp-block-paragraph">ExcelのIMLN関数と完全互換なので、Excelファイルとやり取りする現場でも安心ですね。COMPLEX関数で作った複素数や、<a href="https://mashukabu.com/spreadsheet-imexp-function/">IMEXP関数</a>で計算した指数関数値からも、そのまま自然対数に渡せます。</p>



<p class="wp-block-paragraph">この記事では、スプレッドシートのIMLN関数の基本構文と実務での活用例を解説します。IMEXPとの逆関数関係や、主値の範囲、よくあるエラーと対処法もしっかり紹介していきますよ。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">スプレッドシートのIMLN関数とは？</a></li><li><a href="#toc2" tabindex="0">IMLN関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の詳細</a></li></ol></li><li><a href="#toc5" tabindex="0">IMLN関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">文字列で複素数を直接指定する</a></li><li><a href="#toc7" tabindex="0">オイラーの等式の逆を確認する</a></li><li><a href="#toc8" tabindex="0">セル参照で複素数を指定する</a></li><li><a href="#toc9" tabindex="0">COMPLEX関数と組み合わせる</a></li><li><a href="#toc10" tabindex="0">ARRAYFORMULAで複数行を一括処理する</a></li></ol></li><li><a href="#toc11" tabindex="0">IMLN関数の実務活用例</a><ol><li><a href="#toc12" tabindex="0">活用例1: 振幅と位相に分解する</a></li><li><a href="#toc13" tabindex="0">活用例2: 伝達関数のゲイン・位相を求める</a></li><li><a href="#toc14" tabindex="0">活用例3: IMEXPの逆変換として使う</a></li><li><a href="#toc15" tabindex="0">活用例4: 複素数のべき乗を分解する</a></li><li><a href="#toc16" tabindex="0">活用例5: 信号の包絡線抽出（ヒルベルト変換の後処理）</a></li></ol></li><li><a href="#toc17" tabindex="0">IMLN関数とCOMPLEX関数群の関係</a></li><li><a href="#toc18" tabindex="0">IMLN関数のよくあるエラーと対処法</a><ol><li><a href="#toc19" tabindex="0">#NUM! エラー（複素数の形式エラー、または z=0）</a></li><li><a href="#toc20" tabindex="0">#VALUE! エラー（引数の型エラー）</a></li><li><a href="#toc21" tabindex="0">主値の範囲を超えた角度を期待してしまう問題</a></li><li><a href="#toc22" tabindex="0">IFERRORでまとめてエラーを吸収する</a></li></ol></li><li><a href="#toc23" tabindex="0">IMLN関数とExcelの互換性</a></li><li><a href="#toc24" tabindex="0">複素数関連の関数一覧</a></li><li><a href="#toc25" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのIMLN関数とは？</span></h2>



<p class="wp-block-paragraph">GoogleスプレッドシートのIMLN関数は、複素数の自然対数（底eの対数 ln(z)）を返す関数です。エンジニアリング関数（電気・物理・工学系の計算で使う関数群）のひとつに分類されますよ。</p>



<p class="wp-block-paragraph">読み方は「イマジナリー・エルエヌ」または「アイエム・エルエヌ」です。英語の「imaginary（虚数の）」と「natural logarithm（自然対数）」を組み合わせた名前ですね。複素数「a+bi」の自然対数を、複素数として返してくれるのが役割です。</p>



<p class="wp-block-paragraph">そもそも複素数の自然対数は、極形式の考え方から導かれます。複素数 z を |z|×e^(iθ) の形に書き直すと、定義式は次のようになりますよ。</p>



<pre class="wp-block-code"><code>ln(a+bi) = ln(|a+bi|) + i × arg(a+bi)
        = ln(√(a²+b²)) + i × atan2(b, a)</code></pre>



<p class="wp-block-paragraph">実部は「絶対値の自然対数」、虚部は「偏角（位相角）」となり、結果も複素数で返るのが特徴ですね。虚部の偏角はラジアンで、主値の範囲は -π < θ ≤ π に収まります。</p>



<figure class="wp-block-table"><table><thead><tr><th>複素数（z）</th><th>IMLN(z)の結果</th><th>内部計算</th></tr></thead><tbody><tr><td>1+0i</td><td>0</td><td>ln(1) = 0</td></tr><tr><td>e+0i（≈2.71828）</td><td>1</td><td>ln(e) = 1</td></tr><tr><td>-1+0i</td><td>0+πi</td><td>ln(1) + i×π（オイラーの等式の逆）</td></tr><tr><td>0+1i</td><td>0+(π/2)i</td><td>ln(1) + i×π/2</td></tr><tr><td>0-1i</td><td>0-(π/2)i</td><td>ln(1) &#8211; i×π/2</td></tr><tr><td>1+1i</td><td>0.3466+0.7854i</td><td>ln(√2) + i×π/4</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">IMLN関数を使えば、この表の右側にある「複素数の自然対数」をサクッと取り出せます。Excelとの互換性も完璧で、Excel 2007以降のすべてのバージョンに対応していますよ。</p>



<p class="wp-block-paragraph">複素数の自然対数は、フェーザ分解・伝達関数のボード線図・安定性解析・信号処理のキャリア除去などで活躍します。複素数を「対数空間」で扱う場面で欠かせない基礎パーツですね。</p>



<h2 class="wp-block-heading"><span id="toc2">IMLN関数の書き方（構文と引数）</span></h2>



<h3 class="wp-block-heading"><span id="toc3">基本構文</span></h3>



<pre class="wp-block-code"><code>=IMLN(複素数)</code></pre>



<p class="wp-block-paragraph">引数は1つで、自然対数を取りたい複素数を渡す形ですよ。</p>



<h3 class="wp-block-heading"><span id="toc4">引数の詳細</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>複素数（inumber）</td><td>必須</td><td>自然対数を計算する複素数。文字列またはセル参照で指定する</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数には「&#8221;1+2i&#8221;」や「&#8221;1+2j&#8221;」のような複素数文字列を直接渡せます。COMPLEX関数（実数と虚数から複素数を作成する関数）の結果や、複素数が入ったセルの参照も指定できますよ。</p>



<p class="wp-block-paragraph">虚数単位は小文字の「i」または「j」のどちらでも受け付けます。数学では「i」、電気工学では「j」が使われる慣習ですね。IMLN関数はどちらでも同じように動作してくれます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>IMLNが返す虚部（偏角）の範囲は -π < θ ≤ π です。これを「主値」と呼びます。実際の偏角は2πの整数倍だけ無数にありますが、スプレッドシートではこの主値だけが返ってくる点を覚えておきましょう。</p></blockquote>



<p class="wp-block-paragraph">引数に正の実数だけを渡せば、通常の自然対数LNと同じ結果になります。「IMLN(&#8220;2.71828&#8221;)」も「LN(2.71828)」もどちらも約1ですね。違いは戻り値が複素数文字列になるか実数になるかだけですよ。</p>



<h2 class="wp-block-heading"><span id="toc5">IMLN関数の基本的な使い方</span></h2>



<h3 class="wp-block-heading"><span id="toc6">文字列で複素数を直接指定する</span></h3>



<p class="wp-block-paragraph">複素数文字列をそのまま引数に渡してみましょう。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/03/spreadsheet-sumif-function_01_data_sample-table.png" alt="01 data sample table" /></figure>



<pre class="wp-block-code"><code>=IMLN(&quot;1+1i&quot;)</code></pre>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/02_formula_imln-basic.png" alt="02 formula imln basic" /></figure>



<p class="wp-block-paragraph">結果は「0.346573590279973+0.785398163397448i」になります。実部はln(√2)≈0.3466、虚部はπ/4≈0.7854ですね。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/03_result_imln-basic.png" alt="03 result imln basic" /></figure>



<p class="wp-block-paragraph">正の実部だけの複素数を渡すと、通常のLN関数と同じ結果になります。</p>



<pre class="wp-block-code"><code>=IMLN(&quot;2.71828&quot;)
=IMLN(&quot;2.71828+0i&quot;)</code></pre>



<p class="wp-block-paragraph">どちらも結果は約「1+0i」、つまり自然対数の底eの対数ですよ。実数の世界の自然対数と一致しますね。</p>



<p class="wp-block-paragraph">純虚数を渡すと、結果は実部0で虚部が±π/2になります。</p>



<pre class="wp-block-code"><code>=IMLN(&quot;0+1i&quot;)
=IMLN(&quot;0-1i&quot;)</code></pre>



<p class="wp-block-paragraph">前者は「0+1.5708&#8230;i」、後者は「0-1.5708&#8230;i」になりますよ。複素平面の縦軸に乗っている純虚数の偏角が、±π/2として返ってきますね。</p>



<h3 class="wp-block-heading"><span id="toc7">オイラーの等式の逆を確認する</span></h3>



<p class="wp-block-paragraph">「e^(iπ) = -1」というオイラーの等式は有名ですよね。両辺の自然対数を取ると「ln(-1) = iπ」になります。スプレッドシートで確認してみましょう。</p>



<pre class="wp-block-code"><code>=IMLN(&quot;-1&quot;)</code></pre>



<p class="wp-block-paragraph">結果は「0+3.14159&#8230;i」になりますよ。実部は0、虚部はπとなり、ln(-1) = iπ が確かに成り立っていますね。実数の世界では「負の数の対数は計算できない」とされますが、複素数まで広げるとちゃんと値が定まる点が面白いところです。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/04_result_imln-euler.png" alt="04 result imln euler" /></figure>



<h3 class="wp-block-heading"><span id="toc8">セル参照で複素数を指定する</span></h3>



<p class="wp-block-paragraph">実務ではセルに入った複素数を扱う場面が多いですよね。A2に「1+1i」が入っている場合は次のように書きます。</p>



<pre class="wp-block-code"><code>=IMLN(A2)</code></pre>



<p class="wp-block-paragraph">結果は「0.3466&#8230;+0.7854&#8230;i」になります。セル参照を渡すだけで、入っている複素数の自然対数を取り出せますよ。</p>



<h3 class="wp-block-heading"><span id="toc9">COMPLEX関数と組み合わせる</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-complex-function/">COMPLEX関数</a>で作った複素数を、その場でIMLNに渡すこともできます。</p>



<pre class="wp-block-code"><code>=IMLN(COMPLEX(1, 1))</code></pre>



<p class="wp-block-paragraph">結果は「0.3466&#8230;+0.7854&#8230;i」、つまり「IMLN(&#8220;1+1i&#8221;)」と同じですね。COMPLEX(1, 1)が内部で「1+1i」を作り、IMLN関数がその自然対数を返してくれます。</p>



<p class="wp-block-paragraph">数値で実部と虚部を渡したいときに便利な書き方ですよ。</p>



<h3 class="wp-block-heading"><span id="toc10">ARRAYFORMULAで複数行を一括処理する</span></h3>



<p class="wp-block-paragraph">複素数のリストに対して一気に自然対数の列を作りたい場面もありますよね。そんなときはARRAYFORMULA関数（数式を範囲全体に展開する関数）と組み合わせます。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(IMLN(A2:A10))</code></pre>



<p class="wp-block-paragraph">A列の複素数を順番に自然対数に変換して、対応する結果をB列に一発で展開できますよ。フェーザ表現の振幅・位相分解を一括計算するときに重宝しますね。</p>



<h2 class="wp-block-heading"><span id="toc11">IMLN関数の実務活用例</span></h2>



<h3 class="wp-block-heading"><span id="toc12">活用例1: 振幅と位相に分解する</span></h3>



<p class="wp-block-paragraph">IMLN関数の戻り値は「実部=ln(振幅)、虚部=位相角」という構造になっています。これを使うと、複素数を一発で振幅と位相に分けられますよ。</p>



<p class="wp-block-paragraph">A列に複素数フェーザが並んでいるとしましょう。</p>



<pre class="wp-block-code"><code>B2: =IMLN(A2)              ← 自然対数
C2: =EXP(IMREAL(B2))       ← 振幅 |z|
D2: =IMAGINARY(B2)         ← 位相（ラジアン）
E2: =DEGREES(D2)           ← 位相（度数）</code></pre>



<p class="wp-block-paragraph">C列に振幅、D列にラジアン位相、E列に度数位相が並びますね。IMABSとIMARGUMENTを別々に呼ぶよりも、IMLN1本で済むのでシートがすっきりします。</p>



<h3 class="wp-block-heading"><span id="toc13">活用例2: 伝達関数のゲイン・位相を求める</span></h3>



<p class="wp-block-paragraph">制御工学では、伝達関数 H(jω) を複素数として評価し、ゲイン（dB）と位相（度数）を取り出します。IMLNを使うと、片対数のボード線図用データが直接組み立てられますよ。</p>



<p class="wp-block-paragraph">H(jω)が「2+3i」と評価されたとしましょう。</p>



<pre class="wp-block-code"><code>A2: 2                                ← 実部
B2: 3                                ← 虚部
C2: =COMPLEX(A2, B2)                 ← H(jω)
D2: =IMLN(C2)                        ← 自然対数
E2: =20/LN(10)*IMREAL(D2)            ← ゲイン（dB）
F2: =DEGREES(IMAGINARY(D2))          ← 位相（度数）</code></pre>



<p class="wp-block-paragraph">E2のゲインは「20×log10(|H|)」を「20/ln(10)×ln(|H|)」に書き換えた形ですね。F2は位相の度数表記です。ボード線図の作成やフィルタ設計のシートで使えるパターンですよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>ゲインを dB に換算するには「20/LN(10)」をかけるのが手早い書き方です。LOG10関数を使う場合は <code>=20*LOG10(IMABS(C2))</code> でも同じ結果になりますよ。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc14">活用例3: IMEXPの逆変換として使う</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-imexp-function/">IMEXP関数</a>とIMLN関数は互いに逆関数の関係です。IMEXPで作った複素数をIMLNに通すと、元の複素数（厳密には主値の範囲）に戻りますよ。</p>



<pre class="wp-block-code"><code>A2: =COMPLEX(1, 1)               ← 元の複素数 1+1i
B2: =IMEXP(A2)                   ← e^(1+1i) = 1.4687+2.2874i
C2: =IMLN(B2)                    ← 元に戻る = 1+1i</code></pre>



<p class="wp-block-paragraph">C2の結果は「1+1i」と元のA2に一致します。フェーザ計算で「指数表現と対数表現を行き来したい」場面で使える書き方ですね。エネルギー計算や減衰係数の解析で重宝します。</p>



<h3 class="wp-block-heading"><span id="toc15">活用例4: 複素数のべき乗を分解する</span></h3>



<p class="wp-block-paragraph">IMLN関数は、複素数の一般べき乗 z^w を計算する基礎パーツとしても使えます。定義式は z^w = e^(w × ln(z)) なので、IMLNとIMEXPを組み合わせれば実装できますよ。</p>



<p class="wp-block-paragraph">たとえば「(1+i)^(2+i)」を計算してみましょう。</p>



<pre class="wp-block-code"><code>A2: =COMPLEX(1, 1)                              ← z = 1+i
B2: =COMPLEX(2, 1)                              ← w = 2+i
C2: =IMEXP(IMPRODUCT(B2, IMLN(A2)))             ← z^w</code></pre>



<p class="wp-block-paragraph">C2の結果は「-0.3097+0.8576i」のような値になります。IMPOWER関数（複素数のべき乗）の指数部に複素数を渡したいときの代替実装ですね。整数や実数のべき乗ならIMPOWERで足りますが、複素べき乗にはIMLN+IMEXPの組み合わせが必要です。</p>



<h3 class="wp-block-heading"><span id="toc16">活用例5: 信号の包絡線抽出（ヒルベルト変換の後処理）</span></h3>



<p class="wp-block-paragraph">信号処理では、解析信号 z(t) = x(t) + i×ĥ(t) から瞬時振幅と瞬時位相を取り出す場面があります。IMLNを使うと、両方を一発で取り出せますよ。</p>



<p class="wp-block-paragraph">A列にサンプル時刻、B列に解析信号（複素数）が並んでいるとしましょう。</p>



<pre class="wp-block-code"><code>C2: =IMLN(B2)              ← 自然対数
D2: =EXP(IMREAL(C2))       ← 包絡線（瞬時振幅）
E2: =IMAGINARY(C2)         ← 瞬時位相（ラジアン）</code></pre>



<p class="wp-block-paragraph">D列が包絡線、E列が瞬時位相ですね。位相の不連続を避けたい場合は、後段でアンラップ処理（連続化）を入れておくと安心です。AM/FM信号の解析やバイブレーション診断のシートでそのまま使える書き方ですよ。</p>



<h2 class="wp-block-heading"><span id="toc17">IMLN関数とCOMPLEX関数群の関係</span></h2>



<p class="wp-block-paragraph">複素数を扱う関数群の中で、IMLN関数の位置づけを整理しておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>入力</th><th>出力</th><th>役割</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/spreadsheet-complex-function/">COMPLEX</a></td><td>実数 a, b</td><td>複素数 a+bi</td><td>複素数を作る</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-imreal-function/">IMREAL</a></td><td>複素数 a+bi</td><td>実数 a</td><td>実部を取り出す</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-imaginary-function/">IMAGINARY</a></td><td>複素数 a+bi</td><td>実数 b</td><td>虚部を取り出す</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-imabs-function/">IMABS</a></td><td>複素数 a+bi</td><td>実数 √(a²+b²)</td><td>大きさを取り出す</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-imargument-function/">IMARGUMENT</a></td><td>複素数 a+bi</td><td>実数（ラジアン）</td><td>偏角を取り出す</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-imexp-function/">IMEXP</a></td><td>複素数 z</td><td>複素数 e^z</td><td>指数関数</td></tr><tr><td>IMLN</td><td>複素数 z</td><td>複素数 ln(z)</td><td>自然対数（IMEXPの逆関数）</td></tr><tr><td>IMLOG2</td><td>複素数 z</td><td>複素数 log₂(z)</td><td>2を底とする対数</td></tr><tr><td>IMLOG10</td><td>複素数 z</td><td>複素数 log₁₀(z)</td><td>10を底とする対数</td></tr><tr><td>IMPOWER</td><td>複素数 z, 実数 n</td><td>複素数 z^n</td><td>べき乗</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">IMLN関数とIMEXP関数は互いに逆関数の関係です。「IMLN(IMEXP(z)) = z」が成り立ちますよ（厳密には主値の範囲で）。逆に「IMEXP(IMLN(z)) = z」も常に成り立ちます。</p>



<p class="wp-block-paragraph">たとえば定義式どおりにln(a+bi)を手動で組み立てると次のようになります。</p>



<pre class="wp-block-code"><code>=COMPLEX(LN(SQRT(IMREAL(A2)^2+IMAGINARY(A2)^2)), ATAN2(IMREAL(A2), IMAGINARY(A2)))</code></pre>



<p class="wp-block-paragraph">これはIMLNと同じ結果になりますが、絶対値と偏角を毎回手書きする必要がありますよね。IMLNを使えば1関数で済むので、数式が読みやすくなります。</p>



<h2 class="wp-block-heading"><span id="toc18">IMLN関数のよくあるエラーと対処法</span></h2>



<h3 class="wp-block-heading"><span id="toc19">#NUM! エラー（複素数の形式エラー、または z=0）</span></h3>



<p class="wp-block-paragraph">複素数として認識できない文字列を渡したときや、ゼロを渡したときに発生します。</p>



<pre class="wp-block-code"><code>=IMLN(&quot;1+1I&quot;)     → #NUM!（大文字のIは不可）
=IMLN(&quot;1+1k&quot;)     → #NUM!（i・j以外は不可）
=IMLN(&quot;1 + 1i&quot;)   → #NUM!（途中の空白は不可）
=IMLN(&quot;0&quot;)        → #NUM!（ln(0)は定義されない）
=IMLN(&quot;0+0i&quot;)     → #NUM!（同上）</code></pre>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/05_error_num.png" alt="05 error num" /></figure>



<p class="wp-block-paragraph">対処法は2つあります。1つ目は、複素数文字列を必ず半角の「a+bi」または「a+bj」の形式にすることです。虚数単位は小文字限定なので、CapsLockがオンになっていないか確認してくださいね。</p>



<p class="wp-block-paragraph">2つ目は、ゼロを渡さないことです。実数の世界でln(0)が定義されないのと同じく、複素数の世界でも0の対数は計算できません。入力データに0が混じる可能性がある場合は、後述のIFERROR対策を入れておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc20">#VALUE! エラー（引数の型エラー）</span></h3>



<p class="wp-block-paragraph">引数に論理値やエラー値を渡したときに発生します。</p>



<pre class="wp-block-code"><code>=IMLN(TRUE)       → #VALUE!（論理値は不可）
=IMLN(#N/A)       → #VALUE!（エラー値は不可）</code></pre>



<p class="wp-block-paragraph">対処法は、正しい複素数文字列または数値・セル参照を渡すことです。入力元のセルがエラーになっている場合は、そのエラーを先に解消する必要がありますよ。</p>



<h3 class="wp-block-heading"><span id="toc21">主値の範囲を超えた角度を期待してしまう問題</span></h3>



<p class="wp-block-paragraph">IMLNが返す虚部（偏角）は -π < θ ≤ π の主値だけです。たとえば「3π/2 ラジアン回転した複素数」を期待しても、実際には「-π/2」が返ってきますね。</p>



<pre class="wp-block-code"><code>=IMLN(&quot;0-1i&quot;)     → 0-1.5708i（-π/2）</code></pre>



<p class="wp-block-paragraph">この複素数 -i は「3π/2 回転した点」とも「-π/2 回転した点」とも見なせますね。IMLNはそのうち主値（後者）を返します。連続的に偏角を追跡したい信号処理などでは、後段で「アンラップ処理」を実装する必要がある点に注意してくださいね。</p>



<h3 class="wp-block-heading"><span id="toc22">IFERRORでまとめてエラーを吸収する</span></h3>



<p class="wp-block-paragraph">入力データの信頼性が低い場合や、ゼロが混じる可能性がある場合に備えておきたいですよね。そんなときはIFERROR関数（エラー時に代替値を返す関数）で包んでおきましょう。シート全体の集計が止まらず安心です。</p>



<pre class="wp-block-code"><code>=IFERROR(IMLN(A2), &quot;計算不可&quot;)</code></pre>



<p class="wp-block-paragraph">エラー時にメッセージを返すようにしておけば、安心して大量データに適用できますよ。</p>



<h2 class="wp-block-heading"><span id="toc23">IMLN関数とExcelの互換性</span></h2>



<p class="wp-block-paragraph">GoogleスプレッドシートのIMLN関数は、ExcelのIMLN関数と仕様が完全に一致しています。構文・引数・戻り値の形式・主値の範囲・エラー条件まで同じですよ。</p>



<p class="wp-block-paragraph">ExcelファイルをGoogleスプレッドシートで開いてもIMLN関数はそのまま動作します。逆にスプレッドシートで作った数式をExcelで開いても問題ありませんね。</p>



<p class="wp-block-paragraph">ExcelのIMLN関数は、Excel 2007以降のすべてのバージョンで利用できます。Microsoft 365、Excel for Mac、Excel Online でも同じように使えますよ。古いExcelファイルとの互換性も心配いりません。</p>



<h2 class="wp-block-heading"><span id="toc24">複素数関連の関数一覧</span></h2>



<p class="wp-block-paragraph">IMLN関数と一緒に使うことが多い、複素数関連の関数をまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数名</th><th>機能</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/spreadsheet-complex-function/">COMPLEX</a></td><td>実数と虚数から複素数を作成する</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-imreal-function/">IMREAL</a></td><td>複素数の実数係数を返す</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-imaginary-function/">IMAGINARY</a></td><td>複素数の虚数係数を返す</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-imabs-function/">IMABS</a></td><td>複素数の絶対値（大きさ）を返す</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-imargument-function/">IMARGUMENT</a></td><td>複素数の偏角（角度）をラジアンで返す</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-imconjugate-function/">IMCONJUGATE</a></td><td>共役複素数を返す</td></tr><tr><td>IMSUM</td><td>複素数の合計（足し算）を返す</td></tr><tr><td>IMSUB</td><td>複素数の差（引き算）を返す</td></tr><tr><td>IMPRODUCT</td><td>複素数の積（掛け算）を返す</td></tr><tr><td>IMDIV</td><td>複素数の商（割り算）を返す</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-imexp-function/">IMEXP</a></td><td>複素数の指数関数（eべき乗）を返す</td></tr><tr><td>IMLN</td><td>複素数の自然対数を返す（IMEXPの逆関数）</td></tr><tr><td>IMLOG2</td><td>複素数の2を底とする対数を返す</td></tr><tr><td>IMLOG10</td><td>複素数の10を底とする対数を返す</td></tr><tr><td>IMPOWER</td><td>複素数のべき乗を返す</td></tr><tr><td>IMSQRT</td><td>複素数の平方根を返す</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">IMLN関数は、これら複素数関数群の中で「自然対数」を担う基本関数ですね。COMPLEXで複素数を作り、IMLNで自然対数値を求めるのが基本の流れです。最後はIMREAL・IMAGINARYで振幅と位相に分けて可視化しましょう。フェーザ分解やボード線図の解析シートを軽快に組み立てられますよ。</p>



<h2 class="wp-block-heading"><span id="toc25">まとめ</span></h2>



<p class="wp-block-paragraph">GoogleスプレッドシートのIMLN関数は、複素数の自然対数（ln(z)）を返す関数です。フェーザ分解・ボード線図・伝達関数解析・信号処理など、複素数を「振幅と位相」に分けて扱う場面で欠かせない関数ですよ。</p>



<ul class="wp-block-list"><li>構文は <code>=IMLN(複素数)</code> で複素数を1つ渡すだけ</li><li>「ln(a+bi) = ln(√(a²+b²)) + i × atan2(b, a)」が内部計算式</li><li>実部は絶対値の自然対数、虚部は偏角（位相角）になる</li><li>「a+bi」と「a+bj」のどちらの表記もそのまま受け付ける</li><li>虚部（偏角）の範囲は -π < θ ≤ π の主値</li><li>正の実部だけの複素数を渡すと通常のLN関数と同じ結果になる</li><li>「ln(-1) = iπ」のオイラーの等式の逆も計算できる</li><li>COMPLEX関数の結果やセル参照、複素数演算の結果も渡せる</li><li>ARRAYFORMULAで複数の複素数を一括処理できる</li><li>IMEXP関数とは互いに逆関数の関係</li><li>z=0 を渡すと #NUM! エラー（ln(0)は定義されない）</li><li>大文字の「I」「J」やi・j以外の単位は #NUM! エラー</li><li>論理値やエラー値を渡すと #VALUE! エラー</li><li>ExcelのIMLN関数と完全互換（Excel 2007以降）</li></ul>



<p class="wp-block-paragraph">複素数の自然対数が必要になったら、IMLN関数の出番ですよ。COMPLEX関数で複素数を作り、IMLNで対数を取りましょう。最後にIMREAL・IMAGINARYで振幅と位相に分解すれば、エンジニアリング系のシートを軽快に組み立てられますね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-imln-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
