スプレッドシートで角度から正接(タンジェント)を求めたいとき、計算方法がわからず困っていませんか?
三角関数は数学のイメージが強くて、スプレッドシートでどう書けばいいか迷いますよね。
そんなときに使うのがTAN関数です。=TAN(角度) と書くだけで、指定した角度の正接(タンジェント)を返してくれます。
この記事では基本の書き方から、RADIANS関数との組み合わせ、勾配計算や高さの算出への活用まで紹介します。
スプレッドシートのTAN関数とは?
TAN関数(読み方: タンジェント関数)は、角度の正接(タンジェント)を返す関数です。語源はラテン語の「tangens(接する)」に由来します。
たとえば =TAN(RADIANS(45)) と入力すると「1」が返ります。45度の正接がそのまま取得できるわけですね。
TAN関数はラジアン単位の角度を引数に取ります。度数法(30度、45度など)を使いたい場合は、RADIANS関数で変換してから渡します。
TAN関数にできることをまとめると、次のとおりです。
- 角度のラジアン値から正接(タンジェント)を返す
- RADIANS関数と組み合わせて度数法の角度を使う
- 傾斜角から勾配率を計算する
- 仰角と距離から高さを求める
NOTE
TAN関数はGoogleスプレッドシートの全バージョンで使えます。Excelとも完全に互換性があるので、ファイルのやり取りでも安心です。
TAN関数の書き方(構文と引数)
基本構文
=TAN(角度)
カッコの中にラジアン単位の角度を指定します。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 角度 | 必須 | 正接を求めたい角度をラジアン単位で指定する |
引数は1つだけです。ラジアン単位で指定する点がポイントですね。
度数法の角度(30度、45度など)を使いたい場合は、次のどちらかで変換します。
=TAN(RADIANS(45)) ← RADIANS関数で変換
=TAN(45*PI()/180) ← PI関数を使って手計算
どちらも同じ結果(1)を返します。式がシンプルなRADIANS関数がおすすめですよ。
TIP
「ラジアン」とは角度の単位の一つです。360度 = 2π ラジアンの関係があります。詳しくはPI関数の記事の「度数法からラジアンに変換する」セクションをご覧ください。
TAN関数の基本的な使い方
ラジアンで角度を指定する
まずはラジアン値をそのまま渡すパターンです。
=TAN(0)
結果は「0」です。0ラジアン(0度)の正接は0ですね。
代表的なラジアン値とTANの結果をまとめます。
| 数式 | 角度 | 結果 |
|---|---|---|
| =TAN(0) | 0度 | 0 |
| =TAN(PI()/6) | 30度 | 0.5774… |
| =TAN(PI()/4) | 45度 | 1 |
| =TAN(PI()/3) | 60度 | 1.7321… |
| =TAN(PI()) | 180度 | -1.22E-16(ほぼ0) |
90度のTANは数学的には定義されません(無限大に発散します)。スプレッドシートでは非常に大きな値(1.63E+16程度)が返ります。
RADIANS関数と組み合わせて度数法で指定する
実務では度数法で角度を扱うことがほとんどです。RADIANS関数と組み合わせれば、度数法のまま使えます。
=TAN(RADIANS(45))
結果は「1」です。45度のタンジェントがそのまま求まりますね。
よく使う角度の早見表を用意しました。
| 角度 | 数式 | 結果 |
|---|---|---|
| 0度 | =TAN(RADIANS(0)) | 0 |
| 30度 | =TAN(RADIANS(30)) | 0.5774… |
| 45度 | =TAN(RADIANS(45)) | 1 |
| 60度 | =TAN(RADIANS(60)) | 1.7321… |
| 90度 | =TAN(RADIANS(90)) | 非常に大きい値(定義なし) |
| 135度 | =TAN(RADIANS(135)) | -1 |
| 180度 | =TAN(RADIANS(180)) | 0(微小誤差あり) |
90度のタンジェントは数学的に定義されません。コサインが0になるため、TAN=SIN/COSの計算で「0で割る」ことになるからです。
角度をセルに入れておけば、ドラッグでまとめて計算することもできます。
A列に角度を入力して、B1セルに次の式を入れてみてください。
=TAN(RADIANS(A1))
あとはB1をコピーして下方向に貼り付ければ、各角度の正接を一括で求められますよ。
実務でのTAN関数活用例
傾斜角から勾配率を計算する
TAN関数は勾配計算でとくに活躍します。傾斜角がわかれば、勾配率(水平距離に対する垂直距離の割合)を求められます。
勾配率は次の式で計算します。
=TAN(RADIANS(傾斜角))
たとえばA2セルに傾斜角「30」が入っている場合、次のように入力します。
=TAN(RADIANS(A2))
結果は「0.5774…」です。傾斜角30度の場合、水平100mに対して約57.7mの高低差があることを意味します。
いくつかの傾斜角と勾配率の対応を見てみましょう。
| 傾斜角(A列) | 数式 | 勾配率 | 意味 |
|---|---|---|---|
| 5度 | =TAN(RADIANS(5)) | 0.0875 | 緩やかな坂道 |
| 15度 | =TAN(RADIANS(15)) | 0.2679 | 急な坂道 |
| 30度 | =TAN(RADIANS(30)) | 0.5774 | 階段程度 |
| 45度 | =TAN(RADIANS(45)) | 1.0000 | 水平距離=垂直距離 |
勾配率をパーセントで表したい場合は、100を掛けてください。
=TAN(RADIANS(A2))*100
傾斜角5度なら「8.75%」の勾配になります。道路の勾配表示などで使える計算ですよ。
仰角と距離から高さを求める
建物や山の高さを求めるときにもTAN関数が便利です。地面からの仰角と水平距離がわかれば、高さを計算できます。
高さの計算式はこちらです。
=水平距離 * TAN(RADIANS(仰角))
たとえばビルから50m離れた地点で、ビルの頂上を見上げた仰角が60度の場合を計算しましょう。
=50*TAN(RADIANS(60))
結果は「86.60…」です。ビルの高さは約86.6mとわかります。
もう少し実践的な例を表にまとめます。
| 対象 | 水平距離(B列) | 仰角(C列) | 数式 | 高さ |
|---|---|---|---|---|
| 電柱 | 10m | 55度 | =B2*TAN(RADIANS(C2)) | 14.28m |
| ビル | 50m | 60度 | =B3*TAN(RADIANS(C3)) | 86.60m |
| 山 | 2000m | 15度 | =B4*TAN(RADIANS(C4)) | 535.90m |
TIP
目の高さを加えるとより正確になります。目の高さが1.6mなら
=B2*TAN(RADIANS(C2))+1.6としてください。
よくあるエラーと対処法
TAN関数でよくあるトラブルをまとめます。
| 症状 | 原因 | 対処法 |
|---|---|---|
| #VALUE! エラー | 引数に文字列を渡した | 数値またはセル参照を指定する |
| 期待と違う値が返る | 度数法をそのまま渡している | RADIANS関数で変換してから渡す |
| 非常に大きな値が返る | 90度(またはその奇数倍)を指定した | 90度のTANは定義されない。角度を確認する |
| 結果がほぼ0なのに0にならない | 浮動小数点の誤差 | ROUND関数で丸める |
度数法をそのまま渡すミスに注意
TAN関数でもっとも多いミスは、度数法の角度をそのまま渡してしまうことです。
=TAN(45)
この数式は「45ラジアン」の正接を計算します。結果は「1.6198…」で、45度のタンジェント(1)とは違う値です。
度数法で指定したい場合は、必ずRADIANS関数で変換しましょう。
=TAN(RADIANS(45))
こちらなら結果は「1」になります。
90度付近の値に注意する
TAN(RADIANS(90)) は数学的には定義されません。スプレッドシートでは「1.63317787…E+16」のような非常に大きな値が返ります。
これは浮動小数点の計算誤差で、RADIANS(90)が厳密なπ/2ではなく、ごくわずかにずれた値になるためです。
90度の倍数(270度、450度など)でも同様の現象が起きます。計算結果が極端に大きい場合は、角度の値を確認してみてください。
浮動小数点の誤差を丸める
TAN(RADIANS(180)) は数学的には0ですが、実際には微小な値が返ることがあります。
見た目を整えたい場合は、ROUND関数で丸めてください。
=ROUND(TAN(RADIANS(180)), 10)
結果は「0」になります。小数点以下10桁で丸めれば、実用上は問題ありませんよ。
似た関数との違い・使い分け
| 関数 | 動作 | 引数 | 用途 |
|---|---|---|---|
| TAN | 正接(タンジェント)を返す | 角度(ラジアン) | 勾配・傾き・高さの計算 |
| SIN | 正弦(サイン)を返す | 角度(ラジアン) | Y座標・波形データ |
| COS | 余弦(コサイン)を返す | 角度(ラジアン) | X座標・距離計算 |
| ATAN | 逆正接(アークタンジェント)を返す | 数値 | タンジェント値から角度を逆算 |
| RADIANS | 度数法をラジアンに変換する | 度数法の角度 | SIN/COS/TANの引数準備 |
| PI | 円周率πを返す | なし | 角度変換・円の計算 |
SIN・COS・TAN関数の関係
三角関数の3つの基本は、互いに密接な関係があります。
TAN(θ) = SIN(θ) / COS(θ)
SIN(θ)² + COS(θ)² = 1
TAN関数はSINをCOSで割った値です。たとえば45度のとき、SIN(RADIANS(45)) と COS(RADIANS(45)) はどちらも「0.7071…」です。0.7071 / 0.7071 = 1 なので、TAN(RADIANS(45)) = 1 になります。
90度のときCOS(RADIANS(90))が0になるため、TAN(RADIANS(90))は「0で割る」ことになり定義されません。
3つの関数はどれも引数にラジアン値を取ります。度数法で使いたい場合はRADIANS関数で変換する点も共通ですよ。
ATAN関数との関係
ATAN関数はTAN関数の逆関数です。TANが「角度→タンジェント値」を返すのに対して、ATANは「タンジェント値→角度(ラジアン)」を返します。
=TAN(RADIANS(45)) → 1
=DEGREES(ATAN(1)) → 45
勾配率から傾斜角を逆算したいときにATAN関数を使ってみてください。
まとめ
TAN関数は、ラジアン単位の角度から正接(タンジェント)を返す関数です。
ポイントを整理します。
- 構文は
=TAN(角度)で、引数はラジアン単位 - 度数法の角度を使うなら
=TAN(RADIANS(度))と変換する - TAN(RADIANS(45))=1 が代表的な値
- 傾斜角から勾配率を求めるなら
=TAN(RADIANS(角度)) - 仰角と距離から高さを求めるなら
=距離*TAN(RADIANS(仰角)) - 90度のTANは定義されない点に注意
- SIN関数・COS関数とセットで覚えておくと便利
まずは =TAN(RADIANS(45)) で1が返ることを確認してみてください。
