[[20041115160559]] 『10進法の緯度表示から度分秒への計算』(ふじ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『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.