- ベストアンサー
エクセルで時間の計算方法と残業時間合計の表示方法
- 学校勤務での時間計算にはエクセルが便利です。勤務時間と休憩時間を設定し、通常の勤務時間合計と残業時間合計を求めることができます。
- Aさんは8時間勤務で休憩時間が45分、Bさんは4時間勤務で休憩なしです。勤務時間を超えた時間は、G列6と7に表示することができます。
- エクセルの数式を利用して、Aさんの超過時間をG6に表示するには、「=IF(勤務時間-8>0, 勤務時間-8, 0)」と入力します。Bさんの場合も同様に設定します。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! 横からお邪魔します。 すでに hallo-2007さんの回答で解決していると思いますので、 余計なお世話になるかもしれませんが・・・ ↓の画像のように「休憩」の「なし」(文字列)をマイナスするとエラーになりますので、 「なし」を「0」と入力しておきます。 そして、F2セルに =IF(A2="","",IF((D2-C2-E2)*24>=B2,B2,(D2-C2-E2)*24)) G2セルに =IF(A2="","",IF((D2-C2-E2)*24>B2,(D2-C2-E2)*24-F2,0)) という数式を入れ、F2・G2セルを範囲指定し、G2セルのフィルハンドルで下へコピーすると 画像のような感じになります。 尚、F2・G2セルの表示形式は「標準」にしておきます。 こんな感じがご希望なのですかね?m(__)m
その他の回答 (7)
- KURUMITO
- ベストアンサー率42% (1835/4283)
E2セルには次の式を入力してから、セルの表示形式は時刻にして下方にオートフィルドラッグします。 =IF(A2="","",IF(AND(C2<"12:00"*1,D2>="12:45"*1),"0:45","なし")) この式では12時から12時45分までが休憩時間としています。適宜変更して使用してください。 F2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A2="","",ROUND(MIN((D2-C2-IF(E2="なし",0,E2))*24,B2),2)) G2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A2="","",ROUND((D2-C2-IF(E2="なし",0,E2)-F2/24)*24,2)) なお、F列およびG列の表示形式は標準にします。
- MackyNo1
- ベストアンサー率53% (1521/2850)
>できれば勤務時間合計、残業時間合計ともに 8:00のような時間ではなく 契約時間のように単なる数値の形式で表示したいのですが。 この場合は「1:20」は「1.333333」となりますがOKですか? OKなら提示した数式に「24」を掛けてください。 「1.2」と表示したいなら以下のような式にしてください(セルの書式は標準)。 =TEXT(元の数式,"[h].mm")*1
- MackyNo1
- ベストアンサー率53% (1521/2850)
G6セルに以下の式を入力して下方向にオートフィルしてください。 =MAX(D6-SUM(C6,E6)-B6/24,0)
- hallo-2007
- ベストアンサー率41% (888/2115)
>契約時間のように単なる数値の形式で表示したいのですが。 時間を数値に変更する方法ですが 時間の場合は 24をかけます ちなみに 分 の場合は*24*60 です。 エクセルに シリアル値ですが 1日(24時間)を数値の 1 であらわしています。 試しに開いているセルに 12:00 と入れてみてください。 そして セルの表示形式を 数値にすると 0.5 時刻にすると 12:00 なのです。 つまり F6セルには =(今の式)*24 書式を数値 G6セルには =(D6-C6-E6)*24-F6 となります。
- mshr1962
- ベストアンサー率39% (7417/18945)
B6=8,C6="8:30",D6="18:15",E6="0:45" F6=MIN((D6-C6-IF(E6="なし",0,E6))*24,B6) G6=MAX((D6-C6-IF(E6="なし",0,E6))*24-B6,0) E列の表示形式が、ユーザー定義で [h]:mm;;"なし" の場合は E7=0 として F6=MIN((D6-C6-E6)*24,B6) G6=MAX((D6-C6-E6)*24-B6,0)
- hallo-2007
- ベストアンサー率41% (888/2115)
時間の引き算ですよね。 F6セルに =MIN(TIME(B6,0,0),D6-C6-E6) G6セルに =D6-C6-E6-F6 でご希望になりませんか?
- kmetu
- ベストアンサー率41% (562/1346)
> Aさんは8時間を超えた時間は、G6の合計に =IF(D6-C6-TIME(8,45,0)>0,D6-C6-TIME(8,45,0),"") > Bさんは4時間を超えた時間は、G7の合計に =IF(D7-C7-TIME(4,0,0)>0,D7-C7-TIME(4,0,0),"") でいかかがでしすか
補足
ありがとうございます。 追加で、できれば勤務時間合計、残業時間合計ともに 8:00のような時間ではなく 契約時間のように単なる数値の形式で表示したいのですが。 変更してすいません。