アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルで一日働いた労働時間の2つのデーターの重なった時間を計算できるようにしたいのですが、こまっています。

例)A1のセルにAさんの出勤時間である「8:00」を入力。
A2にAさんの退社時間である「12:00」を入力。
B1にAさんの二度目の出勤である「18;00」
B2にAさんの二度目の退社である「20:00」
少しスペースをあけて、A5にBさんの出勤時間である「10:00」
A6にBさんの退社時間である「19:00」

と入力をした場合、二人が会社にでている重なっている時間である「3時間」という答えを出すようにしたいのですが、何かいい方法はあるでしょうか?

よろしくおねがいします。

A 回答 (1件)

時刻はすべて、文字列ではなくシリアル値(日付や時刻を表す数値)で入力されているとして、



 =MAX(MIN(A2,A6)-MAX(A1,A5),0)+MAX(MIN(B2,A6)-MAX(B1,A5),0)

まず、Aの一度目の勤務時間と、Bの勤務時間について、重なっている時間は、
【A,Bのいずれもが出勤した時刻 = A,Bのうち、より遅く出勤した方の出勤時刻)】から、
【A,Bのいずれかが退社した時刻 = A,Bのうち、より早く退社した方の退社時刻)】まで。

・時刻Pと時刻Qのうち、より遅い方の時刻 ⇒ MAX(P,Q)
・時刻Pと時刻Qのうち、より早い方の時刻 ⇒ MIN(P,Q)
・時刻P~時刻Qまでの時間 ⇒ P-Q
ですから、
 MIN(A2,A6)-MAX(A1,A5)
となります。

ただし、重なっている時間がない場合(例えば、Aの出勤前にBが退社した場合)
負の値が返ってしまいますので、この場合は0にする必要があります。
・時間Tが負の値ならば0とする計算 ⇒ MAX(T,0)
ですから、
 MAX(MIN(A2,A6)-MAX(A1,A5),0)
となります。

Aの二度目の勤務時間についても同様に処理して加算します。

以上ご参考まで。

この回答への補足

回答ありがとうございます。うまくいきました♪

ただ、Aさんが出勤し、Bさんが休みの場合、この式では
うまくいきませんでした。
片方だけが出勤してる時に重なる時間が0時間にするには
どのようにすればいいでしょうか?

補足日時:2007/12/12 09:57
    • good
    • 0
この回答へのお礼

休みの人のセルに0を打ち込むと無事に0時間で表示されました。

ありがとうございました。

お礼日時:2007/12/12 16:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A