ExcelのATAN2関数の使い方|座標から角度を求める基本・ATAN関数との違い・実務活用例まで

スポンサーリンク

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関数の挙動を体感するには、座標軸上の代表的な点で試してみるのが分かりやすいです。

xy数式結果(度)意味
10=DEGREES(ATAN2(1,0))0x軸プラス方向
01=DEGREES(ATAN2(0,1))90y軸プラス方向
-10=DEGREES(ATAN2(-1,0))180x軸マイナス方向
0-1=DEGREES(ATAN2(0,-1))-90y軸マイナス方向

x軸プラス方向(東向き)が0度、y軸プラス方向(北向き)が90度、というイメージをつかんでおくと、後の応用例がスッと入ってきます。

ATAN2関数の実践的な活用例

4つの象限での角度計算

ATAN2関数が本領を発揮するのは、座標が4つの象限に分かれるケースです。各象限での計算結果を表で確認してみましょう。

象限xy数式結果(度)
第1象限34=DEGREES(ATAN2(3,4))53.13
第2象限-34=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度 に変換されます。

xy-180〜180度0〜360度
3453.1353.13
-34126.87126.87
-3-4-126.87233.13
3-4-53.13306.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 (南北)数式の結果意味
010真北
1090真東
0-1180真南
-10270真西
1145北東

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度で返ります。

v1v2結果(度)意味
(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から取り込んだデータでは、見た目は数字でも文字列扱いになっていることが多いので、*1VALUE関数で数値化してから使うと確実です。

=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が引き受けてくれるので、ぜひ実務に取り入れてみてくださいね。

タイトルとURLをコピーしました