Как преобразовать углы градусы/минуты/секунды в (из) десятичные значения углов в Excel

Support for Office 2003 has ended

Microsoft ended support for Office 2003 on April 8, 2014. This change has affected your software updates and security options. Learn what this means for you and how to stay protected.

ВНИМАНИЕ! Данная статья переведена с использованием программного обеспечения Майкрософт для машинного перевода и, возможно, отредактирована посредством технологии Community Translation Framework (CTF). Корпорация Майкрософт предлагает вам статьи, обработанные средствами машинного перевода, отредактированные членами сообщества Майкрософт и переведенные профессиональными переводчиками, чтобы вы могли ознакомиться со всеми статьями нашей базы знаний на нескольких языках. Статьи, переведенные с использованием средств машинного перевода и отредактированные сообществом, могут содержать смысловое, синтаксические и (или) грамматические ошибки. Корпорация Майкрософт не несет ответственности за любые неточности, ошибки или ущерб, вызванные неправильным переводом контента или его использованием нашими клиентами. Подробнее об CTF можно узнать по адресу http://support.microsoft.com/gp/machine-translation-corrections/ru.

Эта статья на английском языке: 213449

Аннотация
Угловые измерения обычно выражаются в единицах градусы, минуты и секунды (DMS). Один градус равен 60 минутам, а одна минута – 60 секунд. Для упрощения математических расчетов может потребоваться выразить углы в градусах и их десятичных долях.

Эта статья содержит пример пользовательской функции, который можно использовать для преобразования величины в десятичном формате в DMS в текстовом формате и пример функции, которая преобразует DMS в величину в десятичном формате.
Дополнительная информация
Корпорация Майкрософт предлагает примеры программного кода только для иллюстрации и без гарантий, явных или подразумеваемых, включая, но не ограничиваясь, подразумеваемые гарантии товарности или пригодности для определенной цели. Предполагается, что вы знакомы с демонстрируемым языком программирования и средствами, используемые для разработки и отладки. Специалисты службы технической поддержки Майкрософт могут объяснить возможности конкретной процедуры, но не выполнять модификации примеров для обеспечения функциональных возможностей или удовлетворения конкретных потребностей.
Если вы имеете ограниченный опыт программирования, у вас может возникнуть потребность связаться с сертифицированным партнером корпорации Майкрософт или консультационной службой корпорации Майкрософт. Для получения дополнительных сведений посетите следующие веб-сайты корпорации Майкрософт:

Сертифицированных партнеров Майкрософт: https://Partner.Microsoft.com/Global/30000104

Консультационная служба Майкрософт- http://support.Microsoft.com/gp/advisoryservice

Дополнительные сведения о доступных вариантах поддержки и о том, как связаться с корпорацией Майкрософт посетите следующий веб-сайт корпорации Майкрософт:http://support.microsoft.com/default.aspx?scid=fh; EN-US; CNTACTMS

Преобразование десятичных градусов в градусы/минуты/секунды

Следующая пользовательская функция Visual Basic для приложений Microsoft принимает в виде десятичного значения угла и преобразует ее в текстовое значение, отображаемое в градусах, минутах и секундах.

Function Convert_Degree(Decimal_Deg) As Variant    With Application        'Set degree to Integer of Argument Passed        Degrees = Int(Decimal_Deg)        'Set minutes to 60 times the number to the right        'of the decimal for the variable Decimal_Deg        Minutes = (Decimal_Deg - Degrees) * 60        'Set seconds to 60 times the number to the right of the        'decimal for the variable Minute        Seconds = Format(((Minutes - Int(Minutes)) * 60), "0")        'Returns the Result of degree conversion       '(for example, 10.46 = 10~ 27  ' 36")        Convert_Degree = " " & Degrees & "° " & Int(Minutes) & "' " _            & Seconds + Chr(34)    End WithEnd Function				
Чтобы использовать эту функцию, создайте формулу перевода, как в следующем примере:
  1. Запустите Excel и нажмите ALT + F11, чтобы запустить Visual Basiceditor.
  2. В меню Вставка выберите пункт Модуль.
  3. Введите код для Convert_Degree customfunction, описанный выше в модуле.
  4. Нажмите клавиши ALT + F11, чтобы вернуться в Excel.
  5. Введите в ячейку A1 10.46.
  6. В ячейке A2 введите следующую формулу:
    =Convert_Degree(A1)


    Формула возвращает значение 10°27'36"

Преобразование градусов, минут и секунд в десятичные градусы

Следующая пользовательская функция Visual Basic для приложений Microsoft принимает строку текста градусы, минуты и секунды при форматировании в точности совпадает с форматом, который возвращает функция Convert_Degree (например, 10° 27' 36") и преобразует ее в десятичное значение угла. Это является обратной по отношению к функции Convert_Degree.

Предупреждение: функция завершается неудачей, если аргумент функции Degree_Deg отличается от следующего формата
<degrees>° <minutes>' <seconds>"</seconds></minutes></degrees>
даже если значение секунд равно 0.
Function Convert_Decimal(Degree_Deg As String) As Double   ' Declare the variables to be double precision floating-point.   Dim degrees As Double   Dim minutes As Double   Dim seconds As Double   ' Set degree to value before "°" of Argument Passed.   degrees = Val(Left(Degree_Deg, InStr(1, Degree_Deg, "°") - 1))   ' Set minutes to the value between the "°" and the "'"   ' of the text string for the variable Degree_Deg divided by   ' 60. The Val function converts the text string to a number.   minutes = Val(Mid(Degree_Deg, InStr(1, Degree_Deg, "°") + 2, _             InStr(1, Degree_Deg, "'") - InStr(1, Degree_Deg, _             "°") - 2)) / 60    ' Set seconds to the number to the right of "'" that is    ' converted to a value and then divided by 3600.    seconds = Val(Mid(Degree_Deg, InStr(1, Degree_Deg, "'") + _            2, Len(Degree_Deg) - InStr(1, Degree_Deg, "'") - 2)) _            / 3600   Convert_Decimal = degrees + minutes + secondsEnd Function				
Чтобы использовать эту функцию, создайте формулу перевода, как в следующем примере:
  1. Запустите Excel и нажмите ALT + F11, чтобы запустить Visual BasicEditor.
  2. В меню Вставка выберите пункт Модуль.
  3. Введите код для customfunction Convert_Decimal, описанный выше в модуле.
  4. Нажмите клавиши ALT + F11, чтобы вернуться в Excel.
  5. В ячейке A1 введите следующую формулу:
    =Convert_Decimal("10° 27' 36""")
    Примечание: необходимо ввести Тройные кавычки ("" ") в endof аргументе этой формулы, чтобы сбалансировать предложение пометить для secondsand кавычки для строки текста. Ссылка на ячейку не требует aquotation знак.
  6. Формула возвращает значение 10,46.

Свойства

Номер статьи: 213449 — последний просмотр: 08/07/2016 01:01:00 — редакция: 10.0

Microsoft Office Excel 2003, Microsoft Excel 2010, Microsoft Office Excel 2007, русская версия

  • kbfunctions kbconvert kbsample kbdtacode kbhowto kbprogramming kbmt KB213449 KbMtru
Отзывы и предложения