ExcelでCOS関数を使ったら、思った通りの値にならなくて困っていませんか。たとえば「=COS(90)」と入力しても、0にはなりません。「-0.4480…」という見慣れない数値が返ってきて、首をかしげた方も多いはずです。
原因は、ExcelのCOS関数が「ラジアン」という角度の単位を使うからです。度数法の角度をそのまま渡すと、まったく別の角度のコサインを計算してしまいます。RADIANS関数と組み合わせれば、度数法で直感的に入力できます。
この記事では、COS関数の基本構文から、度数法での使い方、よくあるエラーの対処法、SIN・TANとの違いまで解説します。
ExcelのCOS関数とは?基本構文と引数
COS関数は、指定した角度のコサイン(余弦)を返すExcelの関数です。読み方は「コサイン」です。
コサインとは、直角三角形の「隣辺÷斜辺」にあたる三角比のことです。戻り値は必ず-1から1の範囲に収まります。
対応バージョンはExcel 2007以降で、Microsoft 365でも使えます。
構文:=COS(数値)
=COS(数値)
引数は「数値」の1つだけです。シンプルな関数ですね。
引数はラジアン単位――度数ではないことに注意
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 数値 | 必須 | コサインを求めたい角度をラジアン(弧度法)で指定します |
ラジアンとは、円の半径と同じ長さの弧に対する中心角のことです。360度が2π(約6.2832)ラジアンに相当します。
ここが最大の注意点です。引数に「90」と入力しても、90度のコサインにはなりません。Excelは「90ラジアン」として計算してしまいます。度数法で入力したい場合は、次のセクションで紹介するRADIANS関数を使ってください。
度数で入力するにはRADIANSと組み合わせる
基本パターン:=COS(RADIANS(角度))
度数法の角度からコサインを求めるには、RADIANS関数で変換してからCOS関数に渡します。
=COS(RADIANS(60))
この数式は0.5を返します。RADIANS(60)で60度をラジアン(約1.0472)に変換し、その値をCOS関数に渡しています。
別の書き方として =COS(角度*PI()/180) もありますが、RADIANSを使うほうが読みやすいのでおすすめです。
代表角度の計算結果一覧(0度〜360度)
主な角度でCOS関数を使った結果を表にまとめました。
| 角度 | 数式 | 結果 | 数学的な値 |
|---|---|---|---|
| 0° | =COS(RADIANS(0)) | 1 | 1 |
| 30° | =COS(RADIANS(30)) | 約0.8660 | √3/2 |
| 45° | =COS(RADIANS(45)) | 約0.7071 | √2/2 |
| 60° | =COS(RADIANS(60)) | 0.5 | 1/2 |
| 90° | =COS(RADIANS(90)) | 約6.12E-17 | 0 |
| 180° | =COS(RADIANS(180)) | -1 | -1 |
| 270° | =COS(RADIANS(270)) | 約-1.84E-16 | 0 |
| 360° | =COS(RADIANS(360)) | 1 | 1 |
90度と270度の結果が0にならず、非常に小さな数値になっている点に気づきましたか。これは浮動小数点誤差(コンピュータの小数計算で生じるわずかなズレ)が原因です。次のセクションで対処法を紹介します。
よくあるエラー・疑問と対処法
COS(90度)が0にならない理由(浮動小数点誤差)
=COS(RADIANS(90)) の結果は、数学的には0です。しかしExcelでは「6.12303E-17」のような極小値が返ります。
これは浮動小数点誤差と呼ばれるものです。コンピュータは小数を2進数で表現するため、πなどの無理数をぴったり表せません。RADIANS(90)の時点でπ/2にごくわずかな誤差が含まれ、その結果COS関数の出力もぴったり0にならないのです。
この値は実質的にゼロなので、計算に大きな影響はありません。ただし「セルに0と表示したい」「IF文で0と比較したい」場合は、次のROUND関数を使った対策が必要です。
ROUND関数で誤差を丸める実践テクニック
ROUND関数を組み合わせると、浮動小数点誤差を除去できます。
=ROUND(COS(RADIANS(90)), 10)
この数式は0を返します。小数点以下10桁で丸めることで、誤差が消えてきれいな0になります。
丸める桁数は用途に合わせて調整してください。実務で十分な精度は小数点以下10桁程度です。IF文で判定する場合の例も紹介します。
=IF(ROUND(COS(RADIANS(A1)), 10)=0, "直角", "直角ではない")
浮動小数点誤差を意識しておくと、三角関数を使った計算で予期しない結果に悩まされることが減りますよ。
#VALUE!エラーの原因と修正方法
COS関数に文字列を渡すと、#VALUE!エラーが発生します。
=COS("九十") → #VALUE!エラー
=COS(A1) → A1が空白の場合はエラーにならず1を返す(COS(0)=1)
=COS(A1) → A1が文字列の場合は#VALUE!エラー
数値以外のデータが混在する場合は、ISNUMBER関数で事前チェックすると安全です。
=IF(ISNUMBER(A1), COS(RADIANS(A1)), "数値を入力してください")
なお、COS関数には引数の範囲制限がありません。どんなに大きな数値を渡しても#NUM!エラーは発生しません。
SIN・TANとの違い・使い分け比較表
3関数の対応関係(sin/cos/tanの意味)
SIN・COS・TANはセットで覚えておくと便利です。直角三角形の辺の比として、次のような関係があります。
| 関数 | 意味 | 直角三角形での定義 | 数式例 |
|---|---|---|---|
| SIN | サイン(正弦) | 対辺 ÷ 斜辺 | =SIN(RADIANS(30)) → 0.5 |
| COS | コサイン(余弦) | 隣辺 ÷ 斜辺 | =COS(RADIANS(60)) → 0.5 |
| TAN | タンジェント(正接) | 対辺 ÷ 隣辺 | =TAN(RADIANS(45)) → 1 |
3つの関数には、次のような数学的な関係があります。
- sin²θ + cos²θ = 1(ピタゴラスの定理から導かれる恒等式)
- tanθ = sinθ ÷ cosθ
- cosθ = sin(90° – θ)(余角の関係)
- cos(-θ) = cosθ(COS関数は偶関数。符号を反転しても結果が同じです)
偶関数(ぐうかんすう)とは、マイナスを付けても値が変わらない関数のことです。COS(-60°)もCOS(60°)もどちらも0.5になります。
実務でCOSを使う場面
COS関数が活躍する代表的な場面を紹介します。
ベクトルの水平成分を求める
斜めの力を水平・垂直に分解するときに使います。
水平成分 = 力 × COS(RADIANS(角度))
垂直成分 = 力 × SIN(RADIANS(角度))
たとえば100Nの力が30度の方向に働いている場合、水平成分は =100*COS(RADIANS(30)) で約86.60Nになります。
座標の回転計算
点(x, y)を原点中心にθ度回転させる計算にも使います。
回転後のx = x × COS(RADIANS(θ)) - y × SIN(RADIANS(θ))
回転後のy = x × SIN(RADIANS(θ)) + y × COS(RADIANS(θ))
周期的な変動のモデル化
売上の季節変動や気温の変化など、周期的なパターンをモデル化する際にもCOS関数を使います。COS関数は周期2πで-1から1を繰り返すため、周期的な波を表現するのに適しています。
ACOS・COSHとの関係
逆関数ACOSとの使い分け
ACOS関数は、COS関数の逆関数(アークコサイン)です。COS関数が「角度→コサイン値」を求めるのに対し、ACOS関数は「コサイン値→角度」を求めます。
=COS(RADIANS(60)) → 0.5(60度のコサインは0.5)
=DEGREES(ACOS(0.5)) → 60(コサインが0.5になる角度は60度)
ACOS関数の引数は-1から1の範囲に限定されます。範囲外の値を渡すと#NUM!エラーになるので注意してください。ACOS関数の結果はラジアンで返るため、度数法で表示するにはDEGREES関数で変換します。
双曲線コサインCOSHとの違い
COSH関数は双曲線コサイン(ハイパボリックコサイン)を求める関数です。名前は似ていますが、COS関数とは別物です。
COS関数は円(三角関数)に基づく関数で、値は-1から1の範囲です。一方、COSH関数は双曲線に基づく関数で、値は1以上になります。COSH関数は懸垂線(つり橋やケーブルのたわみ曲線)の計算などに使われます。
通常のExcel業務で三角関数を使う場合は、COS関数を選べば間違いありません。COSH関数は工学分野の専門的な計算で使うことが多いです。
まとめ
COS関数は、指定した角度のコサイン(余弦)を求める関数です。
ポイントを整理しておきましょう。
- 構文は
=COS(数値)で、引数はラジアン単位の数値を1つだけ指定する - 度数法の角度を使うには
=COS(RADIANS(角度))とRADIANS関数で変換する - 90度のCOS値が0にならないのは浮動小数点誤差が原因。ROUND関数で丸めれば解決する
- 文字列を渡すと#VALUE!エラーになる。引数の範囲制限はないので#NUM!エラーは出ない
- 逆関数のACOS関数、双曲線版のCOSH関数も用途に応じて使い分ける
三角関数シリーズのSIN・TAN・DEGREESとあわせて覚えておくと、Excelでの角度計算がぐっとスムーズになりますよ。
三角関数シリーズ 関連記事
COS関数と合わせて使う三角関数の記事を、カテゴリ別にまとめました。
| カテゴリ | 関数 | 記事リンク |
|---|---|---|
| 順三角関数 | SIN | SIN関数の使い方 |
| 順三角関数 | COS | この記事 |
| 順三角関数 | TAN | TAN関数の使い方 |
| 逆三角関数 | ASIN | ASIN関数の使い方 |
| 逆三角関数 | ACOS | ACOS関数の使い方 |
| 逆三角関数 | ATAN | ATAN関数の使い方 |
| 単位変換 | RADIANS | RADIANS関数の使い方 |
| 単位変換 | DEGREES | DEGREES関数の使い方 |
