エクセルで直線(一次関数)の角度を簡単に求める方法
結論を先に書くと、
一次関数y=ax+bの角度を求めるには
【=DEGREES(ATAN(a))】と入力するだけで求めることができる。
具体例を使って説明
一次関数y=ax+b で例えば、y=0.5x+2の角度を知りたいとする。
=DEGREES(ATAN(0.5))とセルに入力するだけで26.565°と計算できる。
なぜこのようになるか、y=0.5x+2をエクセルでグラフに描くと以下のようになる。
この直線の角度を求めたい時、以下のようにある起点(今回の例では座標(0,2))から右方向と上or下方向に進んで三角形を作って、その角度θを考えるのが分かりやすい。
今回の例では、底辺が1、高さ0.5の三角形ができる。高さが0.5というのはXの増加量を1にしたからy=ax+bの傾きaがそのまま表れただけである。
底辺と高さが分かっている三角形の角度θは以下の式で求める。
アークタンジェント0.5となったが、この0.5というのは直線の傾きaそのものであるので、y=ax+bのaだけ分かれば角度はエクセルで簡単に求めることができる。
なお、任意の三角形は直角三角形でさえあれば、どこからどこの位置を取っても三角形の大きさが変わるだけで角度として同一である。
それを確認するため先ほどと同じy=0.5x+2のグラフでX軸が-8から+5の位置で三角形を作った。三角形の底辺は8+5=13で、高さは2+4.5=6.5である。
エクセルで【=DEGREES(ATAN(6.5/13))】と入力すれば、26.565°と計算される。
このように、直線の角度を計算する時、切片bは不要であることがわかる。
以下は切片bを何パターンか同じグラフに並べたが、角度としてはどれも同じであることが視覚的に分かると思う。
さらに応用的な使い方<SLOPE関数と組み合わせる>
応用編として、もう一つ具体例を挙げる。X,Yの離散的なデータのみから角度を求める時は以下の手順で行う。
x,yのデータ5個をとりあえず散布図にプロットしたものが上記である。
よくある方法として、グラフを描いてエクセルの機能で近似曲線(線形近似)を追加、「数式を表示する」を選んでy=ax+bの傾き、切片を確認するが、これはデータから関数で計算することができる。
傾きaはSLOPE関数を使う。この関数は指定されたデータポイントから線形回帰曲線の傾きを返すもので、SLOPE(既知のy,既知のx)と入力する。
エクセルで計算すると【=SLOPE(B2:B6,A2:A6)】と入力し、0.34651を得ることができる。
これが傾きaなので、角度を求めるには先ほどの説明通りでアークタンジェントを計算すれば完了だ。
ちなみに線形近似曲線の傾きはSLOPE関数で求めたが、
切片はINTERCEPT関数、R-2乗値はRSQ関数で同様に計算することができる。