<?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>IMTANH関数 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/imtanh%e9%96%a2%e6%95%b0/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Wed, 29 Apr 2026 11:24:14 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>IMTANH関数 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>スプレッドシートのIMTANH関数の使い方｜複素数の双曲線正接</title>
		<link>https://mashukabu.com/spreadsheet-imtanh-function/</link>
					<comments>https://mashukabu.com/spreadsheet-imtanh-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Wed, 29 Apr 2026 11:24:14 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[IMTANH関数]]></category>
		<category><![CDATA[エンジニアリング関数]]></category>
		<category><![CDATA[複素数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6338</guid>

					<description><![CDATA[GoogleスプレッドシートのIMTANH関数の使い方を解説。複素数（a+bi）の双曲線正接（ハイパボリックタンジェント）を一発で求める基本構文、虚数単位i/jの扱い、COMPLEX関数やIMSINH/IMCOSH関数との連携、伝送線路の特性インピーダンスや減衰振動の解析での実務活用例、よくあるエラー対処法まで実例付きで紹介します。]]></description>
										<content:encoded><![CDATA[
<p>「スプレッドシートで複素数の双曲線正接を計算したい。でもsinh(z)とcosh(z)を別々に計算してIMDIVで割るのは面倒&#8230;」</p>



<p>スプレッドシートで複素数を扱っていると、双曲線関数の比であるtanh(z)が必要になる場面がありますよね。「sinh(a+bi) ÷ cosh(a+bi)」という手順を毎回踏むのは、ちょっと手間がかかります。</p>



<p>そんなときに頼りになるのがGoogleスプレッドシートのIMTANH関数です。複素数を渡すだけで双曲線正接の値を一発で返してくれますよ。伝送線路の特性インピーダンスや減衰応答の数式が一気にすっきりしますね。</p>



<p>ExcelのIMTANH関数と完全互換なので、Excelファイルとやり取りする現場でも安心ですね。COMPLEX関数で作った複素数や、IMSUM・IMPRODUCTの演算結果からも、そのまま双曲線正接を計算できます。</p>



<p>この記事では、スプレッドシートのIMTANH関数の基本構文と実務での活用例を解説します。定義式に基づく内部計算の仕組みや、よくあるエラーと対処法もしっかり紹介していきますよ。</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">スプレッドシートのIMTANH関数とは？</a></li><li><a href="#toc2" tabindex="0">IMTANH関数の書き方（構文と引数）</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">IMTANH関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">文字列で複素数を直接指定する</a></li><li><a href="#toc7" tabindex="0">セル参照で複素数を指定する</a></li><li><a href="#toc8" tabindex="0">COMPLEX関数と組み合わせる</a></li><li><a href="#toc9" tabindex="0">度数法で虚部の角度を渡す（RADIANS関数と組み合わせる）</a></li><li><a href="#toc10" tabindex="0">ARRAYFORMULAで複数行を一括処理する</a></li></ol></li><li><a href="#toc11" tabindex="0">IMTANH関数の実務活用例</a><ol><li><a href="#toc12" tabindex="0">活用例1: 実部と虚部に分解して可視化する</a></li><li><a href="#toc13" tabindex="0">活用例2: IMSINHとIMCOSHの比との一致を検算する</a></li><li><a href="#toc14" tabindex="0">活用例3: 伝送線路の特性インピーダンス計算</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">IMTANH関数とCOMPLEX関数群の関係</a></li><li><a href="#toc18" tabindex="0">IMTANH関数のよくあるエラーと対処法</a><ol><li><a href="#toc19" tabindex="0">#NUM! エラー（複素数の形式エラー）</a></li><li><a href="#toc20" tabindex="0">#NUM! エラー（特異点による発散）</a></li><li><a href="#toc21" tabindex="0">#VALUE! エラー（引数の型エラー）</a></li><li><a href="#toc22" tabindex="0">実部が大きすぎてもエラーにはならない</a></li><li><a href="#toc23" tabindex="0">IFERRORでまとめてエラーを吸収する</a></li></ol></li><li><a href="#toc24" tabindex="0">IMTANH関数とExcelの互換性</a></li><li><a href="#toc25" tabindex="0">複素数関連の関数一覧</a></li><li><a href="#toc26" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p>GoogleスプレッドシートのIMTANH関数は、複素数の双曲線正接（ハイパボリックタンジェント）を返す関数です。エンジニアリング関数（電気・物理・工学系の計算で使う関数群）のひとつに分類されますよ。</p>



<p>読み方は「アイエム・タンチ」または「イマジナリー・タンチ」です。関数名は「IM（Imaginary：虚数）+ TANH（Hyperbolic Tangent：双曲線正接）」に由来します。複素数「a+bi」に対して、複素数版のtanh値を返してくれるのが役割ですね。</p>



<p>そもそも複素数の双曲線正接とは、実数の双曲線関数を複素数全体に拡張したものです。定義式は次のようにシンプルですよ。</p>



<pre class="wp-block-code"><code>tanh(z) = sinh(z) / cosh(z)</code></pre>



<p>つまりIMTANH(z)はIMSINH(z)をIMCOSH(z)で割った結果と等価ですね。展開式で書くと次のような形になります。</p>



<pre class="wp-block-code"><code>tanh(a+bi) = sinh(2a) / (cosh(2a) + cos(2b))
           + i × sin(2b) / (cosh(2a) + cos(2b))</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>複素数（z）</th><th>IMTANH(z)の結果（概算）</th><th>内部計算</th></tr></thead><tbody><tr><td>0+0i</td><td>0</td><td>tanh(0) = 0</td></tr><tr><td>1+0i</td><td>0.761594155955765</td><td>tanh(1) ≈ 0.7616</td></tr><tr><td>0+1i</td><td>1.5574077246549i</td><td>i × tan(1)</td></tr><tr><td>1+1i</td><td>1.0839233273386+0.27175258531952i</td><td>sinh(1+i)/cosh(1+i)</td></tr><tr><td>0+π/2i</td><td>#NUM!（特異点）</td><td>cosh(π/2 i)=0 で発散</td></tr></tbody></table></figure>



<p>IMTANH関数を使えば、この表の右側にある「複素数の双曲線正接」をサクッと取り出せます。ExcelのIMTANH関数とも仕様が一致していて、Excel 2013以降のすべてのバージョンに対応していますよ。</p>



<p>複素数の双曲線正接は、複素双曲線関数が必要な場面で活躍する基礎パーツですね。伝送線路の特性インピーダンス計算や制御工学の伝達関数で登場します。信号処理のフィルタ設計、機械学習の活性化関数の数値検証などにも使えますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>IMTANH関数は奇関数の性質を持っています。tanh(-z) = -tanh(z) が複素数でも成り立ちます。符号反転した複素数を渡すと、結果も符号反転して返ってきますよ。実部が大きい複素数では結果が±1に近づく「飽和性質」もあります。これがニューラルネットワークの活性化関数で使われる理由になっていますね。</p></blockquote>



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



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



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



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



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>戻り値は元の入力と同じ虚数単位で返されます。「1+1i」を渡せば「i」付きで、「1+1j」を渡せば「j」付きで返るので、表記の統一性も保たれますよ。</p></blockquote>



<p>引数の虚部はラジアン（弧度法）で扱われる点に注意してください。度数法（°）で角度を渡したい場合は、RADIANS関数（度をラジアンに変換する関数）で事前に変換する必要がありますね。</p>



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



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



<p>複素数文字列をそのまま引数に渡してみましょう。</p>



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



<p>結果は「1.0839233273386+0.27175258531952i」になります。実部・虚部それぞれが小数で返ってきますね。</p>



<p>実部だけの複素数（虚部0）を渡すと、通常の双曲線正接と同じ結果になります。</p>



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



<p>どちらも結果は「0.761594155955765」です。実数のtanh(1)と同じ値が返ってきますね。</p>



<p>虚部だけの純虚数（実部0）を渡すと、結果は通常のタンジェントに虚数単位を掛けた値になります。</p>



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



<p>結果は「1.5574077246549i」になります。これは「i × tan(1)」の値ですね。tanh(0+bi) = i × tan(b) という恒等式が裏で成り立っています。</p>



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



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



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



<p>結果は「1.16673625724092-0.243458201185571i」になります。セル参照を渡すだけで、入っている複素数の双曲線正接を取り出せますよ。</p>



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



<p><a href="https://mashukabu.com/spreadsheet-complex-function/">COMPLEX関数</a>で作った複素数の双曲線正接を、その場で計算することもできます。</p>



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



<p>結果は「1.0839233273386+0.27175258531952i」になります。これは「IMTANH(&#8220;1+1i&#8221;)」と同じですね。COMPLEX(1, 1)が内部で「1+1i」を作り、IMTANH関数がその双曲線正接を返してくれます。</p>



<p>数値で実部と虚部を別々に管理しているシートで便利な書き方ですよ。</p>



<h3 class="wp-block-heading"><span id="toc9">度数法で虚部の角度を渡す（RADIANS関数と組み合わせる）</span></h3>



<p>虚部の角度を「30度」のような度数法で渡したい場合は、RADIANS関数で変換します。</p>



<pre class="wp-block-code"><code>=IMTANH(COMPLEX(0, RADIANS(30)))</code></pre>



<p>結果は「0.577350269189626i」、つまりi × tan(30°) = i/√3 ≈ 0.577i ですね。tanh(0+30°i) = i × tan(30°) と一致します。</p>



<p>実部と虚部の両方を度数法で扱いたい場合は両方をRADIANSで包みます。</p>



<pre class="wp-block-code"><code>=IMTANH(COMPLEX(RADIANS(45), RADIANS(30)))</code></pre>



<p>度数法で角度を扱う実務シートでは、RADIANSとセットで使うのが定番ですよ。</p>



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



<p>複素数のリストから一気に双曲線正接の列を作りたい場面もありますよね。そんなときはARRAYFORMULA関数（数式を範囲全体に展開する関数）と組み合わせます。</p>



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



<p>A列に並んだ複素数から、対応するtanh値をB列に一発で展開できますよ。伝送線路の各位置における電流・電圧比を一括処理するときに重宝しますね。</p>



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



<h3 class="wp-block-heading"><span id="toc12">活用例1: 実部と虚部に分解して可視化する</span></h3>



<p>IMTANH関数の戻り値は複素数なので、グラフにしたいときは実部と虚部に分けて取り出します。IMREAL関数とIMAGINARY関数を組み合わせる流れですよ。</p>



<p>A列に複素数が並んでいるとしましょう。</p>



<pre class="wp-block-code"><code>B2: =IMTANH(A2)               ← 複素数の双曲線正接
C2: =IMREAL(B2)               ← 実部
D2: =IMAGINARY(B2)            ← 虚部</code></pre>



<p>C列を実部、D列を虚部としてプロットすれば、複素平面上での挙動が一目で分かりますね。実部が大きい領域で結果が±1に飽和する様子も確認できる教材として使えるパターンです。</p>



<h3 class="wp-block-heading"><span id="toc13">活用例2: IMSINHとIMCOSHの比との一致を検算する</span></h3>



<p>定義どおり tanh(z) = sinh(z)/cosh(z) が成り立ちますよね。IMSINHとIMCOSHとIMDIVを組み合わせて検算できますよ。</p>



<pre class="wp-block-code"><code>A2: 1+1i
B2: =IMTANH(A2)                          ← 直接計算
C2: =IMDIV(IMSINH(A2), IMCOSH(A2))       ← 定義式から計算</code></pre>



<p>B2とC2は同じ結果「1.0839233273386+0.27175258531952i」になりますね。複素双曲線関数の定義をスプレッドシート上で再現することで、数式の理解が深まる仕組みです。</p>



<h3 class="wp-block-heading"><span id="toc14">活用例3: 伝送線路の特性インピーダンス計算</span></h3>



<p>電気工学の伝送線路理論では、入力インピーダンスの公式に tanh(γL) という項が登場します。γは伝搬定数（複素数）、Lは線路長ですね。</p>



<p>たとえば伝搬定数γ = 0.05+0.3i、線路長L = 2の場合を考えましょう。</p>



<pre class="wp-block-code"><code>A2: =COMPLEX(0.05, 0.3)        ← 伝搬定数γ
B2: 2                          ← 線路長L
C2: =IMPRODUCT(A2, B2)         ← γ × L
D2: =IMTANH(C2)                ← tanh(γL)</code></pre>



<p>D列の値が、線路の電気的特性を表現する複素数になりますね。マイクロ波回路や同軸ケーブルの設計シートで活躍するパターンです。</p>



<h3 class="wp-block-heading"><span id="toc15">活用例4: 飽和性質を活用した非線形変換</span></h3>



<p>実部が大きい複素数を渡すと、IMTANH関数の結果は ±1 に近づく性質があります。この「飽和性質」は機械学習の活性化関数 tanh としても有名ですよね。</p>



<pre class="wp-block-code"><code>=IMTANH(COMPLEX(5, 0))    ← 実部だけ大きい複素数</code></pre>



<p>結果は「0.999909204262595」とほぼ1ですね。同様にIMTANH(COMPLEX(-5, 0))は「-0.999909204262595」と-1に近づきます。</p>



<p>数値スケーリングの非線形変換シートや、信号の正規化処理を組み立てるときに便利な性質ですよ。実部が10を超えると、ほぼ完全に1または-1に飽和します。</p>



<h3 class="wp-block-heading"><span id="toc16">活用例5: 周期性を活用した数値検証</span></h3>



<p>複素数のtanhは、虚数方向にπiの周期を持っています。tanh(z + πi) = tanh(z) という関係ですね。これを使って数式の妥当性をチェックできますよ。</p>



<pre class="wp-block-code"><code>A2: 1+0.5i
B2: =IMTANH(A2)                          ← 元の値
C2: =IMTANH(IMSUM(A2, COMPLEX(0, PI()))) ← +πi シフトした値</code></pre>



<p>B2とC2は同じ結果になりますね。tanh(z + πi) = tanh(z) という性質が裏付けられる仕組みです。複素関数論の周期性をスプレッドシート上で確認できる学習用パターンですよ。</p>



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



<p>複素数を扱う関数群の中で、IMTANH関数の位置づけを整理しておきましょう。</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>実数 atan2(b,a)</td><td>偏角を取り出す</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-imconjugate-function/">IMCONJUGATE</a></td><td>複素数 a+bi</td><td>複素数 a-bi</td><td>共役を作る</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-imsinh-function/">IMSINH</a></td><td>複素数 z</td><td>複素数 sinh(z)</td><td>双曲線正弦を計算する</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-imcosh-function/">IMCOSH</a></td><td>複素数 z</td><td>複素数 cosh(z)</td><td>双曲線余弦を計算する</td></tr><tr><td>IMTANH</td><td>複素数 z</td><td>複素数 tanh(z)</td><td>双曲線正接を計算する</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-imtan-function/">IMTAN</a></td><td>複素数 z</td><td>複素数 tan(z)</td><td>タンジェントを計算する</td></tr></tbody></table></figure>



<p>IMREALやIMABSは「複素数から実数を取り出す」関数ですね。一方IMTANH関数は「複素数から複素数を計算する」役割です。出力もそのまま複素数なので、IMSUMやIMPRODUCTにそのまま渡してさらに計算を続けられますよ。</p>



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



<pre class="wp-block-code"><code>=IMDIV(IMSINH(A2), IMCOSH(A2))</code></pre>



<p>これはIMTANHと同じ結果になりますが、IMSINHとIMCOSHとIMDIVの3つを組み合わせる必要がありますよね。IMTANHを使えば1関数で済むので、数式が読みやすくなります。</p>



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



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



<p>複素数として認識できない文字列を渡したときに発生します。虚数単位が大文字になっていたり、i・j以外の文字を使っている場合が典型例ですよ。</p>



<pre class="wp-block-code"><code>=IMTANH(&quot;1+1I&quot;)   → #NUM!（大文字のIは不可）
=IMTANH(&quot;1+1k&quot;)   → #NUM!（i・j以外は不可）
=IMTANH(&quot;１+１i&quot;) → #NUM!（全角文字は不可）</code></pre>



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



<p>スペースが入っている場合（例: <code>"1 + 1i"</code>）も認識できないことがあるので、余計な空白を除いておくと安心です。</p>



<h3 class="wp-block-heading"><span id="toc20">#NUM! エラー（特異点による発散）</span></h3>



<p>cosh(z)が0になる点では、tanh(z)は発散して定義できません。z = π/2 i, 3π/2 i, 5π/2 i&#8230; のように実部が0で虚部がπ/2の奇数倍の場合に起こりますよ。</p>



<pre class="wp-block-code"><code>=IMTANH(COMPLEX(0, PI()/2))   → #NUM!（cosh(π/2 i) = 0 で発散）</code></pre>



<p>対処法は、入力値が特異点に近づかないようチェックすることです。物理的な意味のある範囲に制限する、特異点近傍ではIFERRORで代替値を返すなどの工夫が必要ですね。</p>



<p>なお原点0+0iでは、IMTANHは「0」を返します。tanh(0) = 0 となるためで、特異点ではありません。</p>



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



<p>引数に論理値やエラー値を渡したときに発生します。</p>



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



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



<h3 class="wp-block-heading"><span id="toc22">実部が大きすぎてもエラーにはならない</span></h3>



<p>実部が極端に大きい場合でも、IMTANH関数の結果は ±1 に飽和するだけでエラーにはなりません。</p>



<pre class="wp-block-code"><code>=IMTANH(&quot;100+0i&quot;)   → 1（実質的に1）
=IMTANH(&quot;-100+0i&quot;)  → -1（実質的に-1）</code></pre>



<p>これは実数のtanhと同じ振る舞いですね。IMSINHやIMCOSHは大きな実部でオーバーフローします。一方IMTANHは比を取るため、大きな実部でも安定して結果が返りますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>機械学習の活性化関数として tanh が使われる理由のひとつが、この「常に [-1, 1] の範囲に収まる」性質ですよ。スプレッドシート上で活性化関数のシミュレーションをするときも、IMTANH関数（または実数版のTANH関数）が活躍します。</p></blockquote>



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



<p>入力データの信頼性が低い場合は、IFERROR関数で包んでおくと安心です。エラー時に代替値を返す関数で、シート全体の集計が止まりません。</p>



<pre class="wp-block-code"><code>=IFERROR(IMTANH(A2), &quot;形式エラーまたは特異点&quot;)</code></pre>



<p>エラー時にメッセージを返すようにしておけば、安心して大量データに適用できますよ。特異点近傍を扱うシートでは特に重要ですね。</p>



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



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



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



<p>ExcelのIMTANH関数は、Excel 2013以降のバージョンで追加されました。Microsoft 365、Excel for Mac、Excel Online でも同じように使えますよ。Excel 2010以前のバージョンでは利用できないので、古い環境とファイルを共有する場合は注意してくださいね。</p>



<p>Excel 2010以前で同じ計算をしたい場合は、IMSINH・IMCOSH・IMDIVの組み合わせで代替できますよ。具体的には <code>=IMDIV(IMSINH(A2), IMCOSH(A2))</code> のように書きますね。</p>



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



<p>IMTANH関数と一緒に使うことが多い、複素数関連の関数をまとめました。</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><a href="https://mashukabu.com/spreadsheet-imsinh-function/">IMSINH</a></td><td>複素数の双曲線正弦を返す</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-imcosh-function/">IMCOSH</a></td><td>複素数の双曲線余弦を返す</td></tr><tr><td>IMTANH</td><td>複素数の双曲線正接を返す</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-imtan-function/">IMTAN</a></td><td>複素数のタンジェントを返す</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-imsin-function/">IMSIN</a></td><td>複素数のサインを返す</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-imcos-function/">IMCOS</a></td><td>複素数のコサインを返す</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-imcot-function/">IMCOT</a></td><td>複素数のコタンジェントを返す</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-imsec-function/">IMSEC</a></td><td>複素数のセカントを返す</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-imsum-function/">IMSUM</a></td><td>複素数の合計（足し算）を返す</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-imsub-function/">IMSUB</a></td><td>複素数の差（引き算）を返す</td></tr><tr><td>IMPRODUCT</td><td>複素数の積（掛け算）を返す</td></tr><tr><td>IMDIV</td><td>複素数の商（割り算）を返す</td></tr><tr><td>IMEXP</td><td>複素数の指数関数を返す</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-imln-function/">IMLN</a></td><td>複素数の自然対数を返す</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-imsqrt-function/">IMSQRT</a></td><td>複素数の平方根を返す</td></tr></tbody></table></figure>



<p>IMTANH関数は、これら複素数関数群の中で「双曲線正接を計算する」役割を担います。COMPLEXで複素数を作り、IMTANHで双曲線正接を取ります。最後にIMREAL・IMAGINARYで実部と虚部に分けるのが基本パターンですよ。</p>



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



<p>GoogleスプレッドシートのIMTANH関数は、複素数の双曲線正接（ハイパボリックタンジェント）を返す関数です。伝送線路の特性インピーダンスや制御工学の伝達関数で活躍しますね。機械学習の活性化関数の数値検証など、複素双曲線関数が必要な場面で欠かせない関数ですよ。</p>



<ul class="wp-block-list"><li>構文は <code>=IMTANH(複素数)</code> で引数は1つだけのシンプルな関数</li><li>「a+bi」を渡すと「sinh(a+bi) / cosh(a+bi)」が返る</li><li>「a+bj」のような工学系表記もそのまま受け付ける</li><li>引数の虚部はラジアンで扱う（度数法ならRADIANS関数で変換）</li><li>虚部0の実数を渡すと、実数のtanhと同じ値になる</li><li>実部0の純虚数を渡すと、「i × tan(b)」の値が返る</li><li>COMPLEX関数の結果やセル参照、複素数演算の結果から双曲線正接を計算できる</li><li>IMSINH÷IMCOSHの比と等価</li><li>ARRAYFORMULAで複数の複素数を一括処理できる</li><li>実部が大きい複素数では結果が ±1 に飽和する（活性化関数 tanh と同じ性質）</li><li>虚数方向にπiの周期を持つ</li><li>z = 0 + (π/2 + nπ)i のような特異点では #NUM! エラー（cosh(z)=0で発散）</li><li>大文字の「I」「J」や全角文字、i・j以外の単位は #NUM! エラー</li><li>論理値やエラー値を渡すと #VALUE! エラー</li><li>ExcelのIMTANH関数と完全互換（Excel 2013以降）</li></ul>



<p>複素数の双曲線正接が必要になったら、IMTANH関数の出番ですよ。COMPLEX関数で複素数を作り、IMTANHで双曲線正接を取ります。最後にIMREAL・IMAGINARYで成分を分解する流れですね。この組み合わせで、エンジニアリング系のシートを軽快に組み立ててみてくださいね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-imtanh-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
