目次
検証環境
- Microsoft Excel for Microsoft 365 MSO (バージョン 2509 ビルド 16.0.19231.20138) 64 ビット
- 平面直角座標への換算 - 国土地理院
緯度経度の表示形式
度 → D
分 → M
秒 → S
※小数桁は小文字表記
少数度表記(DD・DEG・Degree)
「少数度表記」と呼ばれる形式
10進数として度を整数、分・秒を小数の値として扱います
多くのアプリやサービスで使われています
DDD.ddddddddddd
ちなみに「度」「分」「秒」の値から「少数度表記」に変換するには
((([秒]÷60)+[分])÷60)+[度]
という計算式で行えます
例:
35°39′31.444560″
(((31.444560÷60)+39)÷60)+35
35.6587346
逆に「少数度表記」から「度」「分」「秒」に変換するには以下の手順で行います
- 整数と少数で分解して、整数部を度とする
- 先ほどの小数に60をかける
- 整数と少数で分解して、整数部を分とする
- 先ほどの小数に60をかける、結果を秒とし少数桁を6桁にする
例:
35.6587346
35 と 0.6587346 に分解、35を度とする
0.6587346 × 60 = 39.524076
39 と 0.524076 に分解、39を分とする
0.524076 × 60 = 31.44456
31.44456をを秒とし少数桁を6桁にする
35°39′31.444560″
はいめんどくせーですね!!
度分秒(DMS)「平面直角座標への換算 - 国土地理院」用
度・分・秒の値を単純に連結させ、一つの数字にまとめている形式
以下の形式は主に「平面直角座標への換算 - 国土地理院」で使われています
DDDMMSS.ssss
のWebページでは以下の様に説明されている
【緯度・経度の値の入力例(度分秒)】
緯度 36° 6′13.58925″ → 360613.58925
経度 140° 5′16.27815″ → 1400516.27815
ddd mm ss.s → dddmmss.s
度分秒(DMS) 「CALS???」用
度・分・秒の値を単純に連結させ、一つの数字にまとめている形式
以下の形式は確かCALSのファイルで見た気がしますが、遠い記憶すぎて忘れました…
DDD.MMSSssss
変換Excel式
以下は「F2」セルに少数度表記(DD・DEG・Degree)の緯度経度の数値がある場合
他のセルにある場合は「F2」の部分を変更する
少数度表記(DD・DEG・Degree)→度分秒(DMS)「平面直角座標への換算 - 国土地理院」用
使用する場合は、セルの書式設定で「数値」の小数点以下の桁数を6に設定

=LET(DEGREE, F2, (INT(DEGREE)*10000) + (INT((DEGREE-INT(DEGREE))*60)*100) + ((((DEGREE-INT(DEGREE))*60)-INT((DEGREE-INT(DEGREE))*60))*60))
又は
=(INT(F2)*10000) + (INT((F2-INT(F2))*60)*100) + ((((F2-INT(F2))*60)-INT((F2-INT(F2))*60))*60)
少数度表記(DD・DEG・Degree)→度(D)のみ
=INT(F2)
少数度表記(DD・DEG・Degree)→分(M)のみ
=LET(DEGREE, F2, INT((DEGREE-INT(DEGREE))*60))
又は
=INT((F2-INT(F2))*60)
少数度表記(DD・DEG・Degree)→秒(S)のみ
=LET(DEGREE, F2, (((DEGREE-INT(DEGREE))*60)-INT((DEGREE-INT(DEGREE))*60))*60)
又は
=(((F2-INT(F2))*60)-INT((F2-INT(F2))*60))*60
少数度表記(DD・DEG・Degree)→度分秒(DMS) 「CALS???」用
使用する場合は、セルの書式設定で「数値」の小数点以下の桁数を10に設定

=LET(DEGREE, F2, (INT(DEGREE)) + (INT((DEGREE-INT(DEGREE))*60)*0.01) + (((((DEGREE-INT(DEGREE))*60)-INT((DEGREE-INT(DEGREE))*60))*60)*0.0001))
又は
=(INT(F2)) + (INT((F2-INT(F2))*60)*0.01) + (((((F2-INT(F2))*60)-INT((F2-INT(F2))*60))*60)*0.0001)
LET関数について
式にLET関数を使っている物があるので、それについても書いておく
例えば下記は、後ろの式で「F2」に「DEGREE」という名前を付け、式で使える様にする物
例えば対象セル「F2」を修正する必要がある場合、LET関数の一か所だけ変えれば、式の部分を書き換えなくて済むメリットがある
=LET(DEGREE, F2, [式])
トラックバック URL
https://moondoldo.com/wordpress/wp-trackback.php?p=12443