うっかりユーザのパソコン奮闘記

パソコンを使っていて感じたあんなこと、こんなこと、気ままに書いていきます。

無理を通して道理も味方に

2013年03月18日 | 千差万別

Excel「入力規則」の「小数点数」で、小数点「.」のつもりで、うっかり「:」と入力してしまったとき、はねつけてくれたほうがよいのではないかと、気ままな注文を思いつきました。
そういうわけにはいかない、というのが答のようなのですが、理由はこういうことでした。

Excel に時刻データを入力するときは、「23:59」のように「時:分」とキーを打ちます。
コンピューターは数値しか覚えることができませんから、「23時59分」は次のような数値変換をして覚え込まれ、「標準」の表示形式にすると右辺のようになります。

23:59 ⇒ 0.999305555555556

時刻のデータは、「0時0分0秒」 ⇒ 0 から
              「24時0分0秒」 ⇒ 1 までの数値として扱われるのです。

「小数点数」の入力規則によって、入力できる範囲に 0 から 1 までの数値が入っていれば、時刻のデータはそこで受け入れられてしまうということになります。
データとして受け入れるかどうかの判定は、上の式の右辺のようになってからなので、そのときには「:」の記号はなくなっていますから、それを捕まえて追い出すことはできないのでした。


どうしてもという場合には、0 から 1 までの数値を入れさせなければ、時刻は入力できないので、そういう方法はあります。
ところが、入力する数値がすべて 1 より大きければよいのですが、ぴったり 1 のときは困ってしまいます。
入力許可を 1 以上にすれば 24:00 が入ってしまい、1 未満にすると 1 という数値が入れられません。
扱う数値に 1 がないことがはっきりしている場合にだけ通用することになります。

時刻に相当する範囲だけ除けば受け入れられるという、道理を見つけたと思ったものの、無条件ではその無理を通してくれませんでした。

実用上は、入力したあとでよく見れば「:」の混入は防げるということと、「小数点数」を入力規則に設定する場合にどれほど遭遇するかということを考えると、無理を通したい機会は無視できるほどしかないだろうということで、話しは終わりになるのでした。
ややこしい話、ご退屈さまでした。