• ベストアンサー

エクセルで出勤簿作成・土曜日の計算について

いつも大変参考にさせて頂いています。VBAを現在勉強中で本を参考にしながら、アルバイトの「出勤簿」を作成しています。ただ平日は9:30~18:30の計算で勤務時間の計算ができるのですが、土曜日は9:30~12:00(休憩時間1時間はありません。)の場合、数式のエラーが出てしまいます。関数は出勤時間の入力ではCEILING、退勤時間ではFLOORを使用しています。(30分単位で切り上げ・切り捨てです。)土曜日の計算の場合どのようにすればエラーは出ないでしょうか?

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

  • ベストアンサー
  • a987654
  • ベストアンサー率26% (112/415)
回答No.2

先ず、CEILINGもFLOORどちらもエクセルの関数ですよね。 VBAなんて関係ない話ではないでしょうか? NO1の方も言われていますがいたずらに質問を分かりにくく する様な書き方をするのはやめましょう。 質問に対する答えは IF文で平日と土曜を分けて計算式を作るだけの事と思います。 =IF(WEEKDAY(シリアル値,1)=7、土曜の算式、平日の算式)

hiro3310H
質問者

お礼

分かりにくい質問をしてすみません。(他の資格の合格発表があり、合格していて動転していたため分かりづらくなってしまいました。)VBAを使用しているのは「印刷」「プレビュー」「Excelの終了」等です。 実労時間には平日9:30~18:00 出勤(30分単位で切り上げ) →=MAX(CEILING(タイムカードの出勤時間,"00:30"),"09:30") 退勤(30分単位で切り捨て) =IF(タイムカードの退勤時間="","",FLOOR(タイムカードの退勤時間,"00:30")) 勤務時間 =IF(実働出勤時間="","",MIN(実働退勤時間,"18:00") -実働出勤時間-"01:00"と設定しています。1時間は昼休みです。 土曜日の場合、この算式を使うと「数式エラー」が出てしまいます。自動的に土曜日の算式だけを変えるにはどのような処理をすればよいでしょうか?

hiro3310H
質問者

補足

土曜日は9:30~12:00までです。

その他の回答 (1)

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

平日もデータと関数式 土曜のデータと関数式 を各1行でも挙げて、どういう式を入れようとしたのか、書いて質問すべきだ。謎解きをやらせるような質問はやめるべきだ。

hiro3310H
質問者

お礼

謎解きをやらせるつもりはありませんでした。誤解をあたえるような質問をしてすみません。

関連するQ&A

  • 計算式をいれてないセルに表示されてしまう・・・

    エクセル(オフィス2000)で給料計算の表を作ったのですが、 (退勤時間-出勤時間)-(昼休憩+夜休憩)-(残業(1)+残業(2))=稼働時間 という式で、平日ならば平日の列のセルに、土曜日ならば土曜の列のセル稼動時間を表示させるように計算式をいれたのですが、土曜日の稼動時間が土曜日セルに表示されるのですが、平日のセルにまで同じ稼動時間が表示されてしまいます。 (計算式もはいっていないセルなのに・・・)ちなみに、退勤時間、出勤時間は 15分単位なので、CEILING、FLOORで切り上げ、切り捨てをしていて、退勤時間に 限り、14分に退社したら15分に29分に退社したら30分に44分に退勤し たら45分に59分に退勤したら、00分にと切り上げる為、IFで指定しています。 IF(MINUTE($E5)=14,CEILING($E5,"0:15:0"),IF(MINUTE($E5)=29,CEILING($E5,"0:15:0"),IF(MINUTE($E5)=44,CEILING($E5,"0:15:0"),IF(MINUTE($E5)=59,CEILING($E5,"0:15:0"),FLOOR($E5,"0:15:0"))))) 質問している自分でもこんな説明でわかるのか?って思っていますが、もし意味を理解していただけてわかる方がいらっしゃいましたら助けてください。

  • エクセルでの勤務合計時間の計算

    エクセルで勤務合計時間を計算していますが、切り捨て・切り上げの関数入力が上手くいきません。 条件として 1)合計時間は数値に変換、0.5ずつ増やす    8時間30分(8:30)→8.5                               9時間(9:00)→9 2)出勤・退出時間で00~10分は00に切り捨て   8:02→8:00 3)出勤・退出時間で11~30分は30に繰り上げ   8:25→8:30 4)出勤・退出時間で31~45分は30に切り捨て   8:42→8:30 5)出勤・退出時間で46~59分は00に繰り上げ   8:56→9:00 書き方は模索中ですが    A   B   C   D 1 9:00~17:00  8 2 8:56~17:08  8 D列に合計時間を出す関数式を入力していきたいです。 説明が下手ですみません。 こういう場合の式はどのようになるのでしょうか? 特に(2)の10分切り捨てがあるのでややこしく、FLOORやCEILING等を使ってみたのですが 上手くいきませんでした…。 どなたか知恵をお貸ししてくださると幸いです。

  • 勤務時間の集計です

    Exelでタイムカードの集計をするのに、退勤時刻から出勤時刻を引いて休憩時間を引きます。 出勤と退勤はFLOORとCEILINGを使って15分単位でまとめますが、さらに出勤時刻を早く来ても8:30で計算させる関数の使い方を教えてください。よろしくお願いいたします。

  • エクセルで時間の切り上げと切り捨て

    A1のセルに時間の数値を入れた時15分より前だったら切り捨て15分より後だったら切り上げとする方法があるでしょうか?ceilingと floorを使ってみたのですが上手くいきません。 よろしくお願いいたします。

  • エクセルで悩んでます。。。

    エクセルで悩んでます。。。 今エクセルの時間設定で悩んでます。。。。 誰か教えて下さいm(_ _)m!!! 表: A,区分 B,出社時間 C,退社時間 D,就業時間 E,残業時間 となってます。 Aの区分のところには、『通常出勤 定休 休日出勤 早出 遅出』とドロップダウンで選択できるようになってます。 区分ごとに時間の単位を15分切り捨て、10分切り上げなどに変えたい場合はドーしたらいいのでしょうか??? 例:1 A,通常出勤 B,8:30 C,18:00 D,8:00 E,0:00 通常出勤の場合 出社時間 何時に出社したとしても9:00スタートに、退社時間 30分切り捨てにしたいです。 例:2 A,早出 B,7:10 C,19:00 D,10:50 E,2:50 通常出勤以外の場合 出社時刻だけを切り上げ切り捨て無しにしたいです。 今のところDの式は =IF(COUNT(A1:B1)<>2,"",FLOOR(B1,"0:30")-CEILING(A1,"0:15")-IF(FLOOR(B1,"0:30")-CEILING(A1,"0:15")>="6:00"*1,"1:00",0)) 分かりづらい説明ですみません。。。。 教えて下さい(;O;)

  • エクセルで時刻の切捨てと切り上げ

    FLOORとCEILINGを使って切り上げと切捨てをやってみるのですが、なかなかうまくいきません。最初はうまくいったのですが、内容が変わったので変更しようと思ってやってみたのですが駄目でした。以下の内容にしたいのですが教えてください。 9:00~9:15→9:00 9:16~9:30→9:30 9:31~9:45→9:30 9:46~10:00→10:00

  • Excel での出退謹表の計算のしかたがわかりませ

    Excel を勉強中の者です。 出退謹表を作る学習で出退謹表の計算をするのですがどのように計算したらいいのかわかりません。 条件 1.出勤予定時刻より早くきた場合、出勤予定時刻を出勤時間とする。 2.退勤予定時刻より遅く出たら退勤予定時刻を退勤時間とする。 3.その他は実時刻を出退謹時刻とする。 4.勤務時間を求める。(退勤時間-出勤時間) 5.時刻丸めにCEILING関数を用いる。 説明不足ですいませんが詳しい方教えてください。

  • エクセルで出勤簿を作成しています。

    お世話になっております。 題名どおりエクセルで出勤簿を作成しています。 そこで出勤時間・退勤時間・合計時間・定時・残業時間という表を作成しています。(定時・残業時間にはそれぞれIFの関数を入れています。) その残業時間の部分に、分が30分以上のときは1時間繰り上げと言う数式を入れたいのですが(例えば残業が2:30ならば3:00、2:10ならば2:00)、どの数式を入れればいいのかわかりません。わかりにくい説明で申し訳ありませんが、返答よろしくお願いいたします。

  • エクセルで残業時間計算

    たくさんの質問が既出なのですが、行き詰ってしまったのでヘルプをお願いします。 B2に出勤時間 C2に退勤時間 D2に休憩時間 E2に勤務時間 F2に残業時間 を表示します。 15分刻みで時間を計算しますがB2、C2、D2には自分で15分ごとのキリのいい時間を入力します(19:50退社でも19:45と入力します)。 今、E2には =C2-B2-D2 という数式を入れてあります。 F2には =FLOOR(E2,"0:15")-"8:00" という数式を入れてあります。残業時間は単純に勤務時間-8時間と考えたからです。 ところが、ウチの会社は時として遅番や早帰りなどがあり、一日の労働時間が8時間に満たない場合があります。これは1ヶ月トータルで考えて残業時間からマイナスになります。F2はこの数式では「####」になってしまいます。マイナス時間も表示させて、最終的に表の下の方で合計を出したいのです。 この場合F2の数式はどうすれば良いのでしょうか?FLOORは相応しくないと言う事でしょうか?

  • タイムカードにおいて、切り上げや、切り捨てをVBAで作成したいのですが

    タイムカードにおいて、切り上げや、切り捨てをVBAで作成したいのですが、 切り上げは、FixとRoundupをどちらが最適かわかりません。 同様に、切り捨ては、IntとRounddownのどちらが最適ですか? 使い分けを教えて頂きたいと思います。 例(切り捨て) Const zam As Integer = 6   '切り捨てを6分単位にする zag = 退勤時間 - 終業時間 (Int(zag / zam) * zam) / 60 よろしくお願いします。

専門家に質問してみよう