Excel-калькулятор углов: как преобразовать градусы, минуты и секунды в десятичные значения и обратно
Хочу рассмотреть задачу перевода углов формата (d°m′s″) в десятичные значение и обратно из десятичного значения в формат градусы° минуты′ секунды″ и математические операции над ними при помощи microsoft excel.
Пусть имеется угол 46°12′44″, необходимо найти синус этого угла или сложить его с углом 23°34′23″. Можно разбить каждый из углов на 3 части - 3 ячейки и , преобразовать их к формату десятичных чисел, помня о том, что в 1 градусе 60 минут, а в 1 минуте 60 секунд. Можно воспользоваться онлайн калькулятором, а можно и написать калькулятор самому, распишу ниже несколько способов:
Простой способ
Формула перевода будет простой и выглядеть следующим образом: =N9+O9/60+P9/3600 (46+12/60+44/3600) = 46,21(2)
Но можно осуществить переход без разбиения значения угла на 3 ячейки, красиво, но чуть сложнее.
Интересный способ
Способ позволяет получить десятичное значение угла, в соседней ячейке без дополнительных разбиений угла, сразу приведу формулу и ниже объясню как она работает:
=ЛЕВСИМВ(M9;НАЙТИ("°";M9)-1)+ПСТР(M9;НАЙТИ("°";M9)+1;НАЙТИ("'";M9)-НАЙТИ("°";M9)-1)/60+ПСТР(M9;НАЙТИ("'";M9)+1;НАЙТИ("""";M9)-НАЙТИ("'";M9)-1)/3600
Извлечение градусов
Пойду по порядку, сначала разберу часть формулы, извлекающую значение градусов
ЛЕВСИМВ(текст; количество извлекаемых символов) - эта функция позволяет извлекать необходимое количество символов из строки, начиная слева. Как видно из примера, функция обрабатывает ячейку
Первый аргумент: это текст - ячейка М9;
Второй аргумент: это количество извлекаемых символов, для нахождения воспользовался функцией НАЙТИ("°";M9). Эта функция находит позицию искомого символа, после выполнения будет выведено число 3, так как знак градусов находится на третьей позиции, чтобы вывести только числовые значения нужно от 3 отнять 1 НАЙТИ("°";M9)-1), таким образом получим количество чисел до знака градусов. Если в ЛЕВСИМВ не добавлять второй аргумент - количество извлекаемых символов, то выведется первое слева значение ЛЕВСИМВ(M9) = 3. (рисунок 3)
Извлечение минут и перевод в градусы
Функция найти разобрана выше, из нового - это функция ПСТР. ПСТР возвращает заданное число знаков из строки, начиная с указанной позиции. ПСТР(текст; начальная позиция; количество возвращаемых символов).
Первый аргумент: М9 - это ячейка(текст) в которой ведется поиск;
Второй аргумент: начальная позиция - НАЙТИ("°";M9)+1, то есть начальной позицией является позиция после знака «°»,единица прибавляется, так как НАЙТИ("°";M9) = позиция знака градусов «°», а необходимо найти следующую за ней;
Третий аргумент: количество возвращаемых символов
Находим позицию знака минут «'» в примере это 6,
Находим позицию знака «°» это 3
Вычитаем одно из другого и понимаем, что захватываем лишний символ и вместо числа получим число и текст, чтобы этого избежать просто вычитаем единицу.
Результат: 6-3-1 =2, два символа между «°» и «'» будут найдены и использованы в расчетах.
Финальный результат работы формулы:
ПСТР(M9;4;2) выведется 2 символа ячейки M9, начиная с четвертого, далее поделится на 60, так как в 1 градусе 60 минут.
Извлечение секунд и перевод в градусы
ПСТР(M9;НАЙТИ("'";M9)+1;НАЙТИ("""";M9)-НАЙТИ("'";M9)-1)/3600
Формула аналогична формуле для извлечения минут.
Первый аргумент: М9 - это ячейка(текст) в которой ведется поиск;
Второй аргумент: начальная позиция - НАЙТИ("'";M9)+1, то есть начальной позицией является позиция после знака «'»,единица прибавляется, так как НАЙТИ("'";M9) = позиция знака секунд «'», а необходимо найти следующую за ней;
Третий аргумент: количество возвращаемых символов
НАЙТИ("""";M9)-НАЙТИ("'";M9)-1
Находим позицию знака секунд «"» в примере это 9. ВАЖНО! В Excel кавычки (") используются для обозначения текстовых строк. Если нужно указать сам символ кавычки внутри строки, то он должен быть "экранирован" — удвоен.
Находим позицию знака «'» это 6
Вычитаем одно из другого и понимаем, что захватываем лишний символ и вместо числа получим число и текст, чтобы этого избежать просто вычитаем единицу.
Результат: 9-6-1 =2, два символа между «'» и «"» будут найдены и использованы в расчетах.
Финальный результат работы формулы:
ПСТР(M9;6;2) выведется 2 символа ячейки M9, начиная с шестого, далее поделится на 3600, так как в 1 градусе 60 минут, а в 1 минуте 60 секунд.
После останется все сложить и получим десятичные значения градусов, с которыми можно дальше удобно взаимодействовать.
Обратные преобразования из десятичного значения угла в формат (г°м′с″)
Для этого потребуется одна функция, из которой будет составлена формула, это функция - ЦЕЛОЕ, готовая формула:
=ЦЕЛОЕ(M14)&"°"&ЦЕЛОЕ((M14-ЦЕЛОЕ(M14))*60)&"'"&((((M14-ЦЕЛОЕ(M14))*60)-ЦЕЛОЕ((M14-ЦЕЛОЕ(M14))*60))*60)&""""
=ЦЕЛОЕ(угол) & "°" &
ЦЕЛОЕ((угол - ЦЕЛОЕ(угол)) * 60) & "'" &
ОКРУГЛ(((угол - ЦЕЛОЕ(угол)) * 60 - ЦЕЛОЕ((угол - ЦЕЛОЕ(угол)) * 60)) * 60; 2) & """"
ЦЕЛОЕ Округляет число до ближайшего меньшего целого.
Первая часть формулы: ЦЕЛОЕ(M14)&"°"& выделяет целое число градусов из десятичного обозначения угла, &"°"& прибавляет к числу знак градусов и следующее число. ЦЕЛОЕ(30,3125)&"°"& = 30° ;
Вторая часть формулы: ЦЕЛОЕ((M14-ЦЕЛОЕ(M14))*60)&"'"& из значения ячейки M14 вычитаю целое значение этой ячейки, разность умножаю на 60, чтобы найти количество минут, далее выделяю целое количество минут = ЦЕЛОЕ((30,3125 - 30) * 60)&"'"& = ЦЕЛОЕ(0,3125*60)&"'"& = 18' ;
Третья часть формулы: ((((M14-ЦЕЛОЕ(M14))*60)-ЦЕЛОЕ((M14-ЦЕЛОЕ(M14))*60))*60)&"""" получается матрешка - целое в целом в целом ;) Из значения ячейки M14 вычитаю целое значение этой ячейки (нахожу значение градусов после запятой), разность умножаю на 60(получаю значение уже в минутах), потом проделываю эту операцию еще раз (Из значения ячейки M14 вычитаю целое значение этой ячейки, разность умножаю на 60) нахожу целое количество минут, далее разность минуты- минус целые минуты = дробное значение секунд, умножаю дробное значение секунд на 60 и получаю целое значение: ((((30,3125 - 30)) * 60) - ЦЕЛОЕ((30,3125-30)*60))*60)&"""" = 45".
В статье я использовал обычные кавычки как обозначение минут ' секунд " , но обычно используются спецсимволы минуты ′ секунды ″.
В формуле =ЛЕВСИМВ(M9;НАЙТИ("°";M9)-1)+ПСТР(M9;НАЙТИ("°";M9)+1;НАЙТИ("'";M9)-НАЙТИ("°";M9)-1)/60+ПСТР(M9;НАЙТИ("'";M9)+1;НАЙТИ("""";M9)-НАЙТИ("'";M9)-1)/3600 при использовании спецсимвола секунд ″ не нужно его удваивать:
=ЛЕВСИМВ(M9;НАЙТИ("°";M9)-1)+ПСТР(M9;НАЙТИ("°";M9)+1;НАЙТИ("'";M9)-НАЙТИ("°";M9)-1)/60+ПСТР(M9;НАЙТИ("'";M9)+1;НАЙТИ("″";M9)-НАЙТИ("'";M9)-1)/3600
И если появляется ошибка #ЗНАЧ! необходимо проверить совпадение спецсимволов в угле и формуле преобразования, приведение их к одному формату исправляет ошибку и делает вас счастливее!
Резюмирую: в данной статье я рассмотрел способы преобразования углов различными способами, показал как комбинируя функции ms excel можно получить удобный и лаконичный калькулятор пересчета углов, надеюсь было полезно!
- Для вышеприведенных преобразований необходимы следующие функции (
ЛЕВСИМВ,НАЙТИ,ПСТР,ЦЕЛОЕ) - Для перевода углов формата (d°m′s″) в десятичные значение используется формула:
=ЛЕВСИМВ(M9;НАЙТИ("°";M9)-1)+ПСТР(M9;НАЙТИ("°";M9)+1;НАЙТИ("'";M9)-НАЙТИ("°";M9)-1)/60+ПСТР(M9;НАЙТИ("'";M9)+1;НАЙТИ("""";M9)-НАЙТИ("'";M9)-1)/3600 - Для обратного преобразования из десятичного значения угла в формат (г°м′с″) используется формула:
=ЦЕЛОЕ(M14)&"°"&ЦЕЛОЕ((M14-ЦЕЛОЕ(M14))*60)&"'"&((((M14-ЦЕЛОЕ(M14))*60)-ЦЕЛОЕ((M14-ЦЕЛОЕ(M14))*60))*60)&""""
Источники:
ЛЕВСИМВ, ЛЕВБ (функции ЛЕВСИМВ, ЛЕВБ) - Служба поддержки Майкрософт
Функция НАЙТИ - Служба поддержки Майкрософт