シニアのためのパソコン教室とスポーツ、映画など

NPO法人湘南ふじさわシニアネットでシニアのためのパソコン(ワード、エクセル、インターネットなど)活動を中心にきままに

時間・日付の論理式は注意が必要(IF文、演算子、

2015-03-23 21:32:35 | エクセル
ずいぶん、ブログはご無沙汰しています。
ときには更新しないと訪問者が0になってしまいますね。

最近、湘南ふじさわシニアネットではエクセル勉強会をやっています。
そこの練習問題を作る際に、意外なことに気づきました。
残業時間を求める簡単な問題なのですが、式によってはうまく計算できないのです。



定時を17時としてそれ以降の時間勤務した場合に残業としますが、ふつうに「=IF(A4-"17:00">=0,A4-"17:00",0)」と入力したのではすべての場合に「0」になってしまいうまくいかないのです。
この場合に「17:00」と入力すると勿論だめです。関数パレットを使うとよくわかりますがエラーになってしまいます。



ところが、「=IF(A4-"17:00">=0,A4-"17:00",0)」と入力したもの(セルC4)はうまくいくのですが、前記の式との違いはよくわかりません。

このように時刻や日付を扱う場合には「インストラクタのネタ帳」でインストラクタの方が述べておられるように関数TIME関数を使った方がいいのだとおもいます。
紹介したサイトは実際には日付の場合についてのべておられ、DATE関数を使うべきと述べておられます。
そこから、類推して時間・時刻の場合も同じことが言えるのではと考えたわけです。
確かに、式「=IF(A4>=TIME(17,0,0),A4-TIME(17,0,0),0)」(セルE4)はうまくいきます。


それから、セル[A2]に時間を「17:00」と入力してそのセルを参照するようにした式「=IF(A4>=$A$2,A4-$A$2,0)」(セルD4)は大丈夫です。

はっきり断言はできませんが、時刻・時間や日付を直接式に使うのは好ましくないようで、結論としては、TIME関数やDATE関数を使うか、セルを参照する方式にしたらうまくいくと思います。

MOS受験に向けては終わったわけではありません。グラフの続きを近々アップしたいとは思っています。
面白いグラフがいろいろとあります。ぜひ紹介したいとおもいます。












最新の画像もっと見る

コメントを投稿