Excelで座標データから角度を求めようとして、思ったような結果が返ってこなくて困った経験はありませんか。三角関数の計算では、点がどの象限(しょうげん)にあるかで角度の出し方が変わるので、意外とつまずきやすいポイントです。
そんなときに頼りになるのが、Excelの ATAN2関数 です。x座標とy座標を指定するだけで、4つの象限すべてで正しい角度をラジアンで返してくれます。
この記事では、ATAN2関数の基本構文から、ラジアン・度数変換、方位角やベクトルといった実務活用例、ATAN関数との使い分け、よくあるエラーの対処法まで、コピペで使える数式つきで解説していきますね。
ExcelのATAN2関数とは?
まずはATAN2関数の基本から押さえていきましょう。
ATAN2関数の読み方と概要
ATAN2関数(読み方:アークタンジェントツー)は、指定したx座標とy座標から逆正接(アークタンジェント)を求める関数 です。関数名は「ATAN(逆正接 Arc Tangent)」に「2(2引数)」を組み合わせた形です。
逆正接とは、タンジェント(正接)の逆の操作です。タンジェントが「角度から比率を求める」のに対して、逆正接は「比率から角度を求める」計算になります。
ATAN2関数の最大の特徴は、座標の位置に応じて 4つの象限すべてで正しい角度を返せる ことです。後ほど比較するATAN関数では、第1象限と第4象限しか判定できないので、座標データを扱うなら ATAN2 のほうがずっと使いやすいですよ。
ATAN2関数で何ができる?
ATAN2関数を使うと、次のようなことができます。
- 座標(x, y)から原点との角度をラジアンで一発算出する
- 4象限すべてで符号つきの正しい角度(-π〜π)を返す
- DEGREES関数と組み合わせて度数(−180°〜180°)に変換する
- MOD関数と組み合わせて0°〜360°の範囲に正規化する
- ベクトルや方位角、極座標といった実務計算の基礎になる
「逆正接」と聞くと身構えてしまいますが、座標2つを指定するだけのシンプルな関数です。
NOTE
ATAN2関数は Excel 2007 以降のすべてのバージョンと Microsoft 365 で使えます。Googleスプレッドシートでも同じ構文で動作するので、ファイル形式を意識せず利用できますよ。
ATAN2関数の書き方(構文と引数)
基本構文
=ATAN2(x_num, y_num)
引数は 2つ必須 です。どちらも数値で指定し、セル参照でも直接入力でも構いません。
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| x_num | 必須 | 点のx座標(横方向)を指定します |
| y_num | 必須 | 点のy座標(縦方向)を指定します |
引数には、次のいずれも指定できます。
- セル参照(例:
A1) - 数値リテラル(例:
3や-4.5) - 数式の結果(例:
B2-B1)
戻り値の範囲とエラー
戻り値は -π〜π(およそ -3.14159〜3.14159)の範囲のラジアンです。度数で表示したい場合は、DEGREES関数で変換します。
注意点として、x_num と y_num が 両方とも0の場合は #DIV/0! エラー になります。原点(0, 0)では角度が定義できないためです。x が0 でも y が 0 でない場合は、エラーにならずきちんと角度(±π/2)を返してくれますよ。
TIP
数学の教科書ではatan2(y, x)と書かれることが多いですが、Excelでは x座標が先(=ATAN2(x, y)) です。プログラミング経験がある人ほど引数順を間違えやすいので、最初に「x→y の順」と意識しておきましょう。
ATAN2関数の基本的な使い方
実際にATAN2関数を使ってみましょう。座標(3, 4)の角度を求める例で説明します。
ラジアンで角度を求める
=ATAN2(3, 4)
結果は 0.9273 (ラジアン)になります。これは約 53.13度に相当します。
ラジアンは「半径1の円周上を移動した距離」で角度を表す単位で、π(約3.14)が180度に対応します。三角関数の計算で内部的に使われるのはラジアンなので、Excelの三角関数全般がラジアン基準になっていますよ。
度数に変換して表示する
ラジアンのままだと直感的に分かりにくいですよね。DEGREES関数と組み合わせると度数に変換できます。
=DEGREES(ATAN2(3, 4))
結果は 53.13 (度)になります。こちらのほうが日常感覚に近いですね。
逆に、度数で角度を持っていてラジアンに戻したい場合はRADIANS関数を使います。三角関数を扱うときは、DEGREES と RADIANS をセットで覚えておくと便利ですよ。
セル参照を使った指定
セルにx座標とy座標が入力されている場合は、セル参照で指定します。
A2セルにx座標「3」、B2セルにy座標「4」が入っているとすると、次のように書きます。
=DEGREES(ATAN2(A2, B2))
複数の座標データがあるときは、数式を下方向にコピーすれば一括で角度を計算できます。CADの図面処理や測量データの整理など、座標が大量にあるシーンで重宝しますよ。
単純な角度を確認する
ATAN2関数の挙動を体感するには、座標軸上の代表的な点で試してみるのが分かりやすいです。
| x | y | 数式 | 結果(度) | 意味 |
|---|---|---|---|---|
| 1 | 0 | =DEGREES(ATAN2(1,0)) | 0 | x軸プラス方向 |
| 0 | 1 | =DEGREES(ATAN2(0,1)) | 90 | y軸プラス方向 |
| -1 | 0 | =DEGREES(ATAN2(-1,0)) | 180 | x軸マイナス方向 |
| 0 | -1 | =DEGREES(ATAN2(0,-1)) | -90 | y軸マイナス方向 |
x軸プラス方向(東向き)が0度、y軸プラス方向(北向き)が90度、というイメージをつかんでおくと、後の応用例がスッと入ってきます。
ATAN2関数の実践的な活用例
4つの象限での角度計算
ATAN2関数が本領を発揮するのは、座標が4つの象限に分かれるケースです。各象限での計算結果を表で確認してみましょう。
| 象限 | x | y | 数式 | 結果(度) |
|---|---|---|---|---|
| 第1象限 | 3 | 4 | =DEGREES(ATAN2(3,4)) | 53.13 |
| 第2象限 | -3 | 4 | =DEGREES(ATAN2(-3,4)) | 126.87 |
| 第3象限 | -3 | -4 | =DEGREES(ATAN2(-3,-4)) | -126.87 |
| 第4象限 | 3 | -4 | =DEGREES(ATAN2(3,-4)) | -53.13 |
座標がどの象限にあっても、正しく方向を区別できているのが分かりますね。同じ「y/x = 4/3」の比率でも、第1象限と第3象限では180度ずれた点になりますが、ATAN関数だとこの違いを区別できません。ATAN2関数ならではの強みです。
0〜360度の範囲に変換する
ATAN2関数の戻り値は -180度〜180度の範囲です。方位角や図面の角度表記など、0〜360度の範囲で扱いたいときは、MOD関数と組み合わせます。
=MOD(DEGREES(ATAN2(x座標, y座標)), 360)
たとえば座標(-3, -4)の場合、ATAN2 単独だと -126.87度ですが、この数式を使うと 233.13度 に変換されます。
| x | y | -180〜180度 | 0〜360度 |
|---|---|---|---|
| 3 | 4 | 53.13 | 53.13 |
| -3 | 4 | 126.87 | 126.87 |
| -3 | -4 | -126.87 | 233.13 |
| 3 | -4 | -53.13 | 306.87 |
報告書や図面で「絶対値の角度」が必要な場面で覚えておくと便利です。
2点間の角度を求める
原点(0, 0)からの角度ではなく、2点間(始点→終点)の角度 を求めたいケースもよくあります。座標の差分を引数に渡せばOKです。
A2:B2 が始点、C2:D2 が終点とすると、次のようになります。
=DEGREES(ATAN2(C2-A2, D2-B2))
| 始点(x,y) | 終点(x,y) | 数式 | 結果(度) |
|---|---|---|---|
| (1,1) | (4,5) | =DEGREES(ATAN2(4-1, 5-1)) | 53.13 |
| (2,3) | (2,7) | =DEGREES(ATAN2(0, 4)) | 90 |
| (5,5) | (1,2) | =DEGREES(ATAN2(-4, -3)) | -143.13 |
CADの作図、ロボットの進行方向計算、移動経路の解析など、点と点の関係を扱う場面で活躍しますよ。
方位角(北基準・時計回り)に変換する
地理データやGPS座標を扱うときの方位角は、北を0度として時計回りに 0〜360度 で表すのが慣例です。数学の座標系(東を0度・反時計回り)とは基準が違うので、変換が必要になります。
東西方向(経度差)を dx、南北方向(緯度差)を dy とすると、次の数式で方位角を求められます。
=MOD(450 - DEGREES(ATAN2(dx, dy)), 360)
450 - ... の部分で「東基準・反時計回り」を「北基準・時計回り」に座標系変換し、MOD関数で 0〜360度に正規化しています。
| dx (東西) | dy (南北) | 数式の結果 | 意味 |
|---|---|---|---|
| 0 | 1 | 0 | 真北 |
| 1 | 0 | 90 | 真東 |
| 0 | -1 | 180 | 真南 |
| -1 | 0 | 270 | 真西 |
| 1 | 1 | 45 | 北東 |
NOTE
GPS座標(緯度経度)から方位角を求める場合は、地球が球体であることを考慮した「球面三角法」が本来必要です。近距離(数キロ程度)であれば上の簡易式でも実用上問題ない精度が出ます。距離が長い場合は専用の方位角計算(ハバーシン公式等)を使ってください。
ベクトル間の角度を求める
2つのベクトル v1(x1, y1)と v2(x2, y2)の 符号つきの角度差 を求めたいときも、ATAN2が活躍します。
=DEGREES(ATAN2(x1*x2 + y1*y2, x1*y2 - y1*x2))
第1引数が「内積」、第2引数が「外積(z成分)」になっており、これで「v1からv2へどの方向に何度回転したか」が -180度〜180度で返ります。
| v1 | v2 | 結果(度) | 意味 |
|---|---|---|---|
| (1,0) | (0,1) | 90 | 反時計回りに90度 |
| (1,0) | (0,-1) | -90 | 時計回りに90度 |
| (1,0) | (-1,0) | 180 | 真逆 |
ACOS((v1•v2)/(|v1||v2|)) でも角度差は求められますが、こちらは 0〜180度しか返らず、回転方向(時計回り/反時計回り)の区別ができません。回転方向まで知りたいときは ATAN2 の出番ですね。
直交座標から極座標へ変換する
直交座標(x, y)から極座標(r, θ)へ変換するときも、ATAN2 が便利です。半径 r はSQRT関数、角度 θ は ATAN2 で求めます。
半径 r = SQRT(x^2 + y^2)
角度 θ = DEGREES(ATAN2(x, y))
A2 にx、B2 にyが入っている場合の数式は次のとおりです。
| 列 | 数式 | 内容 |
|---|---|---|
| C2(半径) | =SQRT(A2^2+B2^2) | 原点からの距離 |
| D2(角度) | =DEGREES(ATAN2(A2,B2)) | x軸からの角度(度) |
物理シミュレーション、画像処理、レーダー追跡など、極座標で考えたほうが自然な処理に展開できますよ。
傾斜の方向と角度を可視化する
地図データや勾配計算で、「どちらの方向にどれくらい傾いているか」を出したい場面があります。x方向の勾配を gx、y方向の勾配を gy とすると、ATAN2で 傾斜の向き(方位) を、SQRTで 傾斜の大きさ を求められます。
| 列 | 数式 | 意味 |
|---|---|---|
| 傾斜方位(度) | =MOD(450 – DEGREES(ATAN2(gx, gy)), 360) | 北基準・時計回り |
| 傾斜の大きさ | =SQRT(gx^2 + gy^2) | 勾配ベクトルの長さ |
GIS(地理情報システム)の分野では「アスペクト(傾斜方位)」と呼ばれる、定番の計算パターンです。
ATAN関数との違い・使い分け
ATAN2関数とよく似た関数にATAN関数があります。どちらも逆正接を求める関数ですが、できることに大きな差があります。
| 比較項目 | ATAN関数 | ATAN2関数 |
|---|---|---|
| 引数の数 | 1つ(y/xの比率) | 2つ(x座標、y座標) |
| 戻り値の範囲 | -π/2 〜 π/2(-90°〜90°) | -π 〜 π(-180°〜180°) |
| 象限の判定 | 第1・第4象限のみ | 4象限すべて |
| x=0 の処理 | y/x が #DIV/0! エラー | 正常に計算可能(±90度) |
| 主な用途 | タンジェントの逆計算 | 座標から方向の特定 |
たとえば、座標(−3, −4)で角度を求めようとすると、ATAN関数では =ATAN(-4/-3) で 53.13度しか返ってきません。本来は第3象限なので −126.87度が正解です。座標データを扱うなら ATAN2 一択 と覚えておきましょう。
ATAN関数が活きるのは、「タンジェントの値(比率)から逆算したい」というケースです。たとえば、勾配 1/10 の坂道の傾斜角を求めるときは =DEGREES(ATAN(1/10)) で 5.71度と計算できます。
TIP
SIN関数・COS関数・TAN関数で計算した値から元の角度を逆算したいとき、SIN/COS から復元するなら=ATAN2(COS(θ), SIN(θ))で θ をぴったり戻せます。三角関数の往復変換を覚えておくと、検算でも役立ちますよ。
よくあるエラーと対処法
ATAN2関数で発生しやすいエラーと、その対処法をまとめました。
| エラー | 原因 | 対処法 |
|---|---|---|
| #DIV/0! | x=0 かつ y=0(原点) | 入力データを確認。IF関数で0,0を除外する |
| #VALUE! | 引数に文字列を指定 | セルの値を数値に直す(数値書式に変更/再入力) |
| 想定と違う符号 | x_num と y_num の順番を逆に指定 | =ATAN2(x, y) の順を再確認 |
| 90度ずれる | 数学座標系と方位座標系の混同 | 方位角換算の数式(北基準・時計回り)を使う |
#DIV/0! エラー
x座標とy座標の両方に0を指定すると発生します。
=ATAN2(0, 0) → #DIV/0! エラー
原点の角度は数学的に定義されないため、入力データを見直してください。事前にチェックを入れたい場合はIF関数を組み合わせます。
=IF(AND(A2=0, B2=0), "原点", DEGREES(ATAN2(A2, B2)))
IFERROR関数でラップして、エラーセルを空欄にする方法もありますよ。
=IFERROR(DEGREES(ATAN2(A2, B2)), "")
#VALUE! エラー
引数に数値以外の値(文字列など)を指定すると発生します。CSVから取り込んだデータでは、見た目は数字でも文字列扱いになっていることが多いので、*1 や VALUE関数で数値化してから使うと確実です。
=ATAN2(VALUE(A2), VALUE(B2))
引数の順番に注意
繰り返しになりますが、ATAN2関数の引数は =ATAN2(x, y) の順です。プログラミング言語(JavaScript / Python / C など)の atan2(y, x) とは逆なので、コードからExcelに移植するときに特に間違えやすいポイントです。
「Excelは x座標が先」と覚えておけば事故を防げますよ。
まとめ
ExcelのATAN2関数は、x座標とy座標から逆正接(角度)を求める関数です。
ポイントを整理すると次のとおりです。
- 構文:
=ATAN2(x_num, y_num)で、戻り値は -π〜π のラジアン - ATAN関数との違い: 4象限すべてで正しい角度を返せる
- 度数への変換: DEGREES関数と組み合わせる
- 0〜360度への正規化:
=MOD(DEGREES(ATAN2(x,y)), 360) - 2点間の角度: 座標の差分を引数に渡す
- 方位角:
=MOD(450 - DEGREES(ATAN2(dx,dy)), 360)で北基準・時計回りに変換 - エラー回避: x=0 かつ y=0 のときだけ #DIV/0! エラーになる
- 引数順の注意: 数学やプログラミングの
atan2(y,x)と逆。Excelは x が先
座標データから方向を求める計算は、図面処理・GIS・物理シミュレーション・ベクトル解析など、幅広い場面で登場します。ATAN関数では足りない4象限の判定をATAN2が引き受けてくれるので、ぜひ実務に取り入れてみてくださいね。
