Добрый день Читатели!
Ранее я опубликовал способ перевода географических координат из десятичного вида (ХХ.ХХХХ) в вид ХХ° ХХ' ХХ".
Теперь публикую способ обратного преобразования средствами Excel:
Имеем исходные данные в виде:
56° 40' 5,333" С.Ш. и 043° 0' 0,99" В.Д.
1. Очевидно, число градусов в десятичном виде и в виде ХХ° ХХ' ХХ" будет равно. И казалось бы используй функцию ЛЕВСИМВ() для выдергивания двух символов слева из исходной ячейки, НО! Градусы могут быть написаны и так 56°, и так 056° (особенно, если речь идет о долготе), что осложняет задачу.
Поэтому целесообразнее использовать совокупность функций ПСТР() и ПОИСК() следующим образом:
Найдем позицию вхождения символа ° в исходных данных:
ПОИСК("°";B2)
Затем используя функцию ПСТР() вырежем из исходных данных фрагмент начиная с 1 позиции до позиции (символ ° - 1):
ЗНАЧЕН(ПСТР(B2;1;ПОИСК("°";B2)-1))
Внимательный читатель заметит еще одну использованную функцию - ЗНАЧЕН(). Она нужна для перевода получившегося текстового фрагмента типа "043" в числовое значение "43" (Если в ваших данных записи градусов всегда двузначные, можно не использовать эту функцию).
В итоге целое число градусов получено!
2. Минуты будем искать похожим способом:
Определяю позиции вхождения двух символов " и °. Затем вырезаю из исходного тектса фрагмент начиная с позиции (символ ° + 1) длиной (символ " - символ ° +1):
=ПСТР(B2;(ПОИСК("°";B2))+1;(ПОИСК("'";B2))-(ПОИСК("°";B2))-1)
3. С секундами ситуация аналогичная, только необходимо оперировать позициями вхождения символов " и ' :
=ПСТР(B2;(ПОИСК("'";B2))+1;ПОИСК("""";B2)-ПОИСК("'";B2)-1)
4. И финал этих грандиозных вычислений:
Перевод в десятичный вид B4+B5/60+B6/3600
PS: Безусловно есть готовые программы конвертации координат, но иногда сделать это требуется именно в экселе.