オンライン健康相談、gooドクター

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

gooドクター

A 回答 (3件)

>すなわちASIN(B/A)としてB/A=0.866


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

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

お礼日時:2013/01/23 15:19

>しかし第1象限と第2象限だけでしか正しい答えが得られませんでした。


第3,4象限でも正しい答えになりますが、マイナスで表示する仕様になっています。
度で表すと、第3象限では-180度~-90度という表示になります。

>IF関数で正しく答えが得られることが分かり
次のようにしたほうが、よりスマートです。
=MOD(DEGREES(ATAN2(C,B)),360)
MOD関数は、剰余を計算する関数です。360で割った余りを表示することで結果は0~360度の範囲になります。
    • good
    • 2

sinの60と120の答えは同じなので、cosも使って判別すればいいのでは?


http://www24.atpages.jp/venvenkazuya/math1/trigo …

ただasinの場合はわかんないです。
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/01/23 14:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング