スプレッドシートのIMCOTH関数の使い方|Excelには無い coth(z) を計算する方法と IMCOT との違い

スポンサーリンク

「複素数の双曲線余接 coth(z) をスプレッドシートで計算したい」というとき、IMCOTH関数がぴったりです。電気回路の伝送線理論や制御工学のレポートで coth(γL) のような式を扱うとき、いちいち実部・虚部に分けて手計算する手間が一気に省けます。

ところがこのIMCOTH、ExcelにはなくてGoogleスプレッドシートだけにある関数なんです。検索で「Excel IMCOTH」と探しても出てこないのは、関数自体が用意されていないからですね。この記事では、構文と引数の基本から、i 形式と j 形式の使い分け、Excelで同じ計算をしたいときの代用式、IMCOT との見分け方、極(特異点)で #NUM! になる理由まで、IMCOTH関数の使い方を完全網羅で解説します。

  1. スプレッドシートのIMCOTH関数とは?Excelには無い複素双曲線関数
    1. Excelには搭載されていない点に注意
    2. IMCOTHが活躍する場面
  2. スプレッドシートのIMCOTH関数の書式と引数の渡し方
    1. i と j は入力に合わせて返る
    2. 実数を渡したときは実数で返る
  3. スプレッドシートのIMCOTH関数の使い方①|実数を渡して coth(x) を計算する
    1. 熱伝導のフィン効率計算で使う
  4. スプレッドシートのIMCOTH関数の使い方②|複素数(i 形式・j 形式)を渡す
    1. i と j は混ぜずに統一する
  5. スプレッドシートのIMCOTH関数の使い方③|純虚数 iy で cot(y) を逆算する
  6. スプレッドシートのIMCOTH関数の応用|検算・分解・逆数チェック
    1. coth(z) = cosh(z) / sinh(z) を検算する
    2. IMCOTH と IMTANH は互いに逆数
    3. 実部・虚部・絶対値を別セルに取り出す
  7. Excelで IMCOTH を使いたいとき|IMDIV + IMCOSH + IMSINH の代用式
    1. 代用式を関数化(LAMBDA)して再利用
    2. 代用式の極での挙動
  8. スプレッドシートのIMCOTH関数のよくあるエラーと対処法
    1. #NUM! エラー: coth(0) と coth(nπi) は計算できない
    2. #VALUE! エラー: 虚数単位は i か j
    3. #NUM! エラー: i と j の混在
  9. IMCOTH と関連関数(IMCOT・IMTANH・IMCOSH・IMSINH)の違いを整理
    1. IMCOT と IMCOTH の見分け方
    2. 逆数ペア・商ペアの関係
  10. スプレッドシートのIMCOTH関数 よくある質問(FAQ)
    1. Q1. IMCOTHはExcelでも使えますか?
    2. Q2. 戻り値が文字列なのが扱いづらいです。実部だけ数値で欲しいときは?
    3. Q3. 複素数の coth って実務でいつ使うの?
    4. Q4. coth(z) の結果が無限大に飛びました。バグですか?
    5. Q5. 入力で i と j が混在するとなぜ #NUM! になりますか?
    6. Q6. coth(z) の周期性を確かめたいです
  11. まとめ

スプレッドシートのIMCOTH関数とは?Excelには無い複素双曲線関数

IMCOTH関数は、複素数 z の双曲線余接 coth(z) を計算する関数です。GoogleスプレッドシートのENGINEERING(工学)カテゴリに属する複素数関数のひとつで、伝送線理論や分布定数回路の計算で重宝します。

数学的な定義はシンプルで、双曲線余弦と双曲線正弦の商として定義されます。

coth(z) = cosh(z) / sinh(z) = (e^z + e^-z) / (e^z - e^-z)

実数 x なら (e^x + e^-x) / (e^x - e^-x) という形になり、|x| が大きくなると ±1 に漸近します。複素数になると周期性(虚数方向に π の周期)が加わるのが特徴です。

Excelには搭載されていない点に注意

IMCOTH関数の最大の注意点は、Microsoft Excel には存在しない関数だということです。2026年現在、Microsoft 365 の Excel でも IMCOTH は搭載されていません。IMCOSH や IMSINH はExcelにもありますが、IMCOTH と IMCOT は Googleスプレッドシート独自の関数です。

Excelで同じ計算をしたい場合は、後述する IMDIV(IMCOSH, IMSINH) の代用式を使う必要があります。両環境で同じワークブックを共有する場面では、最初から代用式で書いておくと移植時にトラブルになりません。

IMCOTHが活躍する場面

複素数の coth が現れる代表的なシーンは次のとおりです。

  • 伝送線理論: 分布定数回路の特性インピーダンス Z_in = Z_0 · coth(γL) で coth(複素数) が出る
  • 制御工学: 伝達関数のラプラス領域での安定性解析
  • 熱伝導の振動解析: フィン効率を複素周波数領域で扱うとき
  • 量子統計: ボーズ・アインシュタイン分布の温度依存項

学部レベルの電磁気・電気回路のレポートでも coth(jωL/c) のような式が普通に出てくるので、複素数のまま一発で計算できるIMCOTHは地味に助かります。

スプレッドシートのIMCOTH関数の書式と引数の渡し方

書式は1引数だけのシンプルな形です。

=IMCOTH(数値)
引数内容入力例
数値双曲線余接を求めたい複素数"1+2i" / "3-4j" / 1.5

引数の「数値」には、2通りの書き方ができます。

  • 文字列で複素数を渡す: "1+2i""3-4j" のように、虚数単位 i または j を使った文字列をダブルクォートで囲む
  • 実数を直接渡す: 12.5 のように、虚数部がゼロの数値(数値リテラルまたはセル参照)

戻り値は “x+yi” 形式の文字列で返ってくる点に注意してください。例えば =IMCOTH("1+1i") の結果は 0.868014142895925-0.217621561854403i という文字列です。表示は文字列ですが、IMREAL・IMAGINARY・IMABS・IMDIV などの複素数関数にそのまま渡せるので、後段の計算で困ることはありません。

i と j は入力に合わせて返る

入力で j を使うと戻り値も j で、i を使うと i で返ります。

=IMCOTH("1+1i")  → 0.868014142895925-0.217621561854403i
=IMCOTH("1+1j")  → 0.868014142895925-0.217621561854403j

注意: シート内で ij を混在させると、IMPRODUCT や IMDIV で #NUM! になります。電気工学の慣習で j を使うなら全体で j に統一しましょう。

実数を渡したときは実数で返る

虚数部が 0 の純粋な実数を渡したときは、文字列ではなく実数で返ります。

=IMCOTH(1)  → 1.31303528549933(数値型)

この値はそのまま四則演算に使えるので、実部だけ欲しい場面ではこちらが手早いです。

スプレッドシートのIMCOTH関数の使い方①|実数を渡して coth(x) を計算する

まずは一番シンプルな実数の双曲線余接から見ていきましょう。虚数部がゼロの実数を渡すと、おなじみの coth(x) = (e^x + e^-x) / (e^x – e^-x) の値が返ります。

=IMCOTH(1)        → 1.31303528549933
=IMCOTH(2)        → 1.03731472072755
=IMCOTH(0.5)      → 2.16395341373865
=IMCOTH(-1)       → -1.31303528549933

実数 x が大きくなるほど coth(x) は 1 に漸近し、x が 0 に近づくほど発散していきます。負の x では奇関数なので符号が反転します。

熱伝導のフィン効率計算で使う

熱交換器のフィン効率は実数の coth で書けることが多く、η = tanh(mL) / (mL)η = coth(mL) - 1/(mL) のような形が登場します。

m = 5
L = 0.1
=IMCOTH(m * L) - 1/(m * L)  → 約 0.165

実数を渡す限り IMCOTH の戻り値は数値型なので、四則演算でそのまま使えます。

スプレッドシートのIMCOTH関数の使い方②|複素数(i 形式・j 形式)を渡す

複素数の coth を計算するときは、ダブルクォートで囲んだ文字列として渡します。これがIMCOTHの本領発揮シーンです。

=IMCOTH("1+1i")   → 0.868014142895925-0.217621561854403i
=IMCOTH("2+3i")   → 1.03574663776499+0.011822010379891i
=IMCOTH("0.5-1i") → 0.534466577660119+1.12832009325947i

戻り値は実部と虚部を含む複素数の文字列形式です。物理学の慣習で虚数単位を i で書くならこのまま、電気工学で j を使うなら下のように書きます。

=IMCOTH("1+1j")   → 0.868014142895925-0.217621561854403j

i と j は混ぜずに統一する

シート内で扱う複素数の虚数単位は、i か j のどちらかに統一するのが鉄則です。

=IMPRODUCT("1+1i", "2+1j")   → #NUM!  ※ i と j が混在
=IMPRODUCT("1+1i", "2+1i")   → 1+3i   ※ 統一されているのでOK

セル参照で組み立てるときは、最初にユーザー入力をフォーマット関数で i に統一しておくと事故が減ります。たとえば =SUBSTITUTE(A1, "j", "i") で前処理しておく方法です。

スプレッドシートのIMCOTH関数の使い方③|純虚数 iy で cot(y) を逆算する

実部がゼロの純虚数 z = iy を渡すと、coth(iy) = -i · cot(y) という三角関数の余接が顔を出します。これは複素関数論で知られる関係です。

=IMCOTH("1i")     → 約 4.4E-17 - 0.642092615934331i

実部がほぼゼロ(浮動小数点誤差レベル)、虚部に -cot(1) = -0.6420926... が入ります。-cot(1) = -cos(1)/sin(1) = -0.5403/0.8415 ≒ -0.6421 とぴったり一致しますね。

この関係を使うと、三角関数の cot を coth から逆算することもできます。

=IMAGINARY(IMCOTH("1i")) * -1    → 0.642092615934331(cot(1) の値)

複素関数論の演習や、三角関数と双曲線関数の対応関係を確認したいときに便利です。

スプレッドシートのIMCOTH関数の応用|検算・分解・逆数チェック

ここからは複素数 coth を実務で使うときに役立つ応用パターンを紹介します。

coth(z) = cosh(z) / sinh(z) を検算する

数学的定義どおり、IMCOSH と IMSINH の商と IMCOTH の値が一致するかを確かめられます。

=IMDIV(IMCOSH("1+1i"), IMSINH("1+1i"))
=IMCOTH("1+1i")

両者は同じ値(0.868014142895925-0.217621561854403i)を返します。授業のレポートや業務での検算、Excel互換シートでの代用式テストに使えます。

IMCOTH と IMTANH は互いに逆数

双曲線余接は双曲線正接の逆数なので、掛け算すると 1 になるはずです。

=IMPRODUCT(IMCOTH("1+1i"), IMTANH("1+1i"))   → "1" または "1+1.1E-16i"

結果は厳密に 1 または微小な浮動小数点誤差を含む 1+1.1E-16i のような値になります。複素関数のライブラリ実装をチェックするときの定番テストです。

実部・虚部・絶対値を別セルに取り出す

複素数の coth を後段の計算で使うときは、IMREAL・IMAGINARY・IMABS で分解しておくと表計算と相性がよくなります。

セル数式内容例(z=1+i)
A1=IMCOTH("1+1i")coth(1+i)0.868014142895925-0.217621561854403i
B1=IMREAL(A1)実部 Re(coth(z))0.868014142895925
C1=IMAGINARY(A1)虚部 Im(coth(z))-0.217621561854403
D1=IMABS(A1)絶対値 coth(z) 0.894855675945458
E1=DEGREES(IMARGUMENT(A1))偏角(度)-14.07...

伝送線の入力インピーダンス計算では、最終的に振幅と位相に分解したい場面が多いので、この5項目セットでまとめておくとレポートが書きやすくなります。

Excelで IMCOTH を使いたいとき|IMDIV + IMCOSH + IMSINH の代用式

Excel には IMCOTH が無いため、Excel互換のシートで同じ計算をしたいときは IMDIV と IMCOSH と IMSINH の3関数で代用します。

=IMDIV(IMCOSH(A1), IMSINH(A1))

A1 に "1+1i" を入れておくと、IMCOTH と同じ 0.868014142895925-0.217621561854403i が返ります。IMDIV・IMCOSH・IMSINH はいずれも Excel と Sheets の両方に存在するので、両環境で動く汎用式になります。

代用式を関数化(LAMBDA)して再利用

Googleスプレッドシートの LAMBDA を使えば、Excelに無いIMCOTH相当を自作関数として定義できます。

=LAMBDA(z, IMDIV(IMCOSH(z), IMSINH(z)))("1+1i")

名前付き関数(メニュー: データ → 名前付き関数)に登録すれば、=MYIMCOTH("1+1i") のような形でシート全体から呼び出せます。Excel互換のロジックをひとつにまとめておくと、後でExcelに移植するときの差し替えが楽になります。

代用式の極での挙動

数学的には coth は z = nπi で発散しますが、代用式の場合は IMSINH(z) が 0 を返した時点で IMDIV が #DIV/0! を返します。IMCOTH 本体が返す #NUM! とは別のエラーになる点だけ覚えておきましょう。

=IMDIV(IMCOSH(0), IMSINH(0))   → #DIV/0!
=IMCOTH(0)                      → #NUM!

挙動の違いはありますが、どちらも「計算不能」を意味する点では同じです。

スプレッドシートのIMCOTH関数のよくあるエラーと対処法

IMCOTH関数を使っていると、いくつかのエラーに遭遇します。原因と対処をまとめておきましょう。

エラー主な原因対処方法
#NUM!引数が極(z = nπi)に該当(0, ±πi, ±2πi…)0 や πi の整数倍を避ける
#VALUE!複素数として解釈できない文字列虚数単位は ij のみ。スペース混入もNG
#N/A引数の個数が0または2以上IMCOTH(数値) の1引数を必ず指定
#NUM!(IMPRODUCT等で)ij の混在シート全体で虚数単位を統一する

#NUM! エラー: coth(0) と coth(nπi) は計算できない

数学的に coth(z) は sinh(z) = 0 となる点で定義されません。これを極(特異点)と呼びます。実数領域では最も身近なのが z = 0 のケースです。

=IMCOTH(0)               → #NUM!
=IMCOTH("0+3.14159265i") → #NUM!(z ≒ πi)
=IMCOTH("0+6.28318530i") → #NUM!(z ≒ 2πi)

これは sinh(0) = sinh(πi) = sinh(2πi) = 0 でゼロ除算になるためです。極の近傍でも数値計算の精度が落ちるので、z = (1E-10) + (πi - 1E-9)i のような際どい値では #NUM! ではなく非常に大きな数値が返ることもあります。

物理計算で z が極の近くに来る場合は、近似展開(ローラン展開)に切り替えて手計算するのが安全です。

#VALUE! エラー: 虚数単位は i か j

虚数単位として認識されるのは ij だけです。それ以外の文字や、半角・全角の混在、余分なスペースが入ると #VALUE! になります。

=IMCOTH("1+1k")    → #VALUE!(k は虚数単位ではない)
=IMCOTH("1 + 1i")  → #VALUE!(スペースが入っている)
=IMCOTH("1+1I")   → #VALUE!(全角の I)
=IMCOTH("1+1i")    → 正常

セル参照で文字列を組み立てているなら、TRIM や SUBSTITUTE で全角を半角に置換しておくと事故が減ります。

=IMCOTH(SUBSTITUTE(TRIM(A1), "I", "i"))

#NUM! エラー: i と j の混在

入力時の虚数単位は混ぜずに統一しましょう。

=IMPRODUCT(IMCOTH("1+1i"), IMTANH("1+1j"))   → #NUM!
=IMPRODUCT(IMCOTH("1+1i"), IMTANH("1+1i"))   → 約 "1"

電気工学(j)と物理(i)の慣習が混在するチームでは、入力時に SUBSTITUTE で統一する運用ルールを決めておくと安心です。

IMCOTH と関連関数(IMCOT・IMTANH・IMCOSH・IMSINH)の違いを整理

IM系の三角・双曲線関数は名前が似ているので混乱しがちです。「H」がつくか・「CO」がつくか・分子分母どちらかの3軸で整理しましょう。

関数計算内容定義式Excel搭載
IMCOTH双曲線余接coth(z) = cosh(z)/sinh(z)×
IMTANH双曲線正接tanh(z) = sinh(z)/cosh(z)×
IMCOSH双曲線余弦cosh(z) = (e^z + e^-z)/2
IMSINH双曲線正弦sinh(z) = (e^z – e^-z)/2
IMCOT余接(三角)cot(z) = cos(z)/sin(z)×
IMTAN正接(三角)tan(z) = sin(z)/cos(z)×
IMCOS余弦(三角)cos(z)
IMSIN正弦(三角)sin(z)

IMCOT と IMCOTH の見分け方

特に取り違えやすいのが IMCOT と IMCOTH です。たった1文字 H の違いですが、意味は完全に別物です。

比較項目IMCOTIMCOTH
種類三角関数(cot)双曲線関数(coth)
定義cos(z)/sin(z)cosh(z)/sinh(z)
周期π(実軸方向)iπ(虚軸方向)
実数 x の値域(-∞, ∞)(1, ∞) または (-∞, -1)
=IM???(1) の値0.642…1.313…

=IMCOT(1)0.642092615934331=IMCOTH(1)1.31303528549933 と全く違う値が返ります。数式入力時に必ず確認する習慣をつけましょう。

逆数ペア・商ペアの関係

IM系の関数は互いに数式で結ばれているので、暗記しなくても下の関係をひとつ覚えておけば導けます。

  • 逆数ペア: IMCOTH = 1 / IMTANH、IMCOT = 1 / IMTAN
  • 商ペア: IMCOTH(z) = IMCOSH(z) / IMSINH(z)、IMCOT(z) = IMCOS(z) / IMSIN(z)
  • 三角↔双曲線: cot(iy) · i = -coth(y)、coth(iy) · i = -cot(y)

関連記事として、IMCOSH関数(複素数の双曲線余弦)IMSINH関数(複素数の双曲線正弦)IMTANH関数(複素数の双曲線正接)IMCOT関数(複素数の余接)IMCOS関数(複素数の余弦)IMDIV関数(複素数の除算)IMPRODUCT関数(複素数の乗算)IMREAL関数(実部)IMAGINARY関数(虚部)IMABS関数(絶対値)COMPLEX関数(複素数の生成) もあわせて確認しておくと、複素数関数まわりがすっきり整理できます。

スプレッドシートのIMCOTH関数 よくある質問(FAQ)

Q1. IMCOTHはExcelでも使えますか?

使えません。Microsoft 365 Excel でも IMCOTH は搭載されていません(2026年現在)。IMCOSH や IMSINH はExcelにありますが、IMCOTH と IMCOT は Googleスプレッドシート専用です。Excelで同じ計算をしたいときは =IMDIV(IMCOSH(A1), IMSINH(A1)) の代用式を使ってください。

Q2. 戻り値が文字列なのが扱いづらいです。実部だけ数値で欲しいときは?

IMREAL関数で実部だけ取り出せます。

=IMREAL(IMCOTH("1+1i"))   → 0.868014142895925(数値型)

虚部だけなら =IMAGINARY(IMCOTH("1+1i"))、絶対値なら =IMABS(IMCOTH("1+1i")) です。文字列のまま扱うのが面倒なときは、最初に実部・虚部の2列に分解してしまうのがおすすめです。

Q3. 複素数の coth って実務でいつ使うの?

代表例は伝送線理論の特性インピーダンス計算です。終端開放の伝送線の入力インピーダンスは Z_in = Z_0 · coth(γL) で表され、伝搬定数 γ = α + jβ が複素数なので coth の引数も複素数になります。他にも分布定数回路・制御系の安定性解析・量子統計の温度依存項などで顔を出します。

Q4. coth(z) の結果が無限大に飛びました。バグですか?

バグではなく極(特異点)の挙動です。coth(z) は z = nπi(n は整数)で発散します。z = 0 はもちろん、"0+3.14159265i"(≒πi)や "0+6.28318530i"(≒2πi)でも #NUM! になります。極の近傍では数値計算の精度が落ちるので、物理計算で z が極の近くに来る場合は近似展開(ローラン展開)を使うのが安全です。

Q5. 入力で i と j が混在するとなぜ #NUM! になりますか?

スプレッドシートの複素数関数は、シリアライズされた文字列形式(”x+yi” または “x+yj”)の i/j を見て複素数として解釈します。IMPRODUCT("1+1i", "2+1j") のように虚数単位が違うと、ライブラリ側で「同じ複素数体での演算ではない」と判定して #NUM! を返す仕様です。シート全体で ij のどちらかに統一しましょう。

Q6. coth(z) の周期性を確かめたいです

coth(z) は虚数方向に周期 iπ を持ちます。確かめてみましょう。

=IMCOTH("1+1i")              → 0.868014142895925-0.217621561854403i
=IMCOTH("1+4.14159265i")     → 0.868014142895925-0.217621561854403i(≒ 1+1i+πi)

実部はそのまま、虚部に π を足した値で同じ結果になります。三角関数の cot が実軸方向に π の周期を持つのと対応関係にある現象です。

まとめ

GoogleスプレッドシートのIMCOTH関数について、ポイントを振り返ります。

  • IMCOTH は複素数の双曲線余接 coth(z) = cosh(z)/sinh(z) を求める関数で、構文は IMCOTH(数値)
  • Excelには存在しない、Googleスプレッドシート独自の関数。Excel互換が必要なら =IMDIV(IMCOSH(z), IMSINH(z)) で代用する
  • 戻り値は “x+yi” 形式の文字列。IMREAL・IMAGINARY・IMABS で分解可能。実数引数なら数値型で返る
  • 虚数単位は ij のどちらでも可だが、シート内で必ず統一する(混在は #NUM! の原因)
  • 極(z = 0, ±πi, ±2πi, …)では #NUM! になる。これは数学的に発散する点で、極の近傍では数値精度も落ちる
  • IMCOT(三角関数)と IMCOTH(双曲線関数)は H 1文字違いで全く別物。値も周期もまったく異なるので入力時に必ず確認

複素数の coth が必要になる場面は限られますが、伝送線理論や制御系の安定性解析で出くわしたとき、スプレッドシート1枚で完結できるのは大きな助けになります。関連する IMCOSH・IMSINH・IMTANH・IMCOT も合わせて引ける形にしておくと、複素関数の計算が一気にスムーズになります。

タイトルとURLをコピーしました