勤怠管理表をExcelで作成していると、
- 遅刻者を毎回目視で確認している
- 欠勤や早退の判定が担当者ごとにバラバラ
- 人数が増えて確認漏れが発生している
- 勤怠チェックに毎朝時間がかかる
といった悩みが発生しやすくなります。
特に実務では、単純に出勤時間を見るだけではなく、
- 定時を超えているか
- 退勤時間が早すぎないか
- 出勤記録が空白ではないか
など、複数条件で判定するケースが非常に多くあります。
そこで便利なのが、ExcelのIF関数です。
IF関数を活用すると、出勤時間や退勤時間をもとに「遅刻」「早退」「欠勤」を自動判定できるため、確認作業を大幅に効率化できます。
この記事では、勤怠管理で実際によく使われるIF関数の判定方法を、実務視点で分かりやすく解説していきます。
目次
- ✅ Excelで遅刻・欠勤・早退を自動判定する基本の考え方
- ・勤怠管理でよく使う基本列の構成
- ・遅刻判定の基本IF関数
- ・TIME関数を使う理由
- ✅ Excelで遅刻を自動判定するIF関数の使い方
- ・9時を超えたら遅刻にする方法
- ・5分までは許容する遅刻判定
- ・空白セルを除外する安全な判定
- ✅ Excelで欠勤を自動判定するIF関数の考え方
- ・出勤時間が空白なら欠勤とする方法
- ・退勤時間も含めて判定する方法
- ・IF関数とAND関数を組み合わせる理由
- ✅ Excelで早退を自動判定する方法
- ・17時前なら早退とする方法
- ・空白セルを考慮した安全な数式
- ・早退判定でよくあるミス
- ✅ Excelで遅刻・欠勤・早退を1つのIF関数で判定する方法
- ・遅刻・欠勤・早退をまとめて判定する数式
- ・条件順序が重要になる理由
- ・実務ではIFS関数も便利
- ✅ Excelで勤怠管理をさらに効率化する実務テクニック
- ・条件付き書式で遅刻を赤色表示する
- ・COUNTIF関数で遅刻回数を集計する
- ・IF関数だけでは限界があるケース
- ✅ まとめ:ExcelのIF関数で勤怠チェックを効率化しよう
✅ Excelで遅刻・欠勤・早退を自動判定する基本の考え方
勤怠管理をExcelで行う場合、多くの人が最初にやってしまうのが「目視確認」です。
しかし、人数が増えるほど確認漏れや判定ミスが起きやすくなります。
特に、「9:00を1分でも超えたら遅刻なのか」「休憩を含めるのか」「空白セルはどう扱うのか」といったルールが曖昧なままだと、担当者によって判定が変わってしまいます。
また、IF関数は単純な条件分岐に見えますが、時間データ特有の注意点を知らないと正常に判定されないケースもあります。
ここを理解せずに作成すると、「なぜか遅刻にならない」「空白なのに出勤扱いになる」といった問題につながります。
まずは、勤怠管理で必要になる基本構造を押さえることが重要です。
・勤怠管理でよく使う基本列の構成
例えば、以下のような表を作成します。
| 氏名 | 出勤時間 | 退勤時間 | 判定 |
|---|---|---|---|
| 田中 | 8:55 | 18:02 | |
| 鈴木 | 9:12 | 18:00 | |
| 佐藤 |
このような構成にしておくと、IF関数で自動判定しやすくなります。
・遅刻判定の基本IF関数
例えば始業時間が9:00の場合、以下の数式で判定できます。
「=IF(B2>TIME(9,0,0),"遅刻","出勤")」
この数式では、
- B2が9:00より大きい → 遅刻
- それ以外 → 出勤
という判定を行っています。
・TIME関数を使う理由
実務では「"9:00"」と直接書く人も多いですが、TIME関数を使う方が安全です。
理由は、Excelでは時間が内部的に数値として扱われているためです。
TIME関数を使うことで、
- 書式違いによる判定ミス
- PC環境差異
- 文字列化によるエラー
を防ぎやすくなります。
勤怠管理では「入力日」や「更新日」を自動記録したい場面も多くあります。日付を自動で反映させる設定については、こちらの記事で詳しく解説しています。
→【Excel】日付が自動で変わる方法【更新日や入力日を自動化するテクニック】
✅ Excelで遅刻を自動判定するIF関数の使い方
遅刻判定は、勤怠管理で最も使用頻度が高い処理の1つです。
しかし実務では、「1分でも遅刻」「5分までは許容」「フレックス対応」など会社ごとに条件が異なります。
そのため、単純なIF関数だけで終わらせると、後から仕様変更に対応できなくなるケースがあります。
また、時刻セルが文字列になっていると正しく判定されないことも多いため、時間データの扱いを理解しておくことが重要です。
ここを曖昧にしたまま運用すると、勤怠集計そのものの信頼性に影響します。
まずは基本の遅刻判定から確認していきましょう。
・9時を超えたら遅刻にする方法
「=IF(B2>TIME(9,0,0),"遅刻","正常")」
この数式で、9:00を超えた場合に「遅刻」と表示できます。
・5分までは許容する遅刻判定
例えば9:05まではセーフにする場合は以下のようにします。
「=IF(B2>TIME(9,5,0),"遅刻","正常")」
実務ではこのような“猶予時間”を設定する企業も多くあります。
・空白セルを除外する安全な判定
勤怠表では未入力データが存在することも珍しくありません。
その場合、以下のように空白チェックを加えると安全です。
「=IF(B2="","未入力",IF(B2>TIME(9,0,0),"遅刻","正常"))」
これにより、
- 空白 → 未入力
- 9時超え → 遅刻
- それ以外 → 正常
という実務向けの判定が可能になります。
IF関数で未入力チェックを行う場合、空白セルの扱いを理解していないと誤判定の原因になります。ISBLANK関数や「=""」との違いについては、こちらで詳しく解説しています。
→【Excel】空白セルを判定する方法|ISBLANK・=""・COUNTAの違い
✅ Excelで欠勤を自動判定するIF関数の考え方
欠勤判定は単純そうに見えますが、実際には非常に間違いやすい部分です。
特に初心者がやりがちなのが、「空白=欠勤」と単純に決めてしまうことです。
しかし実務では、
- 有休
- 午後出勤
- シフト制
- 打刻漏れ
など、単純な空白だけでは判断できないケースが存在します。
また、欠勤判定を強くしすぎると、入力途中のデータまで欠勤扱いになってしまうことがあります。
そのため、まずは「最低限どの条件を満たしたら欠勤とするのか」を明確にすることが重要です。
・出勤時間が空白なら欠勤とする方法
「=IF(B2="","欠勤","出勤")」
最も基本的な欠勤判定です。
・退勤時間も含めて判定する方法
より厳密にするなら、以下のような判定も可能です。
「=IF(AND(B2="",C2=""),"欠勤","出勤")」
これにより、
- 出勤・退勤とも空白 → 欠勤
- どちらか入力あり → 出勤扱い
となります。
・IF関数とAND関数を組み合わせる理由
勤怠管理では「複数条件判定」が非常に多くあります。
AND関数を使うことで、
- 両方満たす
- 全条件一致
- 厳密判定
を実現できます。
実務ではIF単体より、IF+ANDの組み合わせの方が使用頻度は高いです。
AND関数だけでなく、OR関数やIFS関数まで使えるようになると、Excelの条件判定は一気に実務レベルになります。複数条件の考え方を深く理解したい方は、こちらの記事もおすすめです。
→【Excel】IF関数で複数条件を指定する方法とは?AND・OR・IFSまで完全ガイド!
✅ Excelで早退を自動判定する方法
早退判定は、退勤時間を基準に判定します。
ただし、ここでも注意が必要です。
例えば、
- 17:00定時なのか
- 休憩込みなのか
- 時短勤務をどう扱うのか
によって判定条件が変わります。
また、退勤時間が文字列になっていると、正常に比較できないケースもあります。
早退判定は給与計算や勤務評価にも関わるため、条件設定を慎重に行うことが重要です。
・17時前なら早退とする方法
「=IF(C2<TIME(17,0,0),"早退","正常")」
この数式で17時前を自動判定できます。
・空白セルを考慮した安全な数式
「=IF(C2="","未入力",IF(C2<TIME(17,0,0),"早退","正常"))」
実務ではこちらの方が安全です。
・早退判定でよくあるミス
特によくあるのが以下です。
- 時間が文字列扱い
- セル書式が「文字列」
- 24時間超え勤務
- 日跨ぎ勤務
夜勤やシフト制がある場合は、単純比較だけでは対応できないケースもあります。
✅ Excelで遅刻・欠勤・早退を1つのIF関数で判定する方法
実務では、判定列を1つにまとめたいケースが非常に多くあります。
ただし、ここで初心者が苦戦しやすいのが「IF関数のネスト」です。
条件の順番を間違えると、
- 欠勤なのに遅刻表示
- 空白なのに正常扱い
- 早退判定が効かない
といった問題が発生します。
特に勤怠管理は“優先順位”が非常に重要です。
まず何を優先判定するのかを整理してから数式を作る必要があります。
・遅刻・欠勤・早退をまとめて判定する数式
「=IF(B2="","欠勤",IF(B2>TIME(9,0,0),"遅刻",IF(C2<TIME(17,0,0),"早退","正常")))」
この数式では、
- 出勤時間空白 → 欠勤
- 9時超え → 遅刻
- 17時前退勤 → 早退
- それ以外 → 正常
の順で判定しています。
・条件順序が重要になる理由
IF関数は上から順番に判定します。
そのため、
- 先に欠勤を判定する
- 次に遅刻
- 最後に早退
という順番が非常に重要です。
・実務ではIFS関数も便利
Excelの新しいバージョンではIFS関数も使えます。
例えば以下のように書けます。
「=IFS(B2="","欠勤",B2>TIME(9,0,0),"遅刻",C2<TIME(17,0,0),"早退",TRUE,"正常")」
ネストが減るため、保守性が上がります。
「IF関数が長すぎて読みにくい…」という場合は、IFS関数への切り替えが非常に効果的です。複数条件を見やすく管理する方法については、こちらで詳しく紹介しています。
→【Excel】IFS関数で計算式を使う方法|複雑な条件別計算もスッキリ書けるExcel関数活用術
✅ Excelで勤怠管理をさらに効率化する実務テクニック
勤怠管理は、判定だけでは終わりません。
実務では、
- 色分け
- 集計
- 月次確認
- 遅刻回数カウント
まで求められるケースが非常に多くあります。
また、人数が増えると目視確認が限界になります。
そのため、IF関数だけでなく、条件付き書式やCOUNTIF関数なども組み合わせると、管理効率が大きく向上します。
ここを理解すると、“ただの表”から“管理システム的なExcel”へ一気にレベルアップできます。
・条件付き書式で遅刻を赤色表示する
例えば、
- 「遅刻」→ 赤
- 「欠勤」→ 灰色
- 「早退」→ 黄色
のように設定すると、一瞬で状況把握できます。
IF関数と条件付き書式を組み合わせることで、Excelの勤怠表はかなり実務的になります。色付け・強調表示の詳しい設定方法については、こちらの記事で紹介しています。
→【Excel】条件付き書式の使い方を完全解説【色付け・強調・実務例まで】
・COUNTIF関数で遅刻回数を集計する
例えば以下の数式を使います。
「=COUNTIF(D:D,"遅刻")」
これで遅刻人数を自動集計できます。
・IF関数だけでは限界があるケース
人数が多い会社では、
- シフト勤務
- 夜勤
- 複雑な休暇制度
なども発生します。
その場合は、
- Power Query
- ピボットテーブル
- Excel VBA
などを組み合わせることで、さらに高度な自動化が可能になります。
特にVBAを活用すると、
- 勤怠データの自動集計
- CSV取り込み
- 月次レポート作成
- 自動メール通知
なども実現できるようになります。
✅ まとめ:ExcelのIF関数で勤怠チェックを効率化しよう
今回は、ExcelのIF関数を使って、
- 遅刻
- 欠勤
- 早退
を自動判定する方法について解説しました。
勤怠管理は単純なように見えて、実際には非常にミスが発生しやすい業務です。
しかし、IF関数を正しく活用すれば、目視確認を減らし、確認漏れや集計ミスを大幅に減らせます。
今回のポイントを整理すると、以下の通りです。
- IF関数で遅刻・欠勤・早退を自動判定できる
- TIME関数を使うと時間判定が安全になる
- 空白チェックを入れると実務向けになる
- AND関数で複数条件判定が可能
- 条件順序が非常に重要
- COUNTIFや条件付き書式を組み合わせるとさらに便利
- VBAを使うと大規模勤怠管理も効率化できる
勤怠管理表を毎回手作業で確認している場合は、ぜひ今回のIF関数を活用して、日々の管理業務を効率化してみてください。