「Excelで双曲線関数なんて使うの?」と思うかもしれませんが、ACOSH関数はケーブルの垂れ下がりや物理シミュレーションなど、意外な場面で登場します。ただ、引数の制約やエラーの原因を知らないまま使うと、#NUM!エラーに悩まされることも少なくありません。
この記事では、ExcelのACOSH関数の基本的な使い方を丁寧に解説します。定義式の検算、カテナリー曲線への応用、エラー対処法もカバーします。
ACOSH関数とは?双曲線逆余弦の基本
ACOSH関数は、双曲線余弦(COSH)の逆関数にあたるExcelの数学関数です。
読み方は「アーク・コサイン・ハイパーボリック」です。日本語では「逆双曲線余弦」とも呼ばれます。
ひとことで言うと、「COSHで変換された値を、元に戻す」ための関数です。COSHが「入力→出力」の変換だとすると、ACOSHは「出力→入力」へ逆算する役割を担います。
対応バージョンはExcel 2007以降、Microsoft 365、Web版です。
COSH関数との逆関数の関係
ACOSHを理解するには、まずCOSH関数との関係を押さえておきましょう。
COSH関数は双曲線余弦(ハイパーボリック・コサイン)を返す関数です。たとえば =COSH(1) と入力すると、約1.543が返ります。
ACOSH関数はこの逆の計算をします。=ACOSH(1.543080634) と入力すると、元の値「1」が返ってきますよ。
ACOSH(COSH(x)) = x が成り立つ逆関数の直感
逆関数の関係をひとことで表すと、次の等式になります。
ACOSH(COSH(x)) = x
つまり、COSHで変換した結果をACOSHに渡すと、必ず元の値に戻ります。「行って帰ってくる」イメージですね。
この性質は、あとで紹介する検算テーブルで実際に確認できます。
ACOSH関数の構文・引数
構文: =ACOSH(数値)
=ACOSH(数値)
引数は「数値」のひとつだけです。とてもシンプルな構文ですね。
引数は1以上の実数のみ
| 引数 | 必須 | 説明 |
|---|---|---|
| 数値 | はい | 逆双曲線余弦を求めたい値。1以上の実数を指定 |
引数が1未満だと#NUM!エラーになります。0や負の数は指定できません。
なぜ1以上なのでしょうか。ACOSHの数学的な定義式には平方根(SQRT(x²-1))が含まれています。xが1未満だとルートの中身が負になり、実数の範囲では計算できないためです。
COSH→ACOSHで逆算する基本的な使い方
ここでは、COSHの出力値をACOSHで元に戻す「逆算テーブル」を作ってみましょう。
Excelで逆算テーブルを作る手順
次のようにセルを配置します。
| セル | 内容 | 数式 |
|---|---|---|
| A2 | 元の値 | 1 |
| B2 | COSHの結果 | =COSH(A2) |
| C2 | ACOSHで逆算 | =ACOSH(B2) |
A列に元の値を入力し、B列でCOSH変換、C列でACOSH逆算を行います。
代表的な値を入れた結果はこちらです。
| 元の値(x) | COSH(x) | ACOSH(COSH(x)) |
|---|---|---|
| 0 | 1 | 0 |
| 1 | 1.543080634 | 1 |
| 2 | 3.762195691 | 2 |
| 3 | 10.06766200 | 3 |
| 5 | 74.20994852 | 5 |
ACOSH(COSH(x))で元の値が戻ることを確認
表のC列を見ると、すべてA列の元の値と一致していますよね。
=ACOSH(COSH(A2))
この数式をC列に入れるだけで、逆算が正しく機能していることを確認できます。COSHとACOSHがペアの関係であることが一目でわかりますよ。
定義式 LN(x+SQRT(x^2-1)) をExcelで再現して検算する
ACOSH関数の数学的な定義式は次のとおりです。
ACOSH(x) = LN(x + SQRT(x² - 1))
この定義式をExcelのセル式で再現すると、ACOSH関数の結果と一致するか検算できます。
定義式のセル式への書き換え
定義式をExcelの関数で書き換えると、次のようになります。
=LN(A2+SQRT(A2^2-1))
LN関数は自然対数を返す関数です。SQRT関数は平方根を返します。
ちょっとむずかしく見えますが、やっていることはシンプルです。「xにx²-1の平方根を足して、その自然対数を取る」だけですよ。
ACOSH関数の結果と完全一致を確認
実際にACOSH関数の結果と比較してみましょう。
| 数値(x) | =ACOSH(x) | =LN(x+SQRT(x^2-1)) | 一致 |
|---|---|---|---|
| 1 | 0 | 0 | Yes |
| 2 | 1.316957897 | 1.316957897 | Yes |
| 5 | 2.29243167 | 2.29243167 | Yes |
| 10 | 2.9932228 | 2.9932228 | Yes |
すべての値で完全に一致していますね。ACOSH関数は内部でこの定義式と同じ計算を行っています。
定義式を知っておくと、ACOSH関数が使えない古い環境でも同じ計算ができるので覚えておくと便利です。
実践活用例:カテナリー曲線の逆問題をExcelで解く
ここからは少し実践的な使い方を紹介します。ACOSH関数が実際に役立つ代表的な場面が、カテナリー曲線(懸垂線)の逆問題です。
カテナリー曲線とは
カテナリー曲線とは、両端を固定したロープやチェーンが自重で垂れ下がるときに描く曲線のことです。吊り橋のケーブルや電線の形状がこれにあたります。
カテナリー曲線は次の数式で表されます。
y = a × COSH(x / a)
ここで a はケーブルの張力に関するパラメータです。x は水平位置、y は高さを表します。
高さからパラメータを逆算するセル式
「ケーブルの高さyがわかっていて、水平位置xを求めたい」という逆問題を解くには、ACOSHを使います。
カテナリーの式を変形すると次のようになります。
x = a × ACOSH(y / a)
たとえば、パラメータ a = 10、高さ y = 15 のとき、水平位置xは次の数式で求められます。
=10*ACOSH(15/10)
結果: 9.624236501
この計算をExcelのセルに入力するだけで、ケーブルの高さから水平位置を逆算できますよ。
| パラメータa | 高さy | 数式 | 水平位置x |
|---|---|---|---|
| 10 | 10 | =10*ACOSH(10/10) | 0 |
| 10 | 12 | =10*ACOSH(12/10) | 6.267456592 |
| 10 | 15 | =10*ACOSH(15/10) | 9.624236501 |
| 10 | 20 | =10*ACOSH(20/10) | 13.16957897 |
建築や土木の分野では、こうした逆算がケーブル設計で使われています。Excelなら数式ひとつで済むのがポイントです!
よくあるエラーと対処法
ACOSH関数で発生しやすいエラーは2種類です。
#NUM!エラー
原因: 引数に1未満の値を指定した場合に発生します。
=ACOSH(0.5) → #NUM!エラー
=ACOSH(0) → #NUM!エラー
=ACOSH(-1) → #NUM!エラー
対処法: 引数が1以上であることを事前にチェックしましょう。IF関数と組み合わせると安全です。
=IF(A2>=1, ACOSH(A2), "1以上の値を入力")
この数式なら、A2が1未満のときはメッセージを表示してエラーを回避できますよ。
#VALUE!エラー
原因: 引数に文字列など、数値として認識できないデータを指定した場合に発生します。
=ACOSH("abc") → #VALUE!エラー
対処法: 引数のセルに数値が入っているか確認してください。ISNUMBER関数で事前チェックもできます。
ACOS関数との混同
ACOS関数とACOSH関数は名前が似ていますが、まったく別の関数です。入力をまちがえて=ACOS(5)と書くと#NUM!エラーになります。
ACOS関数の引数は-1から1の範囲だけです。1以上の値を扱いたいときはACOSH関数を使ってくださいね。
似た関数との違い・使い分け(比較表)
ACOSH関数と混同しやすい関数を比較表にまとめました。
| 関数 | 分類 | 引数の範囲 | 戻り値の範囲 | 用途 |
|---|---|---|---|---|
| ACOSH | 逆双曲線関数 | 1以上 | 0以上の実数 | COSHの逆算 |
| ACOS | 逆三角関数 | -1〜1 | 0〜π(ラジアン) | 角度の逆算 |
| COSH | 双曲線関数 | すべての実数 | 1以上 | 双曲線余弦の計算 |
| ASINH | 逆双曲線関数 | すべての実数 | すべての実数 | SINHの逆算 |
| ATANH | 逆双曲線関数 | -1より大きく1未満 | すべての実数 | TANHの逆算 |
ポイントは引数の範囲の違いです。ACOSHは「1以上」、ACOSは「-1から1」と正反対に近い制約があります。どちらを使うかは、扱うデータの範囲で判断してください。
逆双曲線関数のファミリーとしては、ACOSH・ASINH・ATANHの3つが双対をなします。それぞれCOSH・SINH・TANHの逆算に対応しているので、セットで覚えておくと迷いにくいですよ。
まとめ
ExcelのACOSH関数について解説しました。要点を振り返りましょう。
- ACOSH関数はCOSH関数の逆関数で、
=ACOSH(数値)と書く - 引数は1以上の実数のみ。1未満だと
#NUM!エラーになる - 定義式は
LN(x+SQRT(x²-1))で、Excelで再現して検算できる - カテナリー曲線の逆問題など、工学分野で活用できる
- ACOS関数とは名前が似ているだけで、引数の範囲も用途もまったく異なる
双曲線関数ファミリーの他の関数もあわせてチェックすると、理解が深まりますよ。
Googleスプレッドシートでも同じACOSH関数が使えます。スプレッドシート版の解説はこちらの記事を参考にしてください。
