以前に、下記の質問をしましたところ、下記の回答が来ました。 この内容で時間の概念ではなく、数値入力するとどう変わるのか教えていただけますでしょうか。 〇質問 Excelについて質問です。利用時間によって料金が変わるサービスの料金表をExcelで作成したいです。 利用開始時間と終了時間をいれれば、利用時間が出て延長料金も分かるようにしたいです。条件は、基本営業時間は9時~21時、それの中の8時間は基本料金。9~21時の中で8時間を超えた分は延長料金。基本営業時間外も利用はできるがさらに追加料金がかかります。 例としては、 開始 終了 利用時間 延長時間 営業時間外延長時間 □ □ □ □ □ 開始と終了時間を手入力したら、利用時間以降が自動で算出されるようにしたいです。 アドバイスほしいです。 〇頂いた回答 D3に =IF(COUNT(B3:C3)=2,MIN(MIN("21:00",C3)-MAX("9:00",B3),"8:00"),"") =IF(COUNT(B3:C3)=2 これは B:C列が 空白の場合は 空白に「するためです 次の MIN(MIN("21:00",C3) で 終了時間を だす関数になります。 D列は 基本時間内で 経過時間をだすために 21:00と 実際のC3の時間と 比較し C3が 21:00より前なら C3, "21:00"より後なら ”21:00”を 終了時間とします。 その次の MAX("9:00",B3)は 今度は 9:00と開始時刻を くらべて 9時以降を 開始時刻とさせるためのものです これで 計算すべき 開始時刻と終了時刻が でたので 終了から開始をひけば 基本時間内の時間が でます。 が 8時間を 超える場合は 延長になります そこで MAXが ”8:00” ですから MIN(MIN("21:00",C3)-MAX("9:00",B3),"8:00") 8:00と比べて小さい方をとれば 最大で 8:00と いう時間が 求められます。 次に E3の 基本時間内の延長時間は =IF(COUNT(B3:C3)=2,MAX(0,MIN("21:00",C3)-MAX("9:00",B3)-"8:00"),"") MIN("21:00",C3)-MAX("9:00",B3)-"8:00")で 基本時間内から 8:00を 引いたものが 延長時間です しかし 延長時間が 8時間を 超えない場合に 8:00を 引くとマイナスに なるので MAX(0,MIN("21:00",C3)-MAX("9:00",B3)-"8:00"),"") MIN("21:00",C3)-MAX("9:00",B3)-"8:00") と 0と比較して おおきい方を とります つまり マイナスの場合は 0です。 次に 営業時間外延長時間ですが =IF(COUNT(B3:C3)=2,MAX(0,("9:00"-B3))+MAX(0,(C3-"21:00")),"") MAX(0,("9:00"-B3)) で 8時以前の 時間を出します MAX(0,(C3-"21:00")で 21:00以降の時間を 延長時間として だします これをたせば 営業時間外延長時間 です
Excel