[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『10進法の緯度表示から度分秒への計算』(ふじ)
先ほどの皆様のアドバイスのお陰で、上記のような変換を行うことができました。
例えば、
北緯 35.5751度(セル:A1)というような値に対して、
int(A1) で「度」の整数を抜き出し→(B1)、
A1-B1 で小数点以下を抜き出し→(C1)、
C1*60 で「分」を抜き出し→(D1)、
int(D1) で「分」の整数を抜き出し→(E1)、
D1-E1 で小数点以下を抜き出し→(F1)、
F1*60 で「秒(小数点込み)」を抜き出しました→(G1)。
これだけでもExcelの恩恵を十分に受けた気分ですが、
これらの式を結合するか何かして、元のA1から、求めたいB1(度)E1(分)G1(秒)を
一発で算出することはできないでしょうか?
Excelの技術というより数学的センスの問題かもしれませんが。
便利な変換式などありましたら、ご教授ください。
過去に使っていたやつですが、参考になりますでしょうか。
A B C D 1 35.5751 35° 34′ 30.4″ 2 B1=IF(A1="","",ROUNDDOWN(A1,0)) 3 C1=IF(A1="","",IF((A1-B1)<0,ROUNDDOWN((-(A1-B1)*60),0),ROUNDDOWN((A1-B1)*60,0))) 4 D1=IF(A1="","",ROUND((ABS(A1)-(ABS(B1)+C1/60))*3600,1)) 追加: B1とC1のROUNDDOWN関数をTRUNCに変えれば良いです。 B1=IF(A1="","",TRUNC(A1)) C1=IF(A1="","",IF((A1-B1)<0,TRUNC((-(A1-B1)*60)),TRUNC((A1-B1)*60)))
失礼しました。過去になぜROWNDDOWN使っていたのか検証していたら、 マイナスの角度があったときに、INTじゃダメだからでした。 TRUNC関数のほうが良いようです。 (川野鮎太郎)
ありがとうございます。"IF"など関数について無知なので、その辺のことも勉強しながら、 検証してみます。とにかく、提示していただき助かりました。 (ふじ)
かな〜〜〜〜り昔に作っていたので、良く見たら全然必要ないもの多いです(^_^A; C1=IF(A1="","",ABS(TRUNC((A1-B1)*60))) で良かった_/ ̄|○ il||li
(川野鮎太郎)
川野鮎太郎さん、ありがとうございます。今日を境にExcelの見方が変わりました! D1を求める最後の値"1"は、小数点以下の有効桁数ですね。
ピンポーン♪正解です。 (川野鮎太郎)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.