「ExcelにTANH関数ってあるけど、どう使うの?」と疑問に思ったことはありませんか。双曲線正接(ハイパーボリックタンジェント)と聞くと難しそうですよね。でも実は、機械学習の活性化関数やデータの正規化で広く使われている実用的な関数なんです。
この記事では、ExcelのTANH関数の使い方を基本から丁寧に解説します。定義式の検算、出力範囲の特徴、エラー対処まで一記事でカバーしますよ。
ExcelのTANH関数とは?
TANH関数は、指定した数値の双曲線正接(ハイパーボリックタンジェント)を返す関数です。
読み方と語源
読み方は「ハイパーボリックタンジェント」です。「タンエイチ」や「タンチ」と呼ばれることもあります。
TANHは「Tangent Hyperbolic」の略です。通常の三角関数のTAN(正接)に「H(Hyperbolic=双曲線)」が付いた形ですよ。
数学的な定義
TANH関数の定義式は次のとおりです。
tanh(x) = sinh(x) / cosh(x) = (e^x – e^(-x)) / (e^x + e^(-x))
ここでeはネイピア数(自然対数の底、約2.71828)です。SINH関数とCOSH関数の比で表されるのがポイントですね。
入力と出力のイメージ
- 入力: 任意の実数(正・負・ゼロいずれもOK)
- 出力: 必ず-1より大きく1より小さい値(-1 < tanh(x) < 1)
たとえばTANH(0)は0、TANH(1)は約0.7616、TANH(5)は約0.9999を返します。入力がどんなに大きくても、出力は1を超えません。この「値を-1から1の間に押し込む」性質が、TANH関数の最大の特徴です。
ExcelのTANH関数の書き方
基本構文
=TANH(数値)
引数はひとつだけなので、とてもシンプルですよ。
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 数値 | 必須 | 双曲線正接を求めたい実数を指定します。セル参照・数式・直接入力のいずれもOKです |
注意: テキスト文字列を渡すと#VALUE!エラーになります。数値に変換できる値を指定してください。
戻り値
指定した数値の双曲線正接を返します。結果は必ず-1より大きく1より小さい範囲に収まります。
ExcelのTANH関数の基本的な使い方
実際にTANH関数を使ってみましょう。
セルの値から双曲線正接を求める
A列に数値を入力し、B列でTANH関数を使います。
| A列(数値) | B列(数式) | B列(結果) | |
|---|---|---|---|
| 1 | 0 | =TANH(A1) | 0 |
| 2 | 1 | =TANH(A2) | 0.7616… |
| 3 | -1 | =TANH(A3) | -0.7616… |
| 4 | 2 | =TANH(A4) | 0.9640… |
| 5 | 5 | =TANH(A5) | 0.9999… |
| 6 | 10 | =TANH(A6) | 1.0000… |
数値が大きくなるほど結果は1に近づきますが、1になることはありません。これがSINH関数やCOSH関数と大きく異なる点ですよ。
数式に直接値を入力する
セル参照を使わず、数値を直接書くこともできます。
=TANH(0.5)
結果は約0.4621です。ちょっとした検算にはこの書き方が便利ですよ。
TANH関数の定義式をSINH・COSH関数で検算する
TANH関数の結果が正しいか確かめたいときは、定義式を使って検算してみましょう。
SINH関数とCOSH関数で再現する
tanh(x) = sinh(x) / cosh(x) なので、次のように書けます。
=SINH(A1)/COSH(A1)
この数式とTANH(A1)の結果が一致すれば、定義どおりに計算できていると確認できますよ。
EXP関数で定義式を直接計算する
EXP関数を使えば、定義式そのものを再現できます。
=(EXP(A1)-EXP(-A1))/(EXP(A1)+EXP(-A1))
検算結果の比較表
A1にさまざまな値を入れて比較してみましょう。
| 数値 | TANH(A1) | SINH(A1)/COSH(A1) | EXP式 | 一致 |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | はい |
| 1 | 0.76159… | 0.76159… | 0.76159… | はい |
| -2 | -0.96403… | -0.96403… | -0.96403… | はい |
| 5 | 0.99991… | 0.99991… | 0.99991… | はい |
すべて一致しますね。SINH関数やCOSH関数が使えない環境では、EXP関数の式で代替できます。
TANH関数の性質を確認する(奇関数と収束)
TANH関数には覚えておきたい2つの性質があります。
奇関数の性質
TANH関数は「奇関数」です。つまり、tanh(-x) = -tanh(x) が常に成り立ちます。グラフは原点に対して点対称になりますよ。
| 数値 x | TANH(x) | TANH(-x) | -TANH(x) | 一致? |
|---|---|---|---|---|
| 1 | 0.76159 | -0.76159 | -0.76159 | はい |
| 3 | 0.99505 | -0.99505 | -0.99505 | はい |
| 0.5 | 0.46212 | -0.46212 | -0.46212 | はい |
これはSINH関数が奇関数、COSH関数が偶関数であることから導かれます。奇関数を偶関数で割ると奇関数になるんですね。
出力が-1から1に収束する性質
TANH関数の最大の特徴は、入力がどれだけ大きくても出力が-1と1の間に収まることです。
| 数値 x | TANH(x) |
|---|---|
| 0.5 | 0.4621 |
| 1 | 0.7616 |
| 2 | 0.9640 |
| 5 | 0.9999 |
| 10 | 1.0000(※厳密には1未満) |
| 100 | 1.0000(※厳密には1未満) |
xが大きくなるにつれて1に限りなく近づきますが、決して1にはなりません。この性質は「漸近的(ぜんきんてき)に1に近づく」と表現します。機械学習でニューラルネットワークの活性化関数として使われるのは、この性質のおかげですよ。
双曲線関数の恒等式
TANH関数はSECH関数との間に、次の恒等式が成り立ちます。
tanh(x)^2 + sech(x)^2 = 1
三角関数の tan^2 + 1 = sec^2 に似た関係ですね。Excelで検証するなら、次の数式を使います。
=TANH(A1)^2+SECH(A1)^2
どんな値を入れても結果は1になりますよ。
TANH関数の実践的な活用例
データを-1から1の範囲に変換する(正規化)
大きくばらつくデータを-1から1の範囲に収めたいとき、TANH関数が役立ちます。
たとえば、気温の偏差データ(-50から+50)を正規化する場合です。
| A列(気温偏差) | B列(数式) | B列(結果) | |
|---|---|---|---|
| 1 | -30 | =TANH(A1) | -1.0000 |
| 2 | -5 | =TANH(A2) | -0.9999 |
| 3 | 0 | =TANH(A3) | 0 |
| 4 | 5 | =TANH(A4) | 0.9999 |
| 5 | 30 | =TANH(A5) | 1.0000 |
ただし、値が極端に大きいとほぼ1(または-1)に張り付いてしまいます。データの分布に合わせて入力をスケーリングするのがコツです。
=TANH(A1/10)
このように除算でスケールを調整すると、変換後の値に差をつけやすくなりますよ。
ATANH関数で元の値に逆算する
TANH関数で変換した値を元に戻したいときは、逆関数のATANH関数(双曲線逆正接)を使います。
=TANH(2) → 0.96403...
=ATANH(0.96403) → 2(元の値に戻る)
ATANH関数の入力は-1より大きく1より小さい値に限られます。TANH関数の出力はこの範囲に必ず収まるので、相性がよいですね。
よくあるエラーと対処法
#VALUE!エラー
原因: 引数に数値に変換できない文字列を指定した場合に発生します。
=TANH("abc") → #VALUE!
対処法: 引数がセル参照の場合、参照先に文字列が入っていないか確認しましょう。ISNUMBER関数(セルの値が数値かどうかを判定する関数)で事前にチェックする方法も有効ですよ。
=IF(ISNUMBER(A1),TANH(A1),"数値を入力してください")
#NAME?エラー
原因: 関数名のスペルミス(「TANH」を「TAHN」と書くなど)が原因です。
対処法: 数式バーに「=TA」と入力すると候補一覧が表示されます。そこからTANHを選ぶとスペルミスを防げますよ。
TANH関数では#NUM!エラーが出ない
SINH関数やCOSH関数では、極端に大きい値(絶対値が2^27以上)を入力すると#NUM!エラーになります。しかしTANH関数では#NUM!エラーは発生しません。
これはTANH関数の出力が常に-1から1の範囲に収まるため、計算結果がオーバーフローしないからです。どんなに大きな値を入れても安全に使えるのは、TANH関数ならではの利点ですよ。
TAN関数との違い・似た関数との使い分け
TAN関数とTANH関数の違い
| 比較項目 | TAN関数 | TANH関数 |
|---|---|---|
| 名前 | 正接(タンジェント) | 双曲線正接(ハイパーボリックタンジェント) |
| 数学の分類 | 三角関数 | 双曲線関数 |
| 定義 | 単位円上のy/x | sinh(x) / cosh(x) |
| 値の範囲 | 制限なし(負の無限大から正の無限大) | -1 < tanh(x) < 1 |
| 周期性 | あり(π周期) | なし |
| 主な用途 | 角度・勾配の計算 | 正規化・機械学習の活性化関数 |
TAN関数は値が無限大まで発散するのに対して、TANH関数は常に-1から1の間に収まります。名前は似ていますが、性質は正反対ですよ。
双曲線関数ファミリー6種の一覧
ExcelにはTANHを含む双曲線関数が6つ用意されています。
| 関数 | 名前 | 定義式 | 関連記事 |
|---|---|---|---|
| SINH | 双曲線正弦 | (e^x – e^(-x)) / 2 | SINH関数の使い方 |
| COSH | 双曲線余弦 | (e^x + e^(-x)) / 2 | COSH関数の使い方 |
| TANH | 双曲線正接 | sinh(x) / cosh(x) | この記事 |
| SECH | 双曲線正割 | 1 / cosh(x) | SECH関数の使い方 |
| CSCH | 双曲線余割 | 1 / sinh(x) | CSCH関数の使い方 |
| COTH | 双曲線余接 | cosh(x) / sinh(x) | COTH関数の使い方 |
TANH関数はSINH関数とCOSH関数の比で定義されています。この2つの関数が双曲線関数のベースになっているので、あわせて理解しておくとスムーズですよ。
ATANH関数(逆関数)との関係
ATANH関数はTANH関数の逆関数です。ATANH(y)は「TANH(x)=yとなるxの値」を返します。
ATANH関数の入力は-1から1の間(-1と1自体は含まない)に限られます。TANH関数の出力は常にこの範囲内なので、TANH → ATANHの逆算は必ず成功しますよ。
まとめ
ExcelのTANH関数は、数値の双曲線正接を求めるための関数です。
- 構文: =TANH(数値)。引数はひとつだけ
- 定義式: tanh(x) = sinh(x) / cosh(x)。SINH関数・COSH関数やEXP関数で検算できる
- 最大の特徴: 出力が必ず-1から1の範囲に収まる
- 奇関数の性質: tanh(-x) = -tanh(x) が常に成り立つ
- TAN関数との違い: TANは値が無限大に発散、TANHは-1から1に収束
データの正規化や機械学習の活性化関数としても知られる関数です。エラーが出たときは、引数に文字列が入っていないかを確認してみてくださいね。
