なんでも数式で解いてみる「2,時計の針」 - エクセル関数の使い方
アナログ時計を見ていて
長針と短針の差って何度だろう?なんて思ったことありませんか
エクセルで計算してみたいと思います
まず0時が0度なのは当たり前です
エクセルの数式の使い方のため最初に分単位で出してみようかと思います
長針が進むのは
1時間で360度
1分では360/60=6度
1秒だと360/3600=0.1度
短針が進むのは
1時間で30度
1分では30/60=0.5度
1秒だと30/3600=1/120度
長針の角度から短針の角度を引けば針の角度が出ます
セルA3)=A2+1
セルB3)=A3*6
セルC3)=A4*0.5
これを下にコピーすれば完成です
しか~し
これは1週して短針を追い越す前までです
角度に360以上はありません
ではどうするか考えます
案1)
長針が360度の時360引けば、、、、
これだと短針はどんどん進んでいます
案2)
角度が360度過ぎたら360引けば、、、、
差分に条件でB3-C3>=360 360以上で360引く
=IF(差分が360以上のとき,差分から360引く,差分B3-C3)
=IF(B3-C3>=360,B3-C3-360,B3-C3)
でもこれでも2時間までです
IF関数で11回繰り返せば、、残念
IF関数の入れ子には7回の制限があります
B3-C3>=360 ではなく
B3-C3 を360で割る (B3-C3)/360
端数が出るので切り捨てる INT((B3-C3)/360)
これで360ごとに1,2,3・・となる
1週ごとに360*1、360*2、360*3とすればIF関数を使わなくてもできる
差分から 差分を360単位で割って 差分から360*周回分引く
B3-C3 INT((B3-C3)/360) *360
=(B3-C3)-((INT((B3-C3)/360))*360)
セルA3 分)=A2+1 (1,2,3,4・・・)
セルB3 長針)=A3*6 (6,12,18,24・・・)
セルC3 短針)=A3*0.5 (0.5,1,1.5,2・・・)
セルE3 差分)=(B3-C3)-((INT((B3-C3)/360))*360) (0,5.5,11,16.5・・・)
何時何分の時の角度なので余計なセルはくっつけて
分表示も時間表示に変えます
新しいエクセルでは「0時0分」と漢字で入力すると
勝手に時間のシリアル値と表示され
「0時00分」となりセルの中は「0:00:00」になります
セルの書式設定で変更すればよいのですが
古いエクセルでも対応できるようにします
=0&"時"&0&"分"
に上記の式を当てはめるとセルG3は
=INT((A3)/60)-(INT((A3)/60/24))*24&"時"&A3-(INT((A3)/60)*60)&"分"
これで「0時0分」表示になります
24時になると0にするようにしているので何分でも計算できます
この3つの列はいらないので使ってる数式に組み込みます
角度の
=(B3-C3)-((INT((B3-C3)/360))*360)
セルB3)=A3*6
セルC3)=A3*0.5
を組み込みます
=(A3*6-A3*0.5)-((INT((A3*6-A3*0.5)/360))*360)
これでB~F列は不要になります
セルA3 分表示
=A2+1
セルB3 時間表示
=INT((A3)/60)-(INT((A3)/60/24))*24&"時"&A3-(INT((A3)/60)*60)&"分"
セルC3 角度
=(A3*6-A3*0.5)-((INT((A3*6-A3*0.5)/360))*360)
完成です
結論は
長針と短針の角度は1分で5.5度広がっていくでした
この表は1分単位なので残念ながら
再び針が重なる時間は65分から66分の間としかわかりません
と
あきらめる私ではありません
秒単位で出してみれば・・たぶんダメです
分と同じように
○○秒と○○秒の間という結果になると思います
ということで次回は
「
再び針が重なる時間」を出してみようと思います