• ベストアンサー

給与計算について

エクセル2000で給与計算をしたいと思っています。 時給は800円なのですが、勤務時間の端数(5分単位)が 30分より短い場合は切り捨て、30分以上だと400円と計算されます。 A列に日付、B列に開始時間、C列に終了時間、D列に勤務時間を入れました。 A列が日付の時、D列は C1-B1 という計算式をいれました。 月毎の合計勤務時間(D列)と合計金額(E列)を求めたいので A列に合計と記入して、 D6にはその月の勤務時間の合計を SUM(D1:D5) を使って計算し、 E6には IF(MINUTE(D6)<30,HOUR(D6)*800,HOUR(D6)*800+400) という数式をいれてみました。  A列が日付か合計かの判別は私自身がして、その行の数式を変えますので、  数式の中に含まれていなくてもかまいません。 このE6にいれた式では1ヶ月の合計勤務時間が24時間を越えた場合、 24時間以上の金額が無視されてしまうので困っています。 過去の質問も検索してみたのですが、勤務時間の端数のことまで 書かれておらず、自力で出した答えはE6の式にIF関数でDAYを確認させるという 恐ろしく長くて、面倒なものでした。 もし、もっと簡単な数式で月毎の金額が求められるようでしたら、教えていただけないでしょうか。 よろしくおねがいします。

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

E6の IF(MINUTE(D6)<30,HOUR(D6)*800,HOUR(D6)*800+400)  ↓ =(INT(D6*24)+IF(MINUTE(D6)<30,0,0.5))*800 としてみたらどうでしょうか。 1日=24時間=1、1時間=1/24になります。 時間部分:INT(D6*24) 分を30分より上下の判定をして時間にする:IF(MINUTE(D6)<30,0,0.5) あとは、時給をかけています。

ryo-ta_kun
質問者

お礼

ありがとうございました。 お陰様で解決いたしました。 24時間を越えてもちゃんと計算され、しかも短い。 わかりやすい説明もあって大変助かりました。 活用させていただきます。

その他の回答 (4)

回答No.5

私も給与計算の表を作った事がありますが、「:」の入力が面倒なので 時、分を別のセルに分けて入力しました。 皆さんの回答で、解決すると思いますのであえて、方法は書きませんが、 興味があって、分からない事等あれば、また質問してください。

ryo-ta_kun
質問者

お礼

勤務時間の表示を ○時間○分 にこだわってしまっていたため、 時と分に分けて入力するということを思いつきませんでした。 ありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

#1の者です。少し追加させてください。年月日(ymd)と時分秒(hms)の書式において、この2つは分別されていて、h-->dへの繰り上がりが、書式上でして欲しくても、そういう書式がなく、出来ないようです(dとhmsを混ぜた書式が無い様です)。 それで時間合計の出ているセルをD6として=DAY(D6)で日が (24時間で割った商が)出ます。 一般にエクセルで年月日や時間・時刻を扱うとき (1)エクセルの日や時間計算の仕組みを使う。 (2)時、分、秒を、通常の数として扱い、最後に繰り上がりを、自分で計算する。 の2つの方法が考えられます。 (1)は年月日の時は日数計算が引き算(DATEDIF)足し算で出きることや曜日(WEEKDAY)算出などの点で便利ですが、時間に関しては、(2)も判りやすいのではと個人的に思います。入力においても、年月日の場合は/,時分秒の場合は:の入力を強制されますしね。

ryo-ta_kun
質問者

お礼

ありがとうございます。 日と時間に繋がりがないことを知りませんでした。 IF関数にDAYを入れると長くなるのはわかっていたので、 実際に数式をいれてみることはしていませんでした。 合計時間が24時間を越えるとは限らず、48時間を越える場合も あることに気がついたので、24で割って、商と余りを使う方法も 考えたのですが、途中で挫折してしまいました。

  • lilact
  • ベストアンサー率27% (373/1361)
回答No.2

すでに回答がありますので、違う観点から。 給与計算用のエクセルフリーソフトがいろいろありまして、インターネッ トからダウンロードして使えます。 参考URLに記したのはその一つです。 このような物を使うのも一つの手です。また、どのような計算式を使って いるのかを見て自分の計算式を手直しするための参考にもできます。 ご参考までに

参考URL:
http://isweb30.infoseek.co.jp/area/youryume/excel2.htm
ryo-ta_kun
質問者

お礼

回答ありがとうございます。 バイト先から明細が提示されないので、自分でメモ程度に 管理しようと思ったのです。 フリーソフトもいろいろ探してみたのですが、 2人以上の管理を目的とするものが多く、 保護がかかっているため、いらない欄を削除することができませんでした。 その点でフリーソフトは使いづらかったのです。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

X時間y分が並んでいる列の合計が24時間を越える時、 書式-ユーザー設定で[h]:mmとすれば、例えば9時間を26日働く(9時間を26行足す)と、234(時間)等表示されます。書式をhh:mmとすると18:00と表示されます。またそのセルを編集-コピー-他のセルを指定して貼り付け-形式を選択して貼り付け-値とすると、書式が標準だと上例では9.75となり、9日と24×0.75=18時間と言うことです。表示形式の問題だと思います。 それで考えなおしてみてはどうでしょう。 またD6と6行で終わっている意味はなんでしょう。月のうちの明細は7行以下にあるのですか。

ryo-ta_kun
質問者

お礼

回答ありがとうございます。 x時間y分と表示させたくて、 過去の記事を元に書式を h"時間"mm"分" から [h]"時間"mm"分"に変更したのですが、 [ ]は単なる表示方法の解決だけではなかったんですね。 6行で終わっているのは、今年の4月のバイト回数が5回しかなく、 6行目で4月分の合計を出したからです。 ちなみに、1行空けて、8行目から5月の明細が入っていってます。 1ヶ月のバイトの回数が少ない為、24時間を越えることを想定していませんでした。 10月に入り、初めて24時間を越えてしまい、数式の変更をしなければ ならなくなりました…。

関連するQ&A

  • エクセルで空欄時に計算しない方法は

    皆様こんにちわ エクセルで次のようにして勤務時間を計算しているのですが D列(勤務開始時間)E列(勤務終了時間)F列(実働時間)G列(早出残業時間) 現在G列には次の数式が入っています =IF( MIN( "8:00",E2)>MAX( "4:00",D2),(MIN( "8:00",E2)-MAX( "4:00",D2)),0) +IF((MIN("22:00",E2)>MAX("18:00",D2)),(MIN("22:00",E2)-MAX("18:00",D2)),0) この数式ですとD・E列が空欄の場合G列に8:00が表示されてしまいます。 D・E列が空欄の場合G列に計算をさせない(もしくは0:00と計算)させるには どうすればよいでしょうか

  • 給与計算の計算式について

    給与計算の数式が分からずこまっています。 添付している写真のExcelにて給与計算ができるようにデータを作成しているのですが、I列の数式が分からずに苦戦しています。教えてください。 今の数式は  =IF(H10>$O$8,H10,IF(H10="","",H10)) です。 この数式だとI列は最大時間8:00なのに、10列のように13:00と表示されてしまいます。 10列の場合には、I10に8:00と表示されるように変更したいです。 H列がブランクの場合には、I列は0若しくは、ブランクが出るようにしたいです。 どなたか分かる方、ご教示ください

  • 給与計算について

    こんにちわ!初めて投稿します(^^) エクセルを使って時給制の給与を出したいのですが合計の時間数が24時間を越えると計算がおかしくなってしまいます(泣) 使った関数は =E88*HOUR(G88)+(E88/60)*MINUTE(G88) です

  • 時間を自給として計算してかつ個別に合計を出すには?

    A   B    C    D    E F  G 1担当  始まり  終わり 合計 2Aさん 8:00  10:35 2:35 3Bさん 9:50  15:00 5:10 4Cさん 23:00  2:00 3:00 5Aさん 2:00  5:00  3:00 6 7   Aさん合計 Bさん合計 Cさん合計 勤務時間を打ち込むと給料も計算できるように考えているのですが、 担当者ごとに合計を分けて、そして時間給を5分単位で時間を計算したいんです。 たとえば私の自給900円として。 2行目の様にA列で担当者がAさんの時に2時間35分勤務した場合の金額の合計をAさんの場合はAさんの合計(B7)に、Bさんの場合はBさんの合計としたいのですが、条件での関数はいけるんでしょうか?

  • エクセル2003で勤務時間計算をしたいのですが、

    エクセル2003で勤務時間計算をしたいのですが、 現状は下記のように、H列の計算式が30分単位なのですが、 5分単位で給与計算して、小数点以下を切り捨てするには、 H列の計算式のどこを訂正するとよろしいでしょうか? ■現状(時給880円の場合) C列     D列     E列     F列     H列 始業時刻  終業時刻  休憩時間  実働時間  日給 10:00    17:30     0:45    6:45     5720円 H列の計算式 =IF(OR(C9="",D9=""),"",G9*HOUR(F9)+IF(AND(MINUTE(F9)>=0,MINUTE(F9)<=29),0,IF(AND(MINUTE(F9)>29,MINUTE(F9)<=59),G9/2,G9)))

  • エクセルの給与計算、各時間帯の合計について

    煮詰まってしまったので教えて頂けると助かります。 エクセルで給与計算表を作成しているのですが、 3つほど勤務時間ごと(というか時給ごと)で一度各合計を出しています。 (1)9:00~17:30→9:00をA1、17:30をA2に入力、時間のセルA3には8:30と 表示されるようにしています。 この時間×時給(A4とします)=で金額が出るよう計算しているのですが、 (1)の計算式は(A3*A4)*24という計算式が入っています。時給が950円なので、 合計は8:30×950円=8,075円です。(お昼休憩時間も給与が支給されるので休憩分の引き算はナシです) (2)に17:30~17:45、時給は同じく950円で、この場合0:15×950円で238円となるよう計算しています。 このような感じで一ヶ月の合計を縦計で=SUM(月の初め:月の終わり)で の数式で出してみたのですが、どうも四捨五入されてしまうようなのです。 (例:\1,427が\1,425と表示されてしまいます) セルの書式設定を色々試して入力してみましたが、ダメでした。 おそらくROUNDで計算するのだろうという答えが出ましたが、 恥ずかしながら数式がよく分かりません。 どなたか詳しく分かる方がいましたら教えて頂けると助かります。 よろしくお願い致します。

  • 時間の合計計算ができません。

    給料計算の表なんですが、  A1  B1      C1     D1     E1      F1 日付 始業時刻 終業時刻 勤務時間 休憩時間 実働時間 と項目をつくりました。 終業時刻ー始業時刻=勤務時間とし、休憩時間は1時間と決まっているので、日付を入れた時点で自動入力されるように=IF(A1<>"","1:00","")といれました。すべてうまくいったと思ったんですが、E1のタテの合計が空白になってしまいます。 どう解消したらいいでしょうか? いい方法をご教授ください。お願いします。

  • 残業代の計算をエクセルで・・・。

    エクセルで残業代の計算をしたいのですが、どのようにすればいいのかが全く分かりません。 A列は日付、B列は出勤時間、C列は退勤時間、D列は勤務時間(単純に退勤時間から出勤時間を引いた値)、E列に休憩時間が入力されています。 希望としてはF列に実働時間が、G列に残業時間が入るようにしたいのです。 ①休憩時間は原則1時間ですが、例えば30分しか取れなかった場合は本来取るべきだった残りの30分を残業代に含めることにしています。 ※労基法?ではあまり良しとしていないようですが、ここではあえて無視をしています。 ②勤務時間は午前8時30分から午後5時15分までで、それ以降に勤務していた場合は残業代として15分刻みで支給します。 以上の条件を考慮した残業時間がG列に出る関数がわかりません・・・。 また、土日祝日に勤務した場合は、H列に休日出勤時間が出るようにしたいのです。 給与計算を担当することになったのですが、前任者は一つ一つ手計算をしていたようなのですが、手間がかかり、また間違いの元にもなるかと思いエクセルの数式で何とかできないかと思い質問させていただきました。 何卒ご協力お願いいたします。

  • エクセルで時給計算教えてください

    エクセル2010で出勤簿、時給計算をすることになりました。 D列に出勤時間 E列に退社時間 F列に勤務時間(休憩時間も拘束時間として給与あり) F列の勤務時間を15分単位で計算したいのですが どういう計算式を入れたら良いのかわかりません。 またF列の最下段には月の合計勤務時間数を入れたいのですが SUMで良いのでしょうか? 難しくてよくわかりません。 よろしくお願いいたします。

  • エクセルの計算

    質問させていただきます。 Aの列に飛び飛びでランダムの日付があり、Bの列に曜日が縦に並んでいます。 A列の日付を入力したら曜日が自動で出るようにB列に以下を入れました。 =IF(A1<>"",MID("日月火水木金土",WEEKDAY(A1),1),"") このとき、土曜は青、日曜は赤と条件をつけました。 そしてC列に人数、D列に合計金額の欄があり、人数×単価をDに入れました。 このとき、条件として土曜日曜はプラス1,000円となります。 IFとORで対処し、一日の計算はどうにかできました。 1期間の合計(平日は平日の欄、土日は土日の欄)を下に入れるのですが、上記に書いたとおり、日付はカレンダーではなくランダムで入っているので、土日だけの計算は手作業で計算させています。 これを土日は土日、平日は平日で計算させる方法はありませんでしょうか? たとえば土か日と記入されているものだけを集めて計算させるとか。 説明に不足があればどんどんご指摘下さい。

専門家に質問してみよう