• ベストアンサー

EXECELでの給与計算・・・残業時間

8時間以上勤務した場合の、残業時間を出したいのですが、8時間未満の場合は、-(マイナス)のため「####」と表示されてしまいます。 8時間以上の場合は、正常に表示されます。 =IF(A>=$B$3,"",A-$B$3/24) Aは実働時間で、B3は8時間が設定されているセルです。 どのようにしたら、よろしいのでしょうか。どうぞよろしくお願いいたします。

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 A(A3?)には、「8:30」のように時間が入っていて、B3には、「8」という数値が入っているのでしょうか? その場合は、IFの条件式がおかしいと思いますが。 (不等号の向きもおかしいです。) 条件式を以下のようにすれば、8時間未満は全部「""」になるからマイナスになるはずはないのでは? =IF(A3<$B$3/24,"",A3-$B$3/24) もしくは数式を単に、 =A3-$B$3/24 にして、セルの表示形式をユーザー定義で、 「[h]:mm;」 にするとか。

apricot_phoo
質問者

お礼

ありがとうございました。 =IF(A3<$B$3/24,"",A3-$B$3/24) ↑こちらを参考に修正いたしましたら、直りました。 本当に助かりました。ありがとうございました。

その他の回答 (2)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

日付や時刻の形式の場合、マイナス値はそうなります。 「ツール」「オプション」「計算方法」で「1904年から計算する」にすればマイナス表示は可能ですが 入力済の日付や時刻がおかしくなります。(シリアル値が4年ずれる為) MARURU01さんの言うように条件を修正すればマイナス値は""の表示ですよね。 逆にマイナス値が必要な場合は、別セルに条件と式を逆にした =IF(A3>$B$3/24,"",$B$3/24-A3) を作って計算することをお奨めします。

apricot_phoo
質問者

お礼

早々のご返答を、ありがとうございました。 修正できました。本当に助かりました。 ありがとうございました。

  • KYOSEN
  • ベストアンサー率22% (68/300)
回答No.2

#1の方の意見に同意します 私の場合 ””のかわりに 0 を使用します。 数値データ/文字データをなるべく混在させたくないので・・

apricot_phoo
質問者

お礼

ありがとうございました。