catch-img

シフト計算を正しく行うコツ!Excel関数の活用例と夜勤・残業の計算方法も解説

※2026年5月15日更新

シフト計算とは、従業員の勤務時間・休憩時間・人件費などをExcelや管理ツールを使って算出する業務のことです。

労働基準法では、1日8時間・週40時間という労働時間の上限(法定労働時間)が定められています。この上限を超えて労働させた場合は、25〜50%の割増賃金が発生するため、正確な計算が欠かせません。

正確なシフト計算を行うには、SUM・IF・COUNTIF・SUMIFなどのExcel関数を活用するのが有効です。関数を正しく使いこなせば、計算が複雑になりがちな夜勤の「日またぎ計算」や、残業時間の自動判定までスムーズに対応できるようになります。

この記事では、法令に基づくシフト計算の基本から、Excel関数の具体的な活用例、よくある計算ミスの対策までを解説します。

※Microsoft Excel は、マイクロソフト グループの企業の商標です。

■人気のコラム

コロナ禍だからこそシフト管理サービスを導入すべき3つの理由

手書きのシフト作成はもう古い?最新のシフト管理サービスとは

シフト制と固定制の違いは?効率よくシフト作成をするためには

飲食店のシフトの特徴 シフト管理サービスを使った効率の良いシフト作成の方法

目次[非表示]

  1. シフト計算で重視すべき3つの項目
  2. シフト計算に活用できるExcelの関数
  3. Excelを使ったシフト計算の具体例
  4. 日をまたぐシフト(夜勤)
  5. 残業時間を自動で判定する方法
  6. シフト計算でよくあるミスと対策
  7. シフト計算を効率的に行うには『シフオプ』がおすすめ
  8. シフト計算に関するよくある質問
  9. まとめ

シフト計算で重視すべき3つの項目

シフト計算を行う際は、法律を遵守しながら適切な労務管理を行うために、以下の3つの項目を重視する必要があります。

①1日・1週間の労働時間

労働基準法』第32条では、労働時間の上限が1日8時間・週40時間と定められています。

▼労働基準法 第32条

第三十二条 使用者は、労働者に、休憩時間を除き一週間について四十時間を超えて、労働させてはならない。

② 使用者は、一週間の各日については、労働者に、休憩時間を除き一日について八時間を超えて、労働させてはならない。

引用元:e-Gov法令検索『労働基準法

この労働時間を超えると法定外労働に当たり、働かせるには労使協定(36協定)を締結する必要があります。

シフトを作成する際は、1日・1週間単位で労働時間を計算して、従業員の労働時間が上限を超えないように管理することが重要です。

出典:厚生労働省『労働時間・休日』/e-Gov法令検索『労働基準法

②休憩時間・休日数

シフトを作成する際は、従業員の休憩時間や休日数についても計算します。労働基準法第34条・第35条では、休憩時間や休日数に関するルールが定められています。

▼労働基準法 第34条

第三十四条 使用者は、労働時間が六時間を超える場合においては少くとも四十五分、八時間を超える場合においては少くとも一時間の休憩時間を労働時間の途中に与えなければならない。
② 前項の休憩時間は、一斉に与えなければならない。ただし、当該事業場に、労働者の過半数で組織する労働組合がある場合においてはその労働組合、労働者の過半数で組織する労働組合がない場合においては労働者の過半数を代表する者との書面による協定があるときは、この限りでない。
③ 使用者は、第一項の休憩時間を自由に利用させなければならない。

引用元:e-Gov法令検索『労働基準法

▼労働基準法 第35条

第三十五条 使用者は、労働者に対して、毎週少くとも一回の休日を与えなければならない。
② 前項の規定は、四週間を通じ四日以上の休日を与える使用者については適用しない。

引用元:e-Gov法令検索『労働基準法

▼休憩時間や休日数に関するルール

  • 労働時間が6時間を超える場合は45分以上、8時間を超える場合は1時間以上の休憩を付与する
  • 毎週1日の休日または4週間を通じて4日以上の休日を付与する

日によって勤務時間が異なる従業員がいる場合や、定休日がない24時間営業の店舗などでは、休憩・休日の計算が複雑になりやすいため注意が必要です。

また、休憩時間中に行った電話・来客対応や、待機のために発生する手待ち時間などは、法令上の休憩時間として含めることはできません。

出典:厚生労働省『労働時間・休日』『労働時間・休憩・休日関係』/e-Gov法令検索『労働基準法

③各従業員の合計労働時間

従業員の時給に応じた正しい給与額を計算するために、給与支払いの締め日となる一定期間の合計労働時間を計算する必要があります。

特にアルバイトやパートタイム従業員が多い職場では、各従業員の「月間の合計労働時間」を正確に把握することが求められます。これは、雇用保険や社会保険の加入条件を満たしているかの確認や、扶養内で働きたい従業員の年収調整(いわゆる「103万円の壁」や「130万円の壁」など)に対応するためです。

この際、法定外労働や深夜労働、休日労働が含まれていないかどうかを確認することが重要です。労働基準法第37条では、法定外労働や深夜労働、休日労働について割増賃金を支払う義務が定められています。

▼労働基準法 第37条

第三十七条 使用者が、第三十三条又は前条第一項の規定により労働時間を延長し、又は休日に労働させた場合においては、その時間又はその日の労働については、通常の労働時間又は労働日の賃金の計算額の二割五分以上五割以下の範囲内でそれぞれ政令で定める率以上の率で計算した割増賃金を支払わなければならない。ただし、当該延長して労働させた時間が一箇月について六十時間を超えた場合においては、その超えた時間の労働については、通常の労働時間の賃金の計算額の五割以上の率で計算した割増賃金を支払わなければならない。
② 前項の政令は、労働者の福祉、時間外又は休日の労働の動向その他の事情を考慮して定めるものとする。
③ 使用者が、当該事業場に、労働者の過半数で組織する労働組合があるときはその労働組合、労働者の過半数で組織する労働組合がないときは労働者の過半数を代表する者との書面による協定により、第一項ただし書の規定により割増賃金を支払うべき労働者に対して、当該割増賃金の支払に代えて、通常の労働時間の賃金が支払われる休暇(第三十九条の規定による有給休暇を除く。)を厚生労働省令で定めるところにより与えることを定めた場合において、当該労働者が当該休暇を取得したときは、当該労働者の同項ただし書に規定する時間を超えた時間の労働のうち当該取得した休暇に対応するものとして厚生労働省令で定める時間の労働については、同項ただし書の規定による割増賃金を支払うことを要しない。
④ 使用者が、午後十時から午前五時まで(厚生労働大臣が必要であると認める場合においては、その定める地域又は期間については午後十一時から午前六時まで)の間において労働させた場合においては、その時間の労働については、通常の労働時間の賃金の計算額の二割五分以上の率で計算した割増賃金を支払わなければならない。
⑤ 第一項及び前項の割増賃金の基礎となる賃金には、家族手当、通勤手当その他厚生労働省令で定める賃金は算入しない。

引用元:e-Gov法令検索『労働基準法

▼割増賃金の種類と割増率

種類
割増率
時間外手当(残業手当)

25%以上

※1ヶ月60時間を超える場合は50%以上

休日手当
35%以上
深夜手当
25%以上

割増賃金の計算方法や時間外手当が適用されないケースについては、こちらの記事で詳しく解説しています。併せてご確認ください。

出典:厚生労働省 東京労働局『しっかりマスター労働基準法 割増賃金編』/e-Gov法令検索『労働基準法

シフト計算に活用できるExcelの関数

シフト表は、従業員の名前・担当業務・勤務時間を分かりやすく、かつ管理しやすいように作ります。

従業員が多い職場や、早番や遅番など勤務時間のパターンが多様な職場では、関数を活用すると便利です。一度フォーマットを作成しておくとデータを自動的に計算できるため、シフト管理の負担を軽減できます。

シフト計算に活用できる関数には、次のような種類があります。

SUM関数

SUM関数は、数値の合計を求める関数で、従業員別の勤務時間を計算したいときに利用します。

書式は“=SUM(A1:A5)”になります。

セルの範囲を指定するほか、離れたセルを指定したいときは“=SUM(A2,B3,D10)”のように、カンマで区切って指定します。

また、セル同士だけでなく、“=SUM(A3,30)”のように、セルと足したい数値を指定することも可能です。

COUNT関数とCOUNTA関数

COUNT関数は、指定した範囲内の数値の個数を求めたいときに利用します。

COUNT関数の書式は“=COUNT(A1:A5)”になります。

数値以外の文字列や空白が入ったセルは個数としてカウントされません。

上記の例では、“3”(数字が入力されたセルの数)と算出されます。

従業員の名前のように、数値以外の文字列が入ったセルの個数をカウントする場合は、COUNTA関数を使用します。

COUNTA関数の書式は“=COUNTA(A1:A5)”になります。

空白以外のセルの個数がカウントされます。

COUNT関数・COUNTA関数は、1ヶ月当たりの出勤日数・従業員数などを求めたいときに活用できます。

COUNTIF関数

COUNTIF関数は、選択された範囲内で検索条件に合ったセルの個数を求めたい場合に利用します。

検索対象となるセルの範囲を選択して、設定する条件の数値または文字列を指定します。

書式は“=COUNTIF(A1:A5,”検索条件”)”となります。

検索条件はダブルクォーテーションマークで囲みます。

COUNTIF関数は、早番・中番・遅番というシフトパターンの場合に、時間帯ごとの稼働人数を確認する際に活用できます。

SUMIF関数

SUMIF関数

SUMIF関数は、指定した条件に一致するデータだけを合計できる関数です。シフト表のようなデータでは、特定の従業員ごとの勤務時間を集計する際に便利に活用できます。

基本構文は以下の通りです。

  • =SUMIF(検索範囲, 検索条件, 合計範囲)

この例では、A列の名前から集計したい従業員を検索し、一致した行のG列(勤務時間)を合計しています。

  • =SUMIF($A$2:$A$22,K2,$G$2:$G$22)

結果、該当するすべての勤務時間(8.0時間×3日分)が合計され、24.0時間と表示されます。

このようにSUMIF関数を使うことで、従業員別の勤務時間を自動で集計でき、シフト管理や労働時間の確認を効率化できます。

Excelを使ったシフト計算の具体例

ここからは、Excelの関数を用いて、1日当たりの個別の勤務時間や全体の労働時間、勤務時間に対する人件費を求める方法について解説します。

1人当たりの1日の勤務時間

次の画像は、1日のシフト表の例です。

C2に出勤時間、D2に退勤時間、E2に休憩時間を時刻形式で入力しています。

Aさんの勤務時間の合計を求めたいときは、F2に“=(D2-E2-C2)*24”を入力します。

上の図のように、F2の勤務時間が時刻形式で表示される場合は、セルの書式設定“表示形式”タブより“数値”を選択します。

30分単位の場合は、小数点の表示桁数を1桁増やすことで反映できます。

1日当たりの全体労働時間

1日当たりの全体労働時間の合計を算出するには、SUM関数を利用します。

上の図のように、F2:F6には個々の勤務時間の合計が算出されています。

F7のセルに“=SUM(F2:F6)”を入力することで、1日当たりの全体労働時間の合計を求められます。これにより、必要な人員が確保できているかどうかの確認が容易になります。

勤務時間に対する人件費

シフト表に“時給”の項目を追加すると、合計勤務時間に対する人件費を算出することが可能です。

人件費の項目のH2に“=F2*G2”を入力します。

1日当たりの人件費の合計を計算したい場合は、SUM関数で算出できます。

H7に“=SUM(H2:H6)”を入力します。

以下の画像のように、1日当たりの人件費の合計が計算されました。

なお、繰り返し行う操作・計算にはマクロ機能を活用することが有効です。マクロ機能を用いたシフト作成については、こちらの記事で解説しています。

日をまたぐシフト(夜勤)

飲食店や医療・介護施設、コンビニエンスストアなど、夜勤シフトがある職場では、「日をまたぐ勤務時間の計算」が大きな課題となります。ここでは、夜勤シフトの計算でつまずきやすいポイントと、正しい計算方法を解説します。

夜勤シフトで計算がマイナスになる原因

夜勤など日付をまたぐ勤務は、単純な「終業時刻 − 始業時刻」では正しく計算できません。

例えば、22時出勤〜翌6時退勤の場合、Excelは退勤時間と出勤時間を同じ日の時刻として扱い、「6 − 22」という計算をしてしまいます。その結果、計算値はマイナスになります。

夜勤シフトで計算がマイナスになる原因

これは、Excelが時間を「24時間を1とする小数(シリアル値)」で管理しているためです。6時は0.25、12時は0.5、22時は約0.917として扱われます。そのため、「0.25 − 0.917」のような計算となり、負の値になります。ただし、Excelは負の時間を表示できないため、セルには「######」と表示されます。

このように、日付をまたぐ勤務(夜勤など)は、この計算方法では正しく勤務時間を求めることができません。

IF関数を使った夜勤の時間計算

日付をまたぐ勤務時間は、IF関数を使って条件分岐させることで正しく計算できます。

例えば、Fさんのように「22:00出勤、翌6:00退勤、休憩1時間」の場合、出勤時刻の方が退勤時刻より大きくなるため、日付をまたいでいる勤務と判断できます。

IF関数を使った夜勤の勤務時間計算

▼計算式

=IF(出勤時刻>退勤時刻, 1-出勤時刻+退勤時刻-休憩時間, 退勤時刻-出勤時刻-休憩時間)*24

この式のロジックは以下の通りです。

  1. 出勤時刻 > 退勤時刻 の場合(日またぎと判断)

  2. 「1(24時間)− 出勤時刻 + 退勤時刻 − 休憩時間」で計算します。Excelでは「1=24時間」であるため、「1」を足すことで日またぎの計算を補正できます。

  3. それ以外の場合(日またぎではない)

  4. 通常の「退勤時刻 − 出勤時刻 − 休憩時間」で計算します。

例えば、22時〜翌6時(休憩1時間)の場合も、この式を使うことで実働時間(7時間)を正確に算出できます。

セル書式「[h]:mm」の設定方法

月間の合計労働時間など、24時間を超える時間を計算する場合、通常の時刻表示(h:mm)では正しく表示されません。

例えば、合計が「32時間30分」の場合、24時間がリセットされて「8:30」と表示されてしまいます。

これを防ぐためには、セルの表示形式を変更する必要があります。

  1. 対象のセルを右クリックし、「セルの書式設定」を開く

  2. 「表示形式」タブの「ユーザー定義」を選択

  3. 種類に「[h]:mm」と入力してOKをクリック

「h」を「[ ]」で囲むことで、24時間を超える時間もリセットされずに正しく表示されるようになります。

残業時間を自動で判定する方法

シフト計算では、法定労働時間を超えた残業時間を正確に把握し、適切な割増賃金を適用する必要があります。IF関数を使えば、残業時間の自動判定が可能です。

IF関数で法定労働時間(8時間)超過を判定する

IF関数を使うことで、1日8時間を超えた労働(残業時間)を自動で判定できます。

例えば、「労働時間が8時間を超えているかどうか」を条件にし、超えている場合のみその超過分を計算する仕組みです。

数値形式で労働時間を管理している場合は、次の式を使います。

  • =IF(労働時間>8, 労働時間-8, 0)

数値形式で労働時間を管理

この式は、「労働時間が8時間を超えていればその差分(残業時間)を表示し、8時間以下であれば0を表示する」という意味です。

深夜残業(22時〜翌5時)の割増計算

深夜時間帯(原則として22時から翌5時まで)の勤務には、通常の賃金に加えて25%以上の「深夜割増」が発生します。

また、その深夜労働が法定労働時間を超える時間外労働であった場合、「時間外割増(25%以上)」と「深夜割増(25%以上)」が重なり、合計で50%以上の割増賃金を支払う必要があります。

Excelで自動計算するには、通常の労働時間と深夜時間帯の勤務時間を分けて管理する工夫が必要です。シフトパターンが固定されている職場であれば、深夜勤務時間を別列で集計し、そこに割増率を掛けて算出する方法が実用的です。

シフト計算でよくあるミスと対策

Excelを使ったシフト計算は手軽で便利ですが、設定や入力のミスによって計算結果が大きく狂ってしまうケースがあります。よくあるミスとその対策を押さえておきましょう。

セルの表示形式が原因の計算ミス

「12時間形式(例:午後2時)」と「24時間形式(例:14:00)」が混在していると、計算が正しく行われない原因となります。すべての時間セルの表示形式を統一することが基本です。

▼よくある症状と対策

  • 症状1|勤務時間が「0」と表示される
    表示形式が標準や数値になっている可能性があります。「時刻」または「ユーザー定義([h]:mm)」に変更してください。

  • 症状2|計算結果が異常に大きい
    入力セルの表示形式が統一されていない(シリアル値と整数が混ざっている等)可能性があります。入力ルールを徹底しましょう。

  • 症状3|「#VALUE!」エラーが出る
    文字列が入力されているなど、計算できないデータが含まれています。セルの値を時刻形式(半角英数)で再入力してください。

休憩時間の引き忘れ

計算式から休憩時間を引き忘れてしまうと、労働時間が過大に計算され、結果として人件費の過払いにつながってしまいます。

対策としては、計算式には必ず休憩時間を含めるように定型化します(例:=退勤-出勤-休憩)。また、休憩時間の入力欄を必須にし、未入力の場合はエラーや警告色を表示する条件付き書式を設定するのも有効です。

COUNTIFS関数などを使い、「6時間超勤務で休憩が0」になっているケースをチェックする仕組みを作りましょう。

24時間を超える合計時間が正しく表示されない

前述の通り、合計労働時間が24時間を超えると、通常の表示形式では正しく表示されません。

例えば、月間160時間働いたはずが「16:00」のように誤表示されることがあります。

対策は。合計セルの表示形式を「[h]:mm」に変更する、または計算式の末尾に「*24」を付けて純粋な数値(時間数)として管理するようにします。運用を開始する前に、必ずテストデータを用いて計算結果が正しいかを確認することが重要です。

シフト計算を効率的に行うには『シフオプ』がおすすめ

Excelを活用することでシフト計算は大幅に改善されますが、従業員数が増えたりシフトパターンが複雑化したりすると、関数のメンテナンスや手入力のミスが負担になりがちです。

より正確で効率的なシフト管理・計算を目指すなら、クラウド型シフト管理システム『シフオプ』の導入がおすすめです。

シフオプ

シフオプなら、各従業員の希望シフトの収集からシフトの作成、労働時間の自動計算までを一つのシステム内で完結できます。法定労働時間を超過しそうな場合のアラート機能や、シフト作成時点での人件費の可視化機能も備わっているため、法令遵守とコスト管理を両立させながら、管理者の業務負担を劇的に軽減することが可能です。

シフト計算に関するよくある質問

Q.シフト計算で最低限押さえるべき法律は?

労働基準法における「法定労働時間(原則1日8時間、週40時間)」と、「休憩時間の付与義務(6時間超で45分、8時間超で1時間)」、「割増賃金(時間外25%〜、深夜25%〜)」の3点は、労務トラブルを防ぐために必ず押さえておくべき法律です。

Q.Excelで夜勤の勤務時間がマイナスになるのはなぜ?

Excelでは時間を「24時間を1」とするシリアル値(小数)で計算しているためです。例えば、「22時〜翌6時」の場合、「6(0.25)− 22(約0.917)」という計算になり、結果がマイナス(エラー)になってしまいます。IF関数を使って「24時間(1)」を足す補正が必要です。

Q.シフト計算を自動化するにはどうすればいい?

少人数の場合は、SUMIFやIFなどの関数を組み込んだExcelのテンプレートを作成することで、ある程度の自動化が可能です。しかし、人数が多い場合や法令チェックを厳密に行いたい場合は、手入力の手間やミスのリスクを減らすためにも『シフオプ』のような専用のシフト管理システムの導入がおすすめです。

まとめ

この記事では、表計算ツールを用いたシフト計算について以下の内容を解説しました。

  • シフト計算で重視すべき3つの項目
  • シフト計算に活用できるExcelの関数
  • 日をまたぐシフト(夜勤)
  • 残業時間を自動で判定する方法
  • シフト計算でよくあるミスと対策

正確なシフト計算は、従業員の正しい賃金支払いと法令遵守の基盤となる重要な業務です。

Excelの関数(SUM、IF、COUNTIF、SUMIFなど)を活用することで、日々の労働時間の集計や、計算が面倒な夜勤・残業時間の算出を効率化できます。

しかし、Excelの表示形式によるエラーや、手入力によるミスを完全にゼロにするのは難しいのも事実です。

業務規模が拡大してきた際や、より精度の高い労務管理・人件費管理を行いたい場合は、シフト管理システム『シフオプ』などの導入も視野に入れ、担当者の負担軽減とミスの防止に努めましょう。正しい計算方法をマスターし、健全な店舗運営にお役立てください。

資料請求

■人気のコラム

コロナ禍だからこそシフト管理サービスを導入すべき3つの理由

手書きのシフト作成はもう古い?最新のシフト管理サービスとは

シフト制と固定制の違いは?効率よくシフト作成をするためには

飲食店のシフトの特徴 シフト管理サービスを使った効率の良いシフト作成の方法

人気のコラムをもっと見る

導入事例

株式会社シュゼット・ホールディングス

株式会社シュゼット・ホールディングス

ヘルプ勤務による労働力の確保、シフト情報を活用した店舗運営へのアドバイスや採用手法の改善など、様々な業務改革ツールとして「シフオプ」を活用。
月40時間以上の業務節減!!業務効率化・人手不足対策・人件費・管理強化・シフト管理効率化など...

人気記事ランキング

タグ一覧

関連記事