• ベストアンサー

逆三角関数で90度以上の算出法を教えて!

EXCELで三角関数を取り扱おうとして関数計算をさせたのですが90度以上の区別が付けられません。 例えばSIN120と計算すると答えが0.866と出ます。 当然SIN60でも同じ結果となります。 いわゆる逆計算、すなわちASIN(B/A)としてB/A=0.866の場合、答えは60度となり、本来120度だったものではなくなってしまいます。 いろいろ調べたのですがわかりませんでした。 どなたかご存知の方があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • foomufoomu
  • ベストアンサー率36% (1018/2761)
回答No.2

>すなわちASIN(B/A)としてB/A=0.866 Bはy座標、Aは半径でしょうか? これだけの情報では、-90度~+90度までの角度しか求めることができません。(数学的にそうなのだから、どうしようもない) もし、x,y座標がわかるのでしたら、ATAN2関数を使えば、第1象限以外の座標でも正しく角度を計算してくれます。詳しくはEXCELヘルプを見てください。

atyaa
質問者

お礼

ありがとうございました。 仰るようにAは半径、Bは座標ですが座標値も出せますのでATAN2を使ってやってみました。 しかし第1象限と第2象限だけでしか正しい答えが得られませんでした。 そこでATAN2の検索をしたらIF関数で正しく答えが得られることが分かり以下のような数式にして試してみました。 =IF(ATAN2(C,B)<0,DEGREES(ATAN2(C,B))+360,DEGREES(ATAN2(C,B))) おかげさまでうまくいきましたのでお礼申し上げます。 先に回答いただいた方のACOS方式では試していませんが、こちらでも正解が得られるのではないかと思います。

その他の回答 (2)

  • foomufoomu
  • ベストアンサー率36% (1018/2761)
回答No.3

>しかし第1象限と第2象限だけでしか正しい答えが得られませんでした。 第3,4象限でも正しい答えになりますが、マイナスで表示する仕様になっています。 度で表すと、第3象限では-180度~-90度という表示になります。 >IF関数で正しく答えが得られることが分かり 次のようにしたほうが、よりスマートです。 =MOD(DEGREES(ATAN2(C,B)),360) MOD関数は、剰余を計算する関数です。360で割った余りを表示することで結果は0~360度の範囲になります。

  • tsunji
  • ベストアンサー率20% (196/958)
回答No.1

sinの60と120の答えは同じなので、cosも使って判別すればいいのでは? http://www24.atpages.jp/venvenkazuya/math1/trigonometric_ratio6_table1.php ただasinの場合はわかんないです。

atyaa
質問者

お礼

ありがとうございます。 教えていただいたとおりやってみたら0°から180°はうまくいきましたが、180°から360°はうまくいきませんでした。 とても残念です。

関連するQ&A