アプリ版:「スタンプのみでお礼する」機能のリリースについて

残業の累計をとっています。

画像にありますように、
11月16日は勤務時間「8:00」のところ「9:00」で累計「1:00」
11月17日は同様で「累計2:00」となっています。

他の月も同じフォーマットで利用するため、11月は空欄ですが
「C8」には=IF(C7="","",C7-C6)
「D8」には=IF(D7="","",C8+(D7-D6))と入れました。
それを右にコピーしたところ「H8」が「#」のエラーとなってしまいました。

画像はエラーにならないように、計算式を修正してあります。
H8はIF(H7="","",H7-H6)
I8はIF(I7="","",H8+(I7-I6))

<質問1>
C8やD8をどのようにすれば計算式が正しくできますか?

<質問2>
画像の11/20(火)は休日です。現在休日セルには「/」が表示されています。
当然こちらも計算できず「#」となります。
これはどのように回避すれば良いでしょうか?

よろしくお願いします。

「Excelの計算式を教えてほしいです」の質問画像

質問者からの補足コメント

  • 早々のアドバイスありがとうございます。

    私の書き方がまずかったです。ごめんなさい。

    > 例えば、ご提示の添付図で、「N7は空白で、O7が9:00の場合」
    実働時間は毎日データが入力されますので「N7が空白でO7にデータが入る」ということはありません。

    > 各日の残業時間の欄でも存在すれば
    確かにおっしゃるとおりです!少しでも行数を減らしたくて残業時間の計算をせずに
    直接累計をとろうとしておりました。。。

    「/」の場合は左の列の累計をそのまま表示して翌日の計算につなげていきたいです。
    IF関数をつなげればよいのでしょうか?
    できましたら計算式までお教えいただけるとうれしいです。
    よろしくお願いします。

    No.1の回答に寄せられた補足コメントです。 補足日時:2019/03/07 16:28
  • たくさんのアドバイスありがとうございます。
    ひとつひとつ試してみると「こういうケースはどうしたら良いのだろう・・・」と
    出てきてしまいました。
    No1様の計算式を入れてみました。
    すると、
    「6行目、勤務時間が「/」の日に出勤をして7行目に「8:00」となっていた場合にエラーとなってしまいました。
    (0時間の予定が8時間勤務をした、という計算をさせたい)
    また、その逆のケースもあります(勤務時間「8:00」となっているが実働では「/」)
    (8時間の予定が0時間なので「-8:00」で帳尻をあわせたい
    そのような場合に「###」表示にせず、計算をつづける、ということはできるのでしょうか?

    こちらのシートは12ヶ月分あり、年間や月の労働時間計算の元になるようになっています。

    画像を添付しようとしたのですが、新しい画像追加が出来ず、文字での質問で失礼します。
    よろしくお願いします。

      補足日時:2019/03/11 11:05

A 回答 (6件)

No5です。



>勤務時間が「/」の日に出勤をして7行目に「8:00」となっていた場合にエラーとなってしまいました。
6行目が「/」のままとかでは?
式をご覧になればわかるはずですが、単純に、7行目が数値(=時刻)なら、6行目との差を求める式になっているので6行目が数値で無ければエラーになります。
また、その場合の計算方法の説明がないのでわかりません。

そのような場合は、6行目を0と判断して良いものと勝手に仮定して、
さらにNo4様の考え方をお借りして拡張するなら、
C8セルに
 =IF(C7="","",SUM($B7:C7)-SUM($B6:C6))
の式を入力して、右側にフィルコピーの方が良いでしょう。

※ 説明にない条件に関しては、回答者側で適当に補って考えています。
  ですので、その想定外の条件で利用すれば、エラーが発生したり、
  想像していた(=求めていた?)のとは違う計算結果になったりします。
    • good
    • 0
この回答へのお礼

早々のアドバイスありがとうございます!

お礼日時:2019/03/11 13:03

No.1です。



質問者様の条件の方が緩いだけなので、そのままでも使えるはずですけれど?
(少し冗長ではありますが)

とは言え、No.4様の回答が、考え方がシンプルで良いように思います。
拡張した際に0表示が嫌な場合は、書式でも関数式でも簡単に消すことはできますので。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2019/03/11 10:42

H8に「 =SUM($C$7:H$7)-SUM($C$6:H$6) 」を入力します。


H8に入力したら、それを左右のセルにコピーします。(完了)

*空白や記号が含まれる範囲の合計をきちんと出してくれるSUM関数の柔軟性を利用します
*別の方が指摘の通り、24時間以上の時間表示セルの表示形式はユーザー定義から [h]:mm とします
(*もし何か条件を付けたい場合、SUMIF関数の活用も有効です)
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2019/03/11 10:42

No.2です。



>/」の場合は左の列の累計をそのまま表示して翌日の計算につなげていきたいです。

画像を拝見すると、M8セルが 10:30 となっているので
前日が休日の場合は一旦リセットするのだと思っていました。
結局常に累計を表示したい!というコトですよね。

D8セル(セルの表示形式はユーザー定義から [h]:mm としておく)に
=IF(D7="","",SUM(C8,IF(COUNT(D7),D7-D6)))

という数式を入れフィルハンドルで右へコピーしてみてください。m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2019/03/11 10:42

こんにちは!



お示しの数式を極力近づけると
C8セルの数式はそのままで
D8セル(セルの教示形式はユーザー定義から [H]:mm のようにしておく)に
=IF(COUNT(D7),SUM(C8,D7-D6),"")

として右へフィル&コピーではどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2019/03/09 19:11

こんにちは



どういう使い方を想定しているかが、よくわかりませんが・・・

>(H7="","",H7-H6)
のように、7行目が空白なら空白とする方式の場合で
>IF(I7="","",H8+(I7-I6))
のように、前のセル(H8セル)を参照する方式ではうまくないのでは?

例えば、ご提示の添付図で、「N7は空白で、O7が9:00の場合」
 ・N7は空白(→N8が空白)
 ・O7が9:00(→ N8を参照すると、O8は1:00)
と表示されるのでOKという予定でしょうか?
最初(=C列)からの累計を表示したいのではなかろうかと・・・

そのようなご予定であると勝手に解釈して・・・

7行目と8行目の間に、各日の残業時間の欄でも存在すれば、常にこれの総和をとれば良いのですが、累計しか示されていないので、「既出の累計値の最大値」を参照することにしました。
ご提示のレイアウトで、C8セルに
 =IF(C7="","",MAX($B8:B8)+IF(ISNUMBER(C7),C7-C6,0))
を入力して、右方にフィルコピーではいかがでしょうか?
(特殊な場合の表示をどうなさりたいのかがはっきりしないので、適当に設定してあります)
この回答への補足あり
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2019/03/09 19:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!