- ベストアンサー
Excelで経過時間の判定をしたい
Excel2000で(経過時間)=(終了時刻)-(開始時刻)として時間計算をしています。 この経過時間が、8:30 を超えていれば 1 とし、8:30以下であれば 0 という答えを返させる関数を教えてください。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
No.1です。 >-- と *1 の意味を教えていただきたいのですが。 まず、Excelでは時間(と日付)はシリアル値という数値で管理されています。 つまり、各時間(と日付)はある数値が割り当てられているということです。 さて、数式中の「"8:30"」の部分ですが、これは「""」で括られており、単なる文字列と見なされます。 C1にある時間(のシリアル値)と、時間のように見えるけど実は単なる文字列の「"8:30"」を比較しても、正しい判定は出来ません。 そこで、単なる文字列→時間のシリアル値に変換するのに「*1」をつけます。 これは、そのまま「×1」ということです。 「"8:30"」のように、時間(日付)を表す文字列は、四則演算の中に入れることで、 文字列→数値(シリアル値)への変換が出来るのです。 「*1」というのは、値を変えずに四則演算をするためのものなのです。 そして、「--」も実は同じなのです。 「--」は、(-1)*(-1)のことです。 数式の、 (C1>"8:30"*1) の部分は条件式で、条件式は論理値TRUE/FALSEを返します。 この論理値も、四則演算の中に入れることで、 TRUE→1 FALSE→0 に変換することが出来ます。 「--」も「*1」と同様に、値を変えずに四則演算するためのものなのです。 他に、「/1」「+0」「-0」なども、値を変えずに四則演算出来るのでOKです。 さて、何故「*1」と「--」の両方を使用しているかというと、それは単なる好みです(笑)。 ですから、 =--(C1>"8:30"*1) は、 =(C1>"8:30"*1)*1 =(C1>"8:30"*1)/1 =(C1>"8:30"*1)+0 =(C1>"8:30"*1)-0 などでもOKです。 (もちろん、かっこ内の「*1」も変更可) なお、ちゃんと意味を考えたIF関数にすれば、 =IF(C1>"8:30"*1,1,0) ということになります。
その他の回答 (1)
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 経過時間がC1にあるとすると、 =--(C1>"8:30"*1) で、表示出来ます。
お礼
maruru01さん 表示できました。ありがとうございます。 -- と *1 の意味を教えていただきたいのですが。よろしくお願いします。
お礼
maruru01さん よくわかりました。 ありがとうございました。