ExcelでTAN関数を使ったら、想定と違う値が返ってきて困っていませんか。たとえば「=TAN(45)」と入力しても、結果は1になりません。「1.6197…」という見慣れない数値が表示されて、首をかしげた方も多いはずです。
原因は、ExcelのTAN関数が「ラジアン」という角度の単位を使うからです。度数法の角度をそのまま渡すと、まったく別の角度のタンジェントを計算してしまいます。RADIANS関数と組み合わせれば、度数法で直感的に入力できますよ。
この記事では、TAN関数の基本構文から、度数法での使い方、勾配計算への応用、よくあるエラーの対処法、SIN・COSとの違いまで解説します。
ExcelのTAN関数とは?基本構文と引数
TAN関数は、指定した角度のタンジェント(正接)を返すExcelの関数です。読み方は「タンジェント」です。
タンジェントとは、直角三角形の「対辺÷隣辺」にあたる三角比のことです。斜面の傾きや勾配を表すときに使います。
対応バージョンはExcel 2016以降で、Microsoft 365でも使えます。
構文:=TAN(数値)
=TAN(数値)
引数は「数値」の1つだけです。シンプルな関数ですね。
引数はラジアン単位で指定する
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 数値 | 必須 | タンジェントを求めたい角度をラジアン(弧度法)で指定します |
ラジアンとは、円の半径と同じ長さの弧に対する中心角のことです。360度が2π(約6.2832)ラジアンに相当します。
ここが最大の注意点です。引数に「45」と入力しても、45度のタンジェントにはなりません。Excelは「45ラジアン」として計算してしまいます。度数法で入力したい場合は、次のセクションで紹介するRADIANS関数を使ってください。
度数で入力するにはRADIANSと組み合わせる
基本パターン:=TAN(RADIANS(角度))
度数法の角度からタンジェントを求めるには、RADIANS関数で変換してからTAN関数に渡します。
=TAN(RADIANS(45))
この数式は1を返します。RADIANS(45)で45度をラジアン(約0.7854)に変換し、その値をTAN関数に渡しています。
別の書き方として =TAN(角度*PI()/180) もありますが、RADIANSを使うほうが読みやすいのでおすすめです。
代表角度の計算結果一覧(0度~360度)
主な角度でTAN関数を使った結果を表にまとめました。
| 角度 | 数式 | 結果 | 数学的な値 |
|---|---|---|---|
| 0° | =TAN(RADIANS(0)) | 0 | 0 |
| 30° | =TAN(RADIANS(30)) | 約0.5774 | 1/√3 |
| 45° | =TAN(RADIANS(45)) | 1 | 1 |
| 60° | =TAN(RADIANS(60)) | 約1.7321 | √3 |
| 90° | =TAN(RADIANS(90)) | 約1.633E+16 | 未定義 |
| 120° | =TAN(RADIANS(120)) | 約-1.7321 | -√3 |
| 180° | =TAN(RADIANS(180)) | 約-1.225E-16 | 0 |
| 270° | =TAN(RADIANS(270)) | 約5.444E+15 | 未定義 |
90度と270度の結果に注目してください。数学的にはタンジェントが未定義(無限大)なのに、Excelはエラーを返さず巨大な数値を表示します。この理由は「よくあるエラーと対処法」のセクションで詳しく説明しますね。
TAN関数の実務活用例
勾配率の計算(傾斜角から勾配を求める)
道路や斜面の傾斜角がわかっているとき、勾配率(水平距離に対する垂直距離の比率)を求めるにはTAN関数を使います。
=TAN(RADIANS(傾斜角))
たとえば傾斜角30度の坂道の勾配率は、=TAN(RADIANS(30)) で約0.577です。これは水平方向に100m進むと、高さが約57.7m上がることを意味します。
建物の高さを計算する(仰角と水平距離から)
建物までの水平距離と見上げた角度(仰角)がわかれば、TAN関数で建物の高さを求められます。
=水平距離 * TAN(RADIANS(仰角))
たとえば建物から50m離れた地点で仰角が35度なら、高さは =50*TAN(RADIANS(35)) で約35.0mです。測量や建築の簡易計算で役立ちますよ。
よくあるエラー・疑問と対処法
90度でエラーにならない理由と対策
=TAN(RADIANS(90)) を実行すると、数学的にはtan(90°)は未定義です。しかしExcelは#NUM!エラーを返さず、「1.63312E+16」のような巨大な値を表示します。
これは浮動小数点誤差(コンピュータの小数計算で生じるわずかなズレ)が原因です。RADIANS(90)の結果はπ/2にごくわずかな誤差を含みます。その結果、cos(θ)が完全な0にならず、TAN関数(= sin(θ)/cos(θ))の分母がゼロにならないのです。
この巨大な値をそのまま使うと計算結果がおかしくなります。90度や270度を扱う可能性がある場合は、次の数式で回避しましょう。
=IF(MOD(A1, 180)=90, "", TAN(RADIANS(A1)))
MOD関数(余りを求める関数)で角度を180で割った余りが90かどうかを判定しています。90度・270度・450度など、タンジェントが未定義になる角度を空白にできます。
#VALUE!エラーの原因と修正方法
TAN関数に文字列を渡すと、#VALUE!エラーが発生します。
=TAN("四十五") → #VALUE!エラー
=TAN(A1) → A1が空白の場合はエラーにならず0を返す(TAN(0)=0)
=TAN(A1) → A1が文字列の場合は#VALUE!エラー
数値以外のデータが混在する場合は、ISNUMBER関数で事前チェックすると安全です。
=IF(ISNUMBER(A1), TAN(RADIANS(A1)), "数値を入力してください")
#NAME?エラーの原因
関数名を「TANN」や「TAAN」のようにスペルミスすると、#NAME?エラーが表示されます。正しいスペルは「TAN」(3文字)です。Excelは大文字・小文字を区別しないので、「tan」と入力しても問題ありません。
SIN・COSとの違い・使い分け比較表
3関数の対応関係
SIN・COS・TANはセットで覚えておくと便利です。直角三角形の辺の比として、次のような関係があります。
| 関数 | 読み方 | 意味 | 直角三角形での定義 | 数式例 |
|---|---|---|---|---|
| SIN | サイン | 正弦 | 対辺 ÷ 斜辺 | =SIN(RADIANS(30)) → 0.5 |
| COS | コサイン | 余弦 | 隣辺 ÷ 斜辺 | =COS(RADIANS(60)) → 0.5 |
| TAN | タンジェント | 正接 | 対辺 ÷ 隣辺 | =TAN(RADIANS(45)) → 1 |
3つの関数には、次のような数学的な関係があります。
- tanθ = sinθ ÷ cosθ(TANはSINとCOSの比)
- sin²θ + cos²θ = 1(ピタゴラスの定理から導かれる恒等式)
- tan(-θ) = -tanθ(TAN関数は奇関数。符号を反転すると結果も符号が反転します)
奇関数(きかんすう)とは、マイナスを付けると結果も符号が逆になる関数のことです。TAN(-45°)は-1、TAN(45°)は1になります。
TAN関数の実務応用|勾配の表示形式変換
建設・土木の現場では、傾斜を「1/X(1対X)」の形式や「‰(パーミル)」で表すことがあります。TANで求めた勾配率をこれらの形式に変換する方法を紹介します。
勾配率を「1:X」形式に変換する
道路の縦断勾配などで使われる「1:20」(水平20に対して高さ1)という形式は、タンジェントの逆数で求めます。
=1/TAN(RADIANS(A1))
傾斜角がA1に入っているとき、上の式で1対Xのうち「X」の値が得られます。たとえば傾斜角2.86度ならTAN値は0.05、逆数は20なので「1:20」の勾配です。
パーミル(‰)に変換する
鉄道では傾斜を「1000分の何か」を示すパーミル(‰)で表します。タンジェントに1000を掛けます。
=TAN(RADIANS(A1))*1000
たとえば傾斜角0.573度のときTAN値は0.01、これに1000を掛けると「10‰」になります。
傾斜角からATAN2で2点間の角度を求める
2点の座標(X1,Y1)と(X2,Y2)が分かっている場合、ATAN2関数で2点間の傾き角を度数で取得できます。
=DEGREES(ATAN2(X2-X1, Y2-Y1))
TAN関数はタンジェント値→角度への変換にATAN関数を使いますが、2次元の方向角(方位角)を求めるにはATAN2が便利です。
勾配をパーセント(%)表示に変換する方法
傾斜を「%」で表す単位は「勾配パーセント」と呼ばれ、道路や造成地の設計でよく使われます。傾斜角が分かっているとき、TAN関数を使ってパーセント勾配に変換できます。
傾斜角から勾配%を求める
勾配%はタンジェント値に100を掛けた値です。
=TAN(RADIANS(A1))*100
A1に傾斜角(度)が入っているとき、これで勾配%が得られます。たとえば傾斜角5.71度なら TAN(RADIANS(5.71)) は約0.10、これに100を掛けると「10%勾配」になります。つまり水平100mに対して10m上る勾配です。
勾配%から傾斜角を逆算する
「勾配10%の坂道は何度の傾きか?」という逆計算は、ATAN関数を使います。
=DEGREES(ATAN(B1/100))
B1に勾配%が入っているとき、この式で傾斜角(度)が返ります。10%勾配なら ATAN(0.1) のラジアンをDEGREES関数で度数に変換して、約5.71度という結果が得られます。
実務での活用例
| 勾配% | 傾斜角 | 数式 |
|---|---|---|
| 5% | 約2.86° | =DEGREES(ATAN(0.05)) |
| 8% | 約4.57° | =DEGREES(ATAN(0.08)) |
| 10% | 約5.71° | =DEGREES(ATAN(0.10)) |
| 15% | 約8.53° | =DEGREES(ATAN(0.15)) |
| 30% | 約16.70° | =DEGREES(ATAN(0.30)) |
スロープの設計では「車椅子利用の場合は1/12勾配(約8.3%)以下が推奨」といった基準値があります。TAN関数とATAN関数を使い分けることで、傾斜角↔勾配%の変換をExcel上で素早く計算できます。
逆関数の ATAN 関数についてはExcelのATAN関数の使い方で詳しく解説しています。
ATAN・TANHとの関係
逆関数ATANとの使い分け
ATAN関数は、TAN関数の逆関数(アークタンジェント)です。TAN関数が「角度→タンジェント値」を求めるのに対し、ATAN関数は「タンジェント値→角度」を求めます。
=TAN(RADIANS(30)) → 約0.5774(30度のタンジェントは約0.5774)
=DEGREES(ATAN(0.5774)) → 約30(タンジェントが0.5774になる角度は約30度)
勾配率から傾斜角を逆算するときに使います。ATAN関数の結果はラジアンで返るため、度数法で表示するにはDEGREES関数(ラジアンを度数に変換する関数)で変換してください。
双曲線タンジェントTANHとの違い
TANH関数は双曲線タンジェント(ハイパボリックタンジェント)を求める関数です。名前は似ていますが、TAN関数とは別物です。
TAN関数は円(三角関数)に基づく関数で、値の範囲に上限はありません。一方、TANH関数は双曲線に基づく関数で、値は-1から1の範囲に収まります。TANH関数は機械学習の活性化関数やシグナル処理で使われます。
通常のExcel業務で三角関数を使う場合は、TAN関数を選べば間違いありません。
TAN関数のよくある質問(FAQ)
Q1. TAN(45)と書いても1にならないのはなぜ?
TAN関数の引数は「ラジアン」単位です。「45」と書くと45ラジアン(≒2578度相当)のタンジェントを計算してしまいます。45度のタンジェントを求めるには =TAN(RADIANS(45)) と書いてください。
Q2. TAN(90)が#NUM!エラーにならないのはなぜ?
数学的にtan(90°)は無限大ですが、Excelでは =TAN(RADIANS(90)) を計算するとき、内部でπ/2を表す浮動小数点数にわずかな誤差が生じます。そのため分母が完全なゼロにならず、巨大な数値(約1.63E+16)が返ります。90度や270度を扱う場合は =IF(MOD(A1,180)=90,"",TAN(RADIANS(A1))) で空白に置き換えましょう。
Q3. GoogleスプレッドシートでもTAN関数は使える?
はい。スプレッドシートでも =TAN(RADIANS(45)) とまったく同じ書き方で動作します。RADIANS関数も同様に使えます。
Q4. TAN関数で三角形の面積を求めることはできる?
直接は難しいですが、2辺とその間の角(SAS:二辺とその間の角)が分かっているとき、三角形の面積は =0.5AB*SIN(RADIANS(C)) で求めるのが一般的です(AとBが辺の長さ、Cが挟む角度)。TAN関数を使う場合は、まず辺の長さを求めてから面積計算します。
Q5. 緯度・経度からの距離計算にTANは使う?
球面上の距離計算(Haversine公式など)では主にSIN・COSを使い、TANはあまり登場しません。TAN関数は平面上の角度・勾配計算が主な用途で、地球表面の距離計算にはSIN・COSとATAN2の組み合わせが一般的です。
まとめ
TAN関数は、指定した角度のタンジェント(正接)を求める関数です。
ポイントを整理しておきましょう。
- 構文は
=TAN(数値)で、引数はラジアン単位の数値を1つだけ指定する - 度数法の角度を使うには
=TAN(RADIANS(角度))とRADIANS関数で変換する - 90度のTAN値が巨大な数値になるのは浮動小数点誤差が原因。MOD関数で事前判定して回避する
- 文字列を渡すと#VALUE!エラーになる。関数名のスペルミスは#NAME?エラーの原因
- 勾配率の計算や建物の高さ計算など、実務での活用場面も多い
- 逆関数のATAN関数、双曲線版のTANH関数も用途に応じて使い分ける
三角関数シリーズのSIN・COS・RADIANSとあわせて覚えておくと、Excelでの角度計算がぐっとスムーズになりますよ。