• ベストアンサー

エクセル関数

時間と時間の間の分数を求める式なのですが、下のような式を作ってみたんですが、うまくいきません。 =FLOOR(IF(OR(B6="",D6="",D6<B6),"",MAX(MIN(D6,1080/1440),1060/1440)-MAX(MIN(B6,1080/1440),1060/1440)),TIME(0,10,0) B6=開始時間 D6=終了時間 で17:40~18:00までの分数を10分単位で求めるにはどうしたらよいのでしょうか? どうか、ご指導宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 No.1の方の方法を利用すると、 =IF(OR(B6="",D6="",D6<B6),"",FLOOR(MAX(MIN(D6,"18:00")-MAX(B6,"17:40"),0)+"0:0:1","0:10")) という感じになります。 「1080/1440」とかより、「"18:00"」の方が見た目に分かり易いと思います。

mmmmmaki
質問者

お礼

ス・素晴らしい!!! ありがとうございます。 確か前回も助けていただき、本当にありがとうございます

その他の回答 (1)

回答No.1

10分未満の端数を切り捨てるのならfloor関数でいいんですが、こい つ、分単位の計算に使うと、ちょいとズレルんですよね。 で、1秒ごまかして、 =if(B2*D2, floor(D2-B2+"0:0:1", "0:10"), "") のようにすると、まあまあ実用になります。

mmmmmaki
質問者

お礼

なるほど。参考になります。 ありがとうございまじた。

mmmmmaki
質問者

補足

えっと、例えば 開始時刻を17:40(=B6) 終了時刻を22:38(=D6) とします。頂いた、↓の式    =if(B2*D2, floor(D2-B2+"0:0:1", "0:10"), "") だと、17:40~18:00までの答えは得られないですよね? まったくの初心者ですいません。