• ベストアンサー

給料計算8:00-17:50→9時間50分としたい

=IF(OR($B2=0,$C2=0),"",($C2-$B2+IF($B2>=$C2,1,0))*24) のままでは小数点として表示されますが、 (8:50-18:40の場合9.833333333となる) 9.50(9時間50分)というふうに表示されるにはどうすればいよいですか?

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

わざわざ*24してるのを、やめるだけです。 =IF(OR($B2=0,$C2=0),""C2-B2+(B2>=C2)) セルの表示形式を時刻にしておく。

KAIJI-000
質問者

お礼

早い回答有難うございます。こんな初歩的な話だったのですね。申し訳ない。

その他の回答 (5)

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.6

お答えします、 何時間何分と表示させたいセル(場所)にお入れ下さい。

KAIJI-000
質問者

補足

何度もすいません。Noubeさんの式の隣は、僕の提示したしきですよね。 A1 A2       A3             A4 08:00 17:00  09:00(僕の式の結果) (Noubeさんの式) 合ってますか? 未だに #NAME? と出ます。

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.5

まず常識的話しですが 1分が60秒 1時間が60秒 故に1時間が3600秒 ですよね、 Excelで時分秒を管理するとき 1時間を数値の1とします。 従って 1分は1/60 1秒は1/3600 なのです 要するに「何分何秒かが得たい」と云うことですよね? (※注:何時間かは小数点以下を省いた整数値が概ねそのままですから) 時間の取り出しは省きますね、 ということで 得られた値を「1」で割ったときのあまりを取得すれば小数点が得られますのでこれで行きます、 使う関数はMOD関数です 仮にA1に得られた時間が納められているとしますと この時点での式は =mod(A1,1) ところでExcel(に限らずコンピューターのほぼ全て)は我々人間とは違う方法でかずを認識しています。 その為少しずれてしまうことがあります。 例えば、あくまで例えですが、1分を59分59秒999999999…と、認識していたりしかねません。 なので人間がこの手のことを見越して、大目に見てあげて、補正してあげる必要があります。 補正は秒以下の単位ですれば良いと思います。 さっきの時間単位のものに3600を掛けて一端秒単位にします。 =mod(A1,1)*3600 この時の小数点以下の値は1秒に満たない訳ですから 四捨五入でもすれば良いと思います。 =round(mod(A1,1)*3600,0) ここから 秒を得るには =mod(round(mod(A1,1)*3600,0),60) 分を得るには =rounddown(round(mod(A1,1)*3600,0)/60,0) ということで 最終的には =raunddown(A1,0)&"時間"&rounddown(round(mod(A1,1)*3600,0)/60,0)&"分"&mod(round(mod(A1,1)*3600,0),60)&"秒" 又は分までなら =raunddown(A1,0)&"時間"&rounddown(round(mod(A1,1)*3600,0)/60,0)+round(mod(round(mod(A1,1)*3600,0),60)/60,0)&"分" (※注:秒を四捨五入的な処理してみました) これで如何でしょうか?

KAIJI-000
質問者

補足

=raunddown(A1,0)&"時間"&rounddown(round(mod(A1,1)*3600,0)/60,0)+round(mod(round(mod(A1,1)*3600,0),60)/60,0)&"分" の式ですが、僕の質問した式が入っているセルの隣に入れるのでしょうか?或いは9:00 17:00 の後に入れるのでしょうか?

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

次のような式にしてはいかがでしょう。 =IF(COUNT(B2:C2)<>2,"",IF(C2>B2,C2-B2,C2+"24:00"-B2))

KAIJI-000
質問者

補足

この数式の隣には-1を引くセルがあり、(休憩時間があるため) -1の結果は-0.625,書式設定で時刻を選んでも#の連続になってしまいました。

回答No.3

No2です。誤りがありましたので訂正します。 (誤)=IF(OR($B2=0,$C2=0),"",($C2-$B2+IF($B2>=$C2,1,0))*24) (正)=IF(OR($B2=0,$C2=0),"",($C2-$B2+IF($B2>=$C2,1,0))) で、表示形式を [h]:mm 若しくは [h]"時"mm"分" にしてください。

KAIJI-000
質問者

お礼

訂正有難うございます。

KAIJI-000
質問者

補足

この数式の隣には-1を引くセルがあり、(休憩時間があるため) -1の結果は-0.625,書式設定で時刻を選んでも#の連続になってしまいました。

回答No.2

数式に誤りがあります。 (誤)=IF(OR($B2=0,$C2=0),"",($C2-$B2+IF($B2>=$C2,1,0))*24) (正)=IF(OR($B2=0,$C2=0),"",($C2-$B2+IF($B2>=$C2,1,0)*24))  そのうえで、表示形式を [h]:mm にしていただれば大丈夫です。

関連するQ&A