🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

Excel SIN・COS・TAN — =SIN(30) が 0.5 にならない理由(ラジアンの落とし穴)

|

Excel SIN・COS・TAN — =SIN(30) が 0.5 にならない理由(ラジアンの落とし穴)

TL;DRSINCOSTAN は角度を受け取って比を返しますが、その角度を ラジアン で測ります。度ではありません。=SIN(30) は 0.5 ではありません — 30 をラジアンと読んで -0.988 を返し、警告のエラーも出しません。これを直す たった 1 つのルール:度の値はすべて RADIANS() で包む=SIN(RADIANS(30)) なら 0.5 になります。これらの関数の残りは簡単です。実際に問題を起こすのは、 ラジアンの取り違えだけなのです。

=SIN(30)            ' 30 をラジアンと解釈 -> -0.988   (落とし穴)
=SIN(RADIANS(30))   ' 30 度、正しく計算 -> 0.5
=COS(RADIANS(60))   ' 60 度のコサイン -> 0.5
=TAN(RADIANS(45))   ' 45 度のタンジェント -> 1

「Excel の SIN 関数」で検索すれば、=SIN(number) は角度のサインを返す、とだけ書いて 終わっているページが何百と見つかります。しかし、ほぼ全員をつまずかせるのは構文では ありません — その「number」がラジアンだということです。この取り違えこそ、0.5 を 期待した数式が -0.988 を返し、しかも何も壊れて見えない理由です。このページはそこから 始めます。

この記事で学べること

  • 考え方の軸:これらの関数は ラジアン で考え、あなたは度で考える
  • =SIN(30)-0.988 を返し、エラーが出ない理由
  • たった 1 つの直し方 — RADIANS() — と、それを置く場所
  • TAN が 90° 付近で #DIV/0! にならず巨大な数に発散する理由
  • 実際に機能する直角三角形の計算(SOH-CAH-TOA)の組み立て方
  • 判断のポイント:角度の単位を 1 つ選び、シート全体で貫くこと

考え方の軸:Excel はラジアンを母語とする三角形計算機

SINCOSTAN は直角三角形の 3 つの基本の比 — 対辺 ÷ 斜辺、隣辺 ÷ 斜辺、 対辺 ÷ 隣辺 — です。角度を 1 つ与えれば、比を返してきます。ここまでは学校で習った とおりです。

問題は 角度の単位 です。数学は — したがって Excel も — 角度を ラジアン で 測ります。ラジアンでは、一周は 360 ではなく (約 6.283)です。度は人間の取り決めで あり、ラジアンは三角法の母語です。Excel はラジアンしか話しません。どちらの単位のつもりか 尋ねてくることは決してなく、あなたが取り違えても警告してくれません — 入力した数値は すでにラジアンだと決めてかかり、そのまま計算します。

この 1 点さえ握っておけば、「間違った」三角関数の答えは、どれも自分で説明がつきます。

=SIN(30) が 0.5 ではなく -0.988 を返す理由

落とし穴を最も純粋な形で示すと、こうです。

=SIN(30)   ' -> -0.988   (欲しかったのは 0.5)

あなたが意図したのは 30 で、そのサインはちょうど 0.5 です。Excel は 30 ラジアン と読みました。30 ラジアンは円をほぼ 5 周する角度で(30 ÷ 2π ≈ 4.77 周)、およそ 279° に 着地します — そのサインは確かに -0.988 です。Excel の計算は完璧でした。ただ、あなたが 尋ねたのとは別の問いに答えただけです。

これがこれほど危険なのは、エラーではなく、それらしく見える数値を返す からです。 #VALUE! ならすぐ気づきます。-0.988 はあなたのモデルの中に静かに居座り、次の計算へ 流れ込み、まったく正常に見えたまま下流のすべてを汚染します。赤信号はどこにもありません — だからこそ、ラジアンのルールは反射神経にまで落とし込む必要があるのです。

直し方:入り口で RADIANS()

RADIANS() は度をラジアンに変換します。度の値を三角関数に渡す前にこれで包めば、答えは 期待どおりにぴたりと収まります。

=SIN(RADIANS(30))   ' -> 0.5
=COS(RADIANS(60))   ' -> 0.5
=TAN(RADIANS(45))   ' -> 1
=COS(RADIANS(0))    ' -> 1
=SIN(RADIANS(90))   ' -> 1

角度がすでにラジアンで存在しているなら(別の数式の 出力、たとえば逆三角関数の結果として 出てくる場合によくあります)、RADIANS() は飛ばしてそのまま渡します。ルールは 「常に RADIANS を使う」ではありません — 「自分の角度がどちらの単位なのかを知り、度と ラジアンの境界でだけ変換する」 です。たいていの場合データは度で、Excel はラジアンを 欲しがるので、入力側の RADIANS() が基本形になります。(PI() を使う道もあります — =SIN(PI()/6)0.5 です — が、RADIANS() のほうが読みやすく、まさにこの用途のために 作られた関数です。RADIANS & DEGREES ガイド を参照して ください。)

90° 付近の TAN:エラーではなく巨大な数

タンジェントは サイン ÷ コサイン であり、90° ではコサインがゼロになります — なので TAN(90°) は数学的に定義されません(無限大に発散します)。#DIV/0! を期待するかも しれません。ですが、そうはなりません。

=TAN(RADIANS(90))   ' -> 16331239353195370   (#DIV/0! ではない)

理由は微妙で、理解しておく価値があります。RADIANS(90) は Excel が浮動小数点で表せる π/2 の最良の近似ですが、厳密には π/2 ではありません — ほんのわずかにずれています。 だから下にあるコサインもきっかりゼロではなく、極微の非ゼロの数であり、それで割ると途方も なく大きいが有限の結果になります。10¹⁶ 規模の桁外れに大きな三角関数の出力は、実際の値 ではなく、漸近線(90°、270°、…)の上に乗っているサインだと捉えましょう。 下流の数式が そこに着地しうるなら、その数値を信じるのではなく、ガードを掛けてください。

実践例:三角形の高さ

三角法が本領を発揮するのは、幾何・測量・物理・工学です。たとえば、あるスロープが 20 フィート の水平距離にわたって 15° の勾配で立ち上がっていて、その垂直方向の上がり幅を知りたいと します。これは 対辺 = 隣辺 × tan(角度) です。

=20*TAN(RADIANS(15))    ' 15 度のスロープが 20 フィートで上がる高さ -> 5.36 フィート
=20*SIN(RADIANS(15))    ' もし 20 フィートが斜辺だったら -> 5.18 フィート

ここで「教科書どおり正しい」と「黙って間違っている」を分けている唯一のものが、RADIANS() のラッパーです。これを落とすと、スロープの上がり幅は -30.9 として返ってきます — どんな エラーメッセージも決して知らせてくれない、意味不明な値です。

関連する三角関数

3 つの中核の比には、充実した脇役陣がいて、どれも同じラジアンのルールに従います。

  • ASINACOSATANATAN2 関数で、向きが逆です。比(または座標の組)を 与えると、角度を返します。重要なのは、これらが ラジアンを返す ことで、だから 出力DEGREES() で包みます。逆三角関数ガイド のテーマです。
  • SINHCOSHTANH — 工学や統計で使う双曲線関数版。数学は違いますが、呼び出しの パターンは同じです。
  • RADIANSDEGREESPI — 上記すべてを人間の角度で使えるようにする単位変換器。 RADIANS & DEGREES ガイド で扱います。

判断のポイント:シートごとに単位を 1 つ

最もきれいな三角法モデルは、格納する角度を度にするかラジアンにするかを最初に決め、決して 混ぜません。入力が度なら(たいていそうです)、セルの中では度のまま保ち、三角関数を呼ぶ まさにその瞬間に、数式の 内側RADIANS() を使って変換します。中途半端に変換した角度を シートのあちこちに散らかさないこと。そして、名前付きの変換器 1 つで意図が言えるのに、 × π/180 を 10 か所に直書きしないこと。「度」とも「ラジアン」とも書かれていない角度の列は、 いつか起きるバグの予備軍です — 単位はヘッダーに書きましょう。

ExcelMaster が役立つ場面

ラジアンの落とし穴は、数値がおかしく見えるまで目に見えず、気づいたときにはたいてい 3 つ 下流の数式にまで及んでいます。ExcelMaster に「SIN がなぜマイナスの数を返すの?」と 尋ねれば、抜けている RADIANS() を見つけ出し、修正後の数式を示し、度とラジアンの取り違えを 平易な言葉で説明します。「15 度のスロープが 20 フィートで上がる高さを計算して」と伝えれば、 変換をあらかじめ組み込んだ =20*TAN(RADIANS(15)) を配線してくれます — ラジアン 1 個ぶんの 黙った誤差はありません。

よくある質問

Excel で =SIN(30) が 0.5 ではなく -0.988 になるのはなぜですか?

Excel の三角関数が角度を度ではなく ラジアン で測るからです。30 は 30 ラジアン(円を 何周かほどくと約 279°)と読まれ、そのサインは -0.988 です。30 のサインが欲しいなら、 先に変換します:=SIN(RADIANS(30))0.5 を返します。

Excel の SIN・COS・TAN で度を使うには?

角度を RADIANS() で包みます:=SIN(RADIANS(30))=COS(RADIANS(60))=TAN(RADIANS(45))RADIANS() は度を、関数が期待するラジアンに変換します。角度がすでに ラジアンなら、ラッパーなしでそのまま渡します。

Excel で TAN(90°) がエラーにならないのはなぜですか?

タンジェントは 90° でコサインがゼロになるため定義されませんが、RADIANS(90) は π/2 の 浮動小数点 近似 にすぎないため、下にあるコサインはきっかりゼロではなく、極微の非ゼロの 数です。それで割ると、#DIV/0! ではなく巨大な有限の値(約 1.6×10¹⁶)になります。桁外れの 三角関数の出力は、漸近線のサインだと捉えましょう。

Excel の SIN と ASIN の違いは何ですか?

SIN角度 を受け取って を返し、ASIN(アークサイン)は を受け取って 角度 を返します。SIN はラジアンの入力を期待し、ASIN はラジアンの出力を返します (人間の角度にするには DEGREES() で包みます)。逆三角関数ガイド を参照してください。

PI() を使えば RADIANS を避けられますか?

はい — =SIN(30*PI()/180)=SIN(RADIANS(30)) と同じです。ただし RADIANS() はこの 用途のために作られた関数で、より読みやすく、切り詰めた 3.14159 を直書きする誘惑も ありません。こちらを優先し、PI() は定数そのものが本当に必要なときに使いましょう。

検証環境

検証環境: Excel 365 (Windows 11) — 最終確認 2026-07-24。

関連ガイド: Excel RADIANS & DEGREES · Excel Inverse Trig (ATAN, ATAN2) · Excel POWER & SQRT · Excel ROUND · Excel ABS & SIGN