Тригонометрические функции в Microsoft Excel — это мощный инструмент для инженеров, студентов и аналитиков, но их синтаксис часто вызывает путаницу. В отличие от математических записей на бумаге, здесь важно учитывать радианы vs градусы, порядок аргументов и особенности обратных функций. Даже опытные пользователи иногда сталкиваются с ошибками #ЗНАЧ! или неожиданными результатами из-за неправильного формата данных.
В этой статье мы разберём не только базовые функции вроде SIN и COS, но и менее очевидные нюансы: как работать с гиперболическими функциями, почему ATAN2 предпочтительнее ATAN, и как автоматизировать перевод градусов в радианы. Особое внимание уделим типичным ошибкам, которые порождают часы дебага — от неправильного разделителя аргументов до конфликтов с региональными настройками.
Если вы когда-нибудь получали в ответе -0.5403 вместо ожидаемого 0.5 для SIN(30) — эта статья для вас. Мы не просто дадим формулы, но и объясним, почему Excel ведёт себя именно так, а не иначе.
1. Основные тригонометрические функции: SIN, COS, TAN
В Excel тригонометрические функции по умолчанию работают с радианами, а не с градусами. Это ключевой момент: если вы введёте =SIN(90), ожидая получить 1 (как в школе), то получите 0.89399 — потому что 90 радиан ≠ 90 градусов.
Чтобы избежать путаницы, используйте функцию РАДИАНЫ() (или RADIANS() в английской версии) для преобразования градусов:
=SIN(РАДИАНЫ(30)) → вернёт 0.5
=COS(РАДИАНЫ(60)) → вернёт 0.5
=TAN(РАДИАНЫ(45)) → вернёт 1
⚠️ Внимание: В некоторых локализациях Excel (например, русской) в качестве разделителя аргументов используется ;, а не ,. Если формула не работает, проверьте настройки региональных параметров в Файл → Параметры → Дополнительно → Разделители формул.
- 📐 SIN(число) — синус угла (в радианах). Пример:
=SIN(ПИ()/2)→1. - 📏 COS(число) — косинус. Пример:
=COS(0)→1. - 📉 TAN(число) — тангенс. Пример:
=TAN(ПИ()/4)→1.
2. Обратные функции: ASIN, ACOS, ATAN и ATAN2
Обратные тригонометрические функции возвращают угол в радианах. Чтобы получить результат в градусах, оберните их в ГРАДУСЫ():
=ГРАДУСЫ(ASIN(0.5)) → вернёт 30
=ГРАДУСЫ(ACOS(0.5)) → вернёт 60
Особняком стоит функция ATAN2, которая принимает два аргумента: ATAN2(y; x). Она возвращает угол между осью X и точкой (x, y), учитывая квадрант, в котором находится точка. Это решает проблему ATAN, которая не может отличить, например, угол 45° от 225°:
=ГРАДУСЫ(ATAN2(1; 1)) → 45
=ГРАДУСЫ(ATAN2(-1; -1)) → 225
Функция ATAN принимает только одно значение (отношение y/x), поэтому теряет информацию о знаках x и y. ATAN2 решает эту проблему, позволяя точно определить квадрант угла.Почему ATAN2 лучше ATAN?
- 🔄 ASIN(число) — арксинус. Аргумент должен быть в диапазоне
[-1; 1], иначе вернёт#ЧИСЛО!. - 🔙 ACOS(число) — арккосинус. Аналогично ограничен диапазоном
[-1; 1]. - 🔀 ATAN(число) — арктангенс. Возвращает угол от
-ПИ()/2доПИ()/2. - 🎯 ATAN2(y; x) — арктангенс с учётом квадранта. Самая надёжная функция для работы с углами.
⚠️ Внимание: Если вы получаете ошибку #ЧИСЛО! в ASIN или ACOS, проверьте, что аргумент находится в пределах [-1; 1]. Например, =ASIN(1.1) вернёт ошибку, потому что синус не может быть больше 1.
3. Гиперболические функции: SINH, COSH, TANH
Excel также поддерживает гиперболические функции, которые используются в инженерных расчётах, физике и финансовой математике. Их синтаксис аналогичен обычным тригонометрическим функциям, но они работают с гиперболическими углами:
=SINH(1) → 1.1752
=COSH(0) → 1
=TANH(10) → ~1 (асимптотически стремится к 1)
Обратные гиперболические функции имеют префикс ASINH, ACOSH, ATANH. Например:
=ASINH(1) → 0.8814
=ACOSH(2) → 1.3170
| Функция | Описание | Пример | Результат |
|---|---|---|---|
SINH(x) | Гиперболический синус | =SINH(0) | 0 |
COSH(x) | Гиперболический косинус | =COSH(1) | 1.5431 |
TANH(x) | Гиперболический тангенс | =TANH(100) | ~1 |
ASINH(x) | Обратный гиперболический синус | =ASINH(10) | 2.9982 |
Гиперболические функции реже встречаются в повседневных задачах, но незаменимы в расчётах, связанных с цепочками Маркова, теплопередачей или финансовыми моделями (например, в формуле Блэка-Шоулза).
4. Преобразование градусов и радиан: РАДИАНЫ и ГРАДУСЫ
Как уже упоминалось, Excel по умолчанию работает с радианами. Чтобы избежать ручного пересчёта, используйте функции преобразования:
- 🔄 РАДИАНЫ(угол_в_градусах) — конвертирует градусы в радианы. Пример:
=РАДИАНЫ(180)→3.1416(π). - 🔙 ГРАДУСЫ(угол_в_радианах) — обратное преобразование. Пример:
=ГРАДУСЫ(ПИ())→180.
⚠️ Внимание: Если вы копируете данные из внешних источников (например, из AutoCAD или MathCAD), убедитесь, что углы приведены к нужным единицам. Многие программы по умолчанию экспортируют углы в градусах, а Excel ожидает радианы.
Убедиться, что углы в радианах (или использовать РАДИАНЫ())
Проверить региональные настройки разделителей (запятая/точка с запятой)
Обернуть обратные функции в ГРАДУСЫ(), если нужен результат в градусах
Использовать ATAN2 вместо ATAN для точного определения квадранта-->
5. Типичные ошибки и как их избежать
Даже простые тригонометрические расчёты в Excel могут давать сбои. Вот самые распространённые проблемы и их решения:
- Ошибка
#ИМЯ?— опечатка в названии функции (например,SINUSвместоSIN). - Ошибка
#ЧИСЛО!— аргумент выходит за пределы допустимого диапазона (например,ASIN(1.1)). - Неправильный знак результата — забыли про преобразование градусов в радианы.
- Некорректный квадрант угла — использовали
ATANвместоATAN2.
Критическая особенность: В некоторых версиях Excel (особенно в Excel Online) функции могут вести себя иначе из-за округлений. Например, =SIN(ПИ()) теоретически должен вернуть 0, но из-за ограниченной точности вычислений может дать 1.22E-16. Для критических расчётов используйте округление:
=ОКРУГЛ(SIN(ПИ()); 10)
6. Практический пример: расчёт траектории снаряда
Допустим, вам нужно смоделировать полёт снаряда, выпущенного под углом 45° с начальной скоростью 100 м/с. Используем тригонометрию для разложения скорости на горизонтальную и вертикальную составляющие:
=100 * COS(РАДИАНЫ(45)) → горизонтальная скорость (~70.71 м/с)
=100 * SIN(РАДИАНЫ(45)) → вертикальная скорость (~70.71 м/с)
Чтобы рассчитать максимальную высоту подъёма, используем формулу из физики:
= (100 SIN(РАДИАНЫ(45)))^2 / (2 9.81) → ~255.1 м
Дальность (L) = (v₀² * sin(2θ)) / g, где v₀ — начальная скорость, θ — угол, g — ускорение свободного падения (9.81 м/с²).Формула для дальности полёта
7. Автоматизация: создание пользовательских функций на VBA
Если вам часто приходится работать с тригонометрией, можно создать пользовательскую функцию на VBA, которая будет автоматически преобразовывать градусы в радианы. Например:
Function SIN_DEG(degree As Double) As Double
SIN_DEG = Sin(degree * WorksheetFunction.Pi() / 180)
End Function
Теперь вы можете использовать =SIN_DEG(30) вместо =SIN(РАДИАНЫ(30)).
⚠️ Внимание: Пользовательские функции VBA работают только в десктопной версии Excel. В Excel Online или мобильной версии они будут недоступны.
FAQ: Частые вопросы по тригонометрии в Excel
Почему SIN(90) возвращает не 1, а 0.89399?
Потому что SIN в Excel работает с радианами, а 90 радиан ≠ 90 градусов. Чтобы получить синус 90 градусов, используйте =SIN(РАДИАНЫ(90)).
Как рассчитать угол между двумя векторами?
Используйте скалярное произведение и ACOS:
=ГРАДУСЫ(ACOS((A1*B1 + A2*B2) / (КОРЕНЬ(A1^2 + A2^2) * КОРЕНЬ(B1^2 + B2^2))))
где A1:A2 и B1:B2 — координаты векторов.
Можно ли использовать тригонометрические функции в условном форматировании?
Да, но только если результат функции возвращает логическое значение или число для сравнения. Например, чтобы выделить ячейки, где угол больше 45°:
=ГРАДУСЫ(ATAN2(B2; A2)) > 45
Почему ATAN(1) возвращает 0.7854, а не 45?
ATAN(1) возвращает результат в радианах (~π/4). Чтобы получить градусы, оберните её в ГРАДУСЫ():
=ГРАДУСЫ(ATAN(1)) → 45
Как рассчитать гипотенузу по двум катетам?
Используйте теорему Пифагора с функцией КОРЕНЬ():
=КОРЕНЬ(A1^2 + B1^2)
где A1 и B1 — длины катетов.