スプレッドシートでタンジェント値から元の角度を逆算したいとき、どう計算すればいいか迷っていませんか?
「TAN関数で角度からタンジェント値は求められるけど、その逆はどうやるの?」と感じますよね。
そんなときに使うのがATAN関数です。=ATAN(値) と書くだけで、タンジェント値から対応する角度(ラジアン)を返してくれます。
この記事では基本の書き方から、DEGREES関数と組み合わせた度数法への変換、勾配から傾斜角を求める実務活用、ATAN2関数との違いまで紹介します。
スプレッドシートのATAN関数とは?
ATAN関数(読み方: アークタンジェント関数)は、タンジェント値から角度(ラジアン)を逆算する関数です。TAN関数の逆関数にあたります。
たとえば =DEGREES(ATAN(1)) と入力すると「45」が返ります。タンジェント値1に対応する角度が45度だとわかるわけですね。
ATAN関数は任意の実数を引数に取れます。ASIN関数やACOS関数と違って-1から1の範囲制限がないので、#NUM!エラーの心配がありません。結果はラジアン単位で返ります。度数法(30度、45度など)で結果を得たい場合は、DEGREES関数で変換します。
ATAN関数にできることをまとめると、次のとおりです。
- タンジェント値から対応する角度(ラジアン)を返す
- DEGREES関数と組み合わせて度数法の角度に変換する
- 勾配率(高さ/水平距離)から傾斜角を逆算する
- TAN関数と組み合わせて三角関数の逆変換を行う
NOTE
ATAN関数はGoogleスプレッドシートの全バージョンで使えます。Excelとも完全に互換性があるので、ファイルのやり取りでも安心です。
ATAN関数の書き方(構文と引数)
基本構文
=ATAN(値)
カッコの中に正接(タンジェント)の値を指定します。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 値 | 必須 | 逆正接を求めたい数値。任意の実数を指定できる |
引数は1つだけです。ASIN関数やACOS関数と違い、値の範囲に制限はありません。どんな数値でも受け付けるので、#NUM!エラーが起きない点がATAN関数の特徴です。
戻り値の範囲
ATAN関数が返す値は -PI()/2 から PI()/2 まで(度数法で-90度から90度)です。ただし、-90度と90度ちょうどは含みません。
=ATAN(-1000000) → -1.5707...(-90度に近い値)
=ATAN(0) → 0(0度)
=ATAN(1000000) → 1.5707...(90度に近い値)
戻り値はラジアンです。度数法で使いたい場合は、DEGREES関数で変換しましょう。
TIP
ATAN関数の値は引数を大きくしても90度を超えません。引数が大きくなるほど90度に近づいていきますが、厳密に90度になることはありません。数学的には「漸近的に90度に収束する」と表現します。
ATAN関数の基本的な使い方
ラジアンで結果を得る
まずはATAN関数をそのまま使うパターンです。
=ATAN(1)
結果は「0.7853…」です。これはPI()/4と同じ値で、45度をラジアンで表したものですね。
代表的な値とATANの結果をまとめます。
| 数式 | タンジェント値 | 結果(ラジアン) | 角度に換算 |
|---|---|---|---|
| =ATAN(0) | 0 | 0 | 0度 |
| =ATAN(0.5774…) | 0.5774… | 0.5235… | 30度 |
| =ATAN(1) | 1 | 0.7853… | 45度 |
| =ATAN(1.7321…) | 1.7321… | 1.0471… | 60度 |
| =ATAN(100) | 100 | 1.5607… | 約89.4度 |
ラジアンのまま使う場面は少ないかもしれません。次のDEGREES関数との組み合わせが実務では便利です。
DEGREES関数と組み合わせて度数法で結果を得る
実務では角度を「度」で扱うことがほとんどです。DEGREES関数と組み合わせれば、結果を度数法で取得できます。
=DEGREES(ATAN(1))
結果は「45」です。タンジェント値1の角度が45度だと、そのまま読み取れますね。
よく使う値の早見表を用意しました。
| タンジェント値 | 数式 | 結果(度) |
|---|---|---|
| 0 | =DEGREES(ATAN(0)) | 0 |
| 0.5774… | =DEGREES(ATAN(SQRT(3)/3)) | 30 |
| 1 | =DEGREES(ATAN(1)) | 45 |
| 1.7321… | =DEGREES(ATAN(SQRT(3))) | 60 |
| -1 | =DEGREES(ATAN(-1)) | -45 |
SQRT(3)/3 は約0.5774、SQRT(3) は約1.7321 です。数学の教科書でおなじみの値ですね。
TAN関数との逆変換を確認する
ATAN関数がTAN関数の逆関数であることを、実際に確認してみましょう。
=TAN(RADIANS(45)) → 1
=DEGREES(ATAN(1)) → 45
TAN関数で45度からタンジェント値1を求め、ATAN関数で1から45度に戻せています。元の角度に戻るわけですね。
=DEGREES(ATAN(TAN(RADIANS(45)))) → 45
このように入れ子にしても、元の角度が復元されます。
NOTE
TAN関数とATAN関数の逆変換が成立するのは、角度が-90度から90度の範囲のときだけです。たとえば135度のTAN値は-1ですが、ATAN(-1)は-45度を返します。これはATAN関数の戻り値が-90度~90度に限定されるためです。
実務でのATAN関数活用例
勾配率から傾斜角を求める
ATAN関数がもっとも活躍するのは、勾配から角度を求める場面です。高さと水平距離の比率(勾配率)がわかれば、傾斜角を計算できます。
勾配率は「高さ / 水平距離」で計算します。この値はタンジェントの定義そのものなので、ATAN関数で傾斜角に変換できます。
=DEGREES(ATAN(高さ/水平距離))
サンプルデータで計算してみましょう。
| 高さ(A列) | 水平距離(B列) | 数式 | 傾斜角 |
|---|---|---|---|
| 1 | 10 | =DEGREES(ATAN(A2/B2)) | 5.71度 |
| 3 | 10 | =DEGREES(ATAN(A3/B3)) | 16.70度 |
| 5 | 10 | =DEGREES(ATAN(A4/B4)) | 26.57度 |
| 10 | 10 | =DEGREES(ATAN(A5/B5)) | 45.00度 |
高さと水平距離が等しいとき(A5/B5 = 1)、傾斜角は45度になります。TAN関数の記事で「TAN(45度) = 1」と解説した逆のパターンですね。
TIP
道路の勾配がパーセントで表示されている場合は、そのまま100で割ってATAN関数に渡せます。「勾配8%」なら
=DEGREES(ATAN(8/100))で約4.57度です。
仰角を計算する
建物の高さと水平距離から仰角を求める場面でもATAN関数が使えます。
たとえば高さ20mのビルから50m離れた地点での仰角を計算します。目の高さを1.5mとすると、見上げる高さは18.5m(20 – 1.5)です。
=DEGREES(ATAN((20-1.5)/50))
結果は「20.30…」です。仰角は約20.3度ですね。
いくつかのパターンで計算してみましょう。
| 対象 | 対象の高さ(A列) | 水平距離(B列) | 数式 | 仰角 |
|---|---|---|---|---|
| 電柱 | 8m | 10m | =DEGREES(ATAN((A2-1.5)/B2)) | 33.02度 |
| ビル | 20m | 50m | =DEGREES(ATAN((A3-1.5)/B3)) | 20.30度 |
| タワー | 100m | 200m | =DEGREES(ATAN((A4-1.5)/B4)) | 26.18度 |
TIP
ASIN関数でも仰角を計算できますが、斜辺の長さが必要です。水平距離と高さがわかっている場合はATAN関数を使うのが自然ですよ。
座標から方向角を求める
2点の座標差から方向角を計算する場面にもATAN関数が使えます。
たとえばA地点(0, 0)からB地点(3, 4)への方向角は、次の式で求まります。
=DEGREES(ATAN(4/3))
結果は「53.13度」です。X軸方向からの角度が約53度とわかります。
ただし、ATAN関数は-90度~90度の範囲しか返せません。B地点が左側(X座標がマイナス)にある場合は正しい方向角が得られないことがあります。そのようなケースではATAN2関数を使います。詳しくは「ATAN2関数との違い」のセクションで解説しますね。
よくあるエラーと対処法
ATAN関数でよくあるトラブルをまとめます。
| 症状 | 原因 | 対処法 |
|---|---|---|
| #VALUE! エラー | 引数に文字列を渡した | 数値またはセル参照を指定する |
| 結果がラジアンで読みにくい | DEGREES関数で変換していない | =DEGREES(ATAN(値)) とする |
| 期待と違う角度が返る | 角度の象限を考慮していない | ATAN2関数の利用を検討する |
| #DIV/0! エラー | ATAN自体ではなく勾配計算で0割り | 水平距離が0でないか確認する |
ラジアンと度数法の変換忘れ
ATAN関数の結果はラジアンです。度数法の角度が欲しいのにDEGREES関数を忘れると、見慣れない数値になります。
=ATAN(1) → 0.7853...(ラジアン)
=DEGREES(ATAN(1)) → 45(度数法)
「なんだか小さい数値が返ってきたな」と思ったら、DEGREES関数の付け忘れを疑ってみてください。
勾配計算での#DIV/0!エラー
ATAN関数自体は#NUM!エラーが発生しません。ただし、勾配を計算する際に水平距離が0のセルがあると、割り算の時点で#DIV/0!エラーになります。
=DEGREES(ATAN(A2/B2)) ← B2が0だと#DIV/0!
IFERROR関数で対処しましょう。
=IFERROR(DEGREES(ATAN(A2/B2)), "距離0")
なお、水平距離が0で高さがある場合は角度が90度です。厳密に処理したい場合はIF関数で場合分けしてください。
=IF(B2=0, 90, DEGREES(ATAN(A2/B2)))
ATAN2関数との違い
ATAN関数に似た関数としてATAN2関数があります。どちらもタンジェント値から角度を求めますが、使い方と戻り値の範囲が異なります。
| 項目 | ATAN | ATAN2 |
|---|---|---|
| 構文 | =ATAN(値) | =ATAN2(x, y) |
| 引数 | タンジェント値1つ | X座標とY座標の2つ |
| 戻り値の範囲 | -PI()/2 ~ PI()/2(-90度~90度) | -PI() ~ PI()(-180度~180度) |
| 象限の判定 | できない | できる(4象限すべて対応) |
| 主な用途 | 勾配から角度を求める | 座標から方向角を求める |
ATAN2関数を使う場面
ATAN関数は戻り値が-90度~90度に限られるため、4方向すべての角度を判定できません。
たとえば座標(3, 4)と(-3, -4)の方向角を考えてみましょう。
=DEGREES(ATAN(4/3)) → 53.13度
=DEGREES(ATAN(-4/-3)) → 53.13度(本当は-126.87度)
ATAN関数ではどちらも同じ結果になってしまいます。4/3 と -4/-3 は同じ値だからです。
ATAN2関数ならX座標とY座標を別々に渡すので、象限を正しく判定できます。
=DEGREES(ATAN2(3, 4)) → 53.13度
=DEGREES(ATAN2(-3, -4)) → -126.87度
座標から方向角を求めたい場合はATAN2関数を使いましょう。単純な勾配から角度を求めるだけならATAN関数で十分ですよ。
NOTE
GoogleスプレッドシートのATAN2関数は
=ATAN2(x, y)の順番で、Excelでも同じく=ATAN2(x_num, y_num)の順番です。どちらの環境でも同じ書き方で使えますよ。
似た関数との違い・使い分け
| 関数 | 動作 | 引数 | 用途 |
|---|---|---|---|
| ATAN | 逆正接(アークタンジェント)を返す | 任意の実数 | タンジェント値から角度を逆算 |
| ATAN2 | 2引数の逆正接を返す | X座標, Y座標 | 座標から方向角を求める(全象限対応) |
| TAN | 正接(タンジェント)を返す | 角度(ラジアン) | 角度からタンジェント値を求める |
| SIN | 正弦(サイン)を返す | 角度(ラジアン) | Y座標・波形データ |
| COS | 余弦(コサイン)を返す | 角度(ラジアン) | X座標・距離計算 |
| ASIN | 逆正弦(アークサイン)を返す | -1~1の値 | サイン値から角度を逆算 |
| ACOS | 逆余弦(アークコサイン)を返す | -1~1の値 | コサイン値から角度を逆算 |
| DEGREES | ラジアンを度数法に変換する | ラジアン値 | ATAN/ASIN/ACOSの結果変換 |
ASIN・ACOS・ATANの使い分け
3つの逆三角関数は、どの三角比から角度を求めるかで使い分けます。
- ASIN: 高さ/斜辺(sin値)から角度を求める
- ACOS: 底辺/斜辺(cos値)から角度を求める
- ATAN: 高さ/底辺(tan値)から角度を求める
どの値がわかっているかで、使う関数が決まります。実務で高さと水平距離がわかっている場面が多いので、ATAN関数の出番が一番多いかもしれませんね。
TAN関数との逆変換
TAN関数とATAN関数は、入力と出力が逆の関係です。
TAN: 角度(ラジアン) → タンジェント値
ATAN: タンジェント値 → 角度(ラジアン)
TAN関数が「角度からタンジェント値」を求めるのに対して、ATAN関数は「タンジェント値から角度」を逆算します。セットで覚えておくと便利ですよ。
まとめ
ATAN関数は、タンジェント値から角度(ラジアン)を逆算する関数です。
ポイントを整理します。
- 構文は
=ATAN(値)で、引数は任意の実数(範囲制限なし) - 結果はラジアンで返るので、度数法には
=DEGREES(ATAN(値))と変換する - ATAN(1) = 0.7853…(45度)が代表的な値
- 勾配から傾斜角を求めるなら
=DEGREES(ATAN(高さ/水平距離))が使える - 座標から方向角を求めるなら、全象限に対応できるATAN2関数を使う
- ASIN・ACOSと違って引数の範囲制限がなく、#NUM!エラーが起きない
まずは =DEGREES(ATAN(1)) で45が返ることを確認してみてください。
