• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCELの関数について)

EXCELの関数について

このQ&Aのポイント
  • EXCELの関数を使用して実働時間と残業時間を計算する方法を教えてください。
  • 実働時間が8時間に満たない場合は0と表示し、休日や労働がない日は-8と計算される問題について解決方法を教えてください。
  • EXCELを普段触らないため、実働時間と残業時間の計算に関する関数の使用方法が分かりません。どなたか教えていただけますか?

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

  • ベストアンサー
  • skp026
  • ベストアンサー率45% (1010/2238)
回答No.3

やり方はいろいろあります。 一般的にはif関数を使い、「もし実働時間が8時間以上なら、実働時間から8マイナス、異なれば0を返す」といった式にします。具体的には以下のような感じです。 =IF(B12>=8,B12-8,0) ※ 参照してるセルは例です。 ※ 分解して説明しますと、 =IF(B12>=8 ここが判定をしています。>=8は、8を含めたそれ以上です ,B12-8 ここが該当した場合の動作です ,0) ここは異なった場合の動作です ※ セルの式では、if関数以外にも条件分岐する関数があります。 https://www.forguncy.com/blog/20180221_branch ※ 深夜勤務時間などを計算したくなった場合など、単純に稼働時間から8マイナスでは対応できなくなる場合は、条件分岐をし直したり、複数の条件分岐を組み込んだりします。複数分岐の例が必要でしたら、Googleなどで以下のキーワード検索をお試しください。 Excel 式 複数分岐 例 Excel 式 複数分岐 サンプル 以上、参考にならなかったらごめんなさい。

noname#245666
質問者

お礼

ありがとうございました。ご教授いただいた方法で解決できました。

すると、全ての回答が全文表示されます。

その他の回答 (3)

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

>普段EXCELは触らないか・・・ これが根本原因です。そんな者に社員の給与(金銭)にかかわる計算をさせて、間違っていたらどうするのか。「上」はどう考えているのか不思議。 エクセルを、文章ワープロぐらいのつもりで、甘く見ているのかも。 今は質問者は、周りにいる、エクセルの経験者に相談しつつ、やるほかないだろう。質問者もエクセル本をまず1冊読むとか、スクールに行くとか。エクセルの基本概念(用語)もわからないから用語が選べず、WEB照会もできない状態だろう。 質問コーナーで解説できる量ではないし、質問は多岐にわたるはずだから。 質問コーナーでは手に負えない。>ご教授いただけました・・は不可能。 場合分けのために、IF関数を使う必要が出てくるだろうが、質問者の場合はそれ以前の問題がある。 またデータとして、出勤、遅刻、早退のサインも必要では? ーー 質問は模擬データを掲げて、説明文を添えて質問してほしい。 ==== Excelでは日付、時刻を扱うのは、セルの値を日付シリアル値に直して扱い、時刻も、1日と整合性を採れるように考えられている。 取り敢えず、Googleで「エクセル 日付シリアル値」で照会し 記事を読め。 整数部分が日を特定し、小数部分は時刻を表す。 こういうのは、自ずと常識でわかるはずはなく、勉強しないと、教えてもらわないと、わからない、技巧的なものだ。MSなどの設計者が、熟慮の上採用したと思われる。 ーー エクセルのシートには、日付シリアル値で入力しておかないと、 (1)日付・時刻の計算ができない。(でないと、技巧的な自作計算が必要で時間がかかり、素人では誤りも起こる) (2)エクセルの日付、時刻を扱う関数は、データ(関数の引数で指定するデータ)のあり様が日付シリアル値であるひつようがある。単純な数値や文字列データでは使えない。 (3)また多彩な、日付や時刻に関する表示形式も元データが日付シリアル値時刻シリアル値でないと使えない。 (4)エクセルの機能の条件付き書式やフィルターでも、内容が日付の場合、日付データが、どうなっておるか、いつも注意が必要。

noname#245666
質問者

お礼

-

すると、全ての回答が全文表示されます。
  • FEX2053
  • ベストアンサー率37% (7995/21384)
回答No.2

では、その数値を24で割って「日付シリアル」に変換したセルを作り、「日付シリアル」として扱って、各種日付/時刻の関数を使って計算してください。時刻を小数のまま使うと、思わぬところで問題が出てきますから。 日付シリアルに変換しておくと、計算に向いた関数がいくつも使えますよ。

noname#245666
質問者

お礼

ありがとうございました。今回求められている勤務表には日付シリアルが必要なケースには至らなかったのですが、便利そうなので自己学習したいと思います。

すると、全ての回答が全文表示されます。
  • FEX2053
  • ベストアンサー率37% (7995/21384)
回答No.1

エクセルの時間計算は1日を1とする「日付シリアル」で行われています。ですので「8」を引いちゃうと8日前の同じ時間ということになり、マイナス表示になるのです。 TIME関数を使って、=(実働時間のセル)-TIME(8,0,0)としてみて下さい。 実際にどういう計算をしているかは、セルの表示形式で「標準」にしてみるとわかると思います。

noname#245666
質問者

お礼

ありがとうございました。今回の件では日付シリアルが必要そうな案件ではなかったのですが、自分なりに学習しておきたいと思います。

noname#245666
質問者

補足

言葉が足りませんでした。申し訳ありません。 高速・休憩・実働時間のセルは数値で設定しています。(9時間拘束なら「9.00」、8時間15分実働なら[8.25」になります) その上で、拘束9時間休憩1時間の場合、実働8時間なので残業は「0.00」なのですが、これが休日で実働0時間の場合自動計算に任せていると残業が「-8.00」とされてしまうのです……。

すると、全ての回答が全文表示されます。

関連するQ&A