ソニック事務職の定番テクニックを徹底解説
「生徒の年齢を1人ずつ電卓で計算している」「契約期限切れに気付かず、上司に怒られた」
そんな経験、事務職の方なら一度はあるはずです。
学校事務員時代の私もそうでした。生徒300人の年齢を電卓で計算したり、書類の提出期限を手動で管理したり……それが、Excelの日付関数を覚えてから一変しました。
電卓で30分かかっていた年齢計算が、関数1秒で完了。期限管理の漏れもゼロに。
日付関数は、事務職の業務時間を劇的に変える「魔法のツール」です。
この記事では、Excelの日付・時刻関数の基本から実務テクニックまで、コピペで使えるサンプル付きで完全解説します。
こんな方におすすめ
- 年齢計算・期間計算を毎月のように手作業でやっている事務職の方
- 契約期限・支払期日の管理を効率化したいバックオフィスの方
- Excelスキルをもう一段階レベルアップさせたい方
第1章|事務職にとって日付関数が必修な理由
こんな業務に日付関数は使える
私自身、学校事務員時代に日付関数を毎日のように使っていました。具体的には:
- 生徒300人の年齢を年度開始時点で一括計算
- 就学支援金の申請期限を自動判定
- 保護者からの書類提出期限の進捗管理
- 給与計算における勤務日数・有給残日数の集計
- 契約書の更新期日リマインダー
Before/After|日付関数の威力
| 業務 | Before(手作業) | After(関数活用) |
|---|---|---|
| 300人の年齢計算 | 30分 | 1秒 |
| 期限切れの判定 | 目視で見落とし発生 | 自動でアラート表示 |
| 勤務日数の集計 | カレンダーを数える | 関数1つで自動 |
| 年度跨ぎの日付管理 | 毎年作り直し | 自動で更新 |
第2章|基本|TODAY/NOW/DATE関数
TODAY関数|今日の日付を自動表示
最も基本的で、最もよく使うのがTODAY関数。今日の日付を自動で表示してくれます。
=TODAY()結果:2026/06/04(実行した日が表示される)
実務での使い方
- 資料の作成日を自動表示(毎回入力不要)
- 「今日からの経過日数」計算の基準点
- 期限管理の基準日(後述)
※TODAY()は、Excelファイルを開くたびに自動更新されます。「資料作成日」を固定したい場合は、Ctrl + ; で固定日付を入力します。
NOW関数|現在の日時を表示
=NOW()結果:2026/06/04 14:30(日付+時刻)
打刻記録・ログ管理など、時刻まで必要な場合に使います。
DATE関数|年・月・日から日付を組み立てる
=DATE(年, 月, 日)
=DATE(2026, 4, 1)実務での使い方
「年度開始日(4月1日)」「月末日」など、計算で動的に日付を作るときに使います。
# A1セルに年(例:2026)が入っているとき
=DATE(A1, 4, 1)
=DATE(A1+1, 3, 31)第3章|年齢・期間計算|DATEDIF関数の使い方
DATEDIF関数|事務職の最重要関数
**DATEDIF(デイトディフ)は、事務職にとって最も使用頻度が高い関数の1つ**。2つの日付の「年数」「月数」「日数」を一発で計算してくれます。
基本構文
=DATEDIF(開始日, 終了日, 単位)単位の指定(重要)
| 単位 | 意味 | 使用例 |
|---|---|---|
| “Y” | 満年数 | 年齢計算 |
| “M” | 満月数 | 勤続月数 |
| “D” | 満日数 | 経過日数 |
| “YM” | 年を除いた月数 | 「X年Y月」のY部分 |
| “MD” | 月を除いた日数 | 「X年Y月Z日」のZ部分 |
実例1|年齢を計算する
A1セルに生年月日が入っているとき、今日時点の年齢を計算します。
=DATEDIF(A1, TODAY(), "Y")結果:35(35歳)


実例2|勤続年数を「X年Yヶ月」形式で表示
=DATEDIF(入社日, TODAY(), "Y") & "年" & DATEDIF(入社日, TODAY(), "YM") & "ヶ月"結果:「5年3ヶ月」(人事資料での定番表記)
実例3|年度開始日時点での年齢を計算
学校事務では「年度初日時点での年齢」が必要です。
# A1に生年月日、年度=2026年度の場合
=DATEDIF(A1, DATE(2026,4,1), "Y")# A1に生年月日、年度=2026年度の場合 =DATEDIF(A1, DATE(2026,4,1), “Y”)
第4章|日付の操作|YEAR/MONTH/DAY/WEEKDAY
YEAR/MONTH/DAY関数|日付から年・月・日を取り出す
=YEAR(A1) → 2026(年だけ取り出す)
=MONTH(A1) → 6(月だけ取り出す)
=DAY(A1) → 4(日だけ取り出す)実務での使い方
- 売上データから「月別集計」用の月列を作る
- 「生まれ年だけ抽出して集計」する
- グラフのX軸ラベル用にデータを加工
WEEKDAY関数|曜日を判定
=WEEKDAY(A1, 2)
# 第2引数を「2」にすると、月曜=1、火曜=2、…、日曜=7曜日名を日本語で表示する
=CHOOSE(WEEKDAY(A1,2), "月", "火", "水", "木", "金", "土", "日")結果:「水」(A1が水曜日の場合)
※TEXT関数を使えばより簡単に表示できます:
=TEXT(A1, "aaa") → 水第5章|期限管理|EDATE/EOMONTH
EDATE関数|Xヶ月後の日付を計算
=EDATE(開始日, 月数)実例|3ヶ月後の支払期日を計算
# A1に契約日が入っているとき、3ヶ月後の支払期日
=EDATE(A1, 3)結果:契約日の3ヶ月後の日付(自動計算)
EOMONTH関数|月末日を計算
=EOMONTH(開始日, 月数)実例|今月末を取得
=EOMONTH(TODAY(), 0)
# 「0」は「今月」、「1」なら「来月末」、「-1」なら「先月末」結果:今月の月末日(2026/06/30など)
実例|請求書の支払期限を「翌月末」に設定
# A1に請求日が入っているとき
=EOMONTH(A1, 1)結果:請求日の翌月末日(経理業務の定番)
第6章|営業日計算|WORKDAY/NETWORKDAYS
WORKDAY関数|営業日換算でX日後の日付
=WORKDAY(開始日, 日数, [祝日リスト])土日を除外して、指定日数後の日付を返します。
実例|5営業日後の納期を計算
# 今日から5営業日後
=WORKDAY(TODAY(), 5)結果:今日から5営業日後の日付(土日を除く)
祝日リストを反映する
# 祝日リスト(H1:H20)を反映
=WORKDAY(TODAY(), 5, H1:H20)祝日も除外して計算してくれます。
NETWORKDAYS関数|2つの日付間の営業日数
=NETWORKDAYS(開始日, 終了日, [祝日リスト])実例|プロジェクトの所要営業日数
# A1=開始日、B1=終了日、H1:H20=祝日リスト
=NETWORKDAYS(A1, B1, H1:H20)結果:開始日から終了日までの営業日数(土日祝を除く)
※プロジェクト管理・工数計算・有給日数管理など、用途は無限大です。
第7章|実務テクニック|期限切れ自動判定・年齢一覧
テクニック1|期限切れを自動で色分け
「期限切れ」「期限間近」を一目で識別できる仕組みを作ります。
ステップ1:判定列を作る
B列に期限が入っているとき、C列に判定式を入力:
=IF(B2<TODAY(), "期限切れ", IF(B2-TODAY()<=7, "期限間近", "OK"))ステップ2:条件付き書式で色分け
- 判定列を選択 →「ホーム」→「条件付き書式」→「セルの強調表示ルール」
- 「文字列」で「期限切れ」→赤背景
- 同じ手順で「期限間近」→黄背景
これで、期限管理表が**視覚的にすぐ把握できる**ダッシュボード化します。
テクニック2|年齢一覧表の自動生成
生徒・社員などの名簿で、年齢を自動表示する仕組み。
| A列:氏名 | B列:生年月日 | C列:年齢(数式) |
|---|---|---|
| 田中太郎 | 1990/05/15 | =DATEDIF(B2,TODAY(),”Y”) |
| 佐藤花子 | 1985/12/20 | =DATEDIF(B3,TODAY(),”Y”) |
数式を下にドラッグすれば、全員の年齢が自動で計算されます。来年見ても、自動で年齢が更新されているのが最大のメリット。
テクニック3|契約更新リマインダー
契約更新日が近づいたら通知する仕組み。
=IF(EDATE(契約日,12)-TODAY()<=30, "更新時期です", "")契約日から12ヶ月後(次の更新日)が30日以内に迫ったら、「更新時期です」と表示されます。
第8章|つまずき対処&まとめ
よくあるトラブル
トラブル1:日付がシリアル値(数字)で表示される
原因:
セルの書式が「標準」になっている。
対処:
セルを右クリック →「セルの書式設定」→「日付」を選択。
トラブル2:DATEDIFがエラーになる
原因:
「開始日 > 終了日」になっている、または日付が文字列として認識されている。
対処:
開始日と終了日の順序を確認。日付が文字列の場合は、データの区切り位置機能で日付型に変換します。
トラブル3:WORKDAYで祝日が反映されない
対処:
内閣府の「国民の祝日」CSVをExcelに貼り付け、祝日リストとして第3引数に指定します。
トラブル4:TODAY()が更新されない
原因:
「計算方法」が「手動」になっている。
対処:
「数式」→「計算方法の設定」→「自動」に変更。または F9 で再計算。
この記事のまとめ
- TODAY/NOW/DATEは「動く日付」を作る基本3関数
- DATEDIFは事務職の最重要関数。年齢・期間計算が一発
- EDATE/EOMONTHで期限管理を自動化
- WORKDAY/NETWORKDAYSで営業日計算
- 条件付き書式と組み合わせて、視覚的な期限管理ダッシュボードが作れる
FAQ
次にやるべき3つの行動
- **今すぐ**:自分の業務で「年齢計算」「期限管理」が必要な箇所をリストアップ
- **今日中**:1つの業務で DATEDIF か EOMONTH を実際に使ってみる
- **今週中**:複数の日付関数を組み合わせて、期限管理ダッシュボードを作る
一度仕組みを作れば、来年も再来年も自動で使い続けられます。日付関数は「業務の貯金」になる投資です。
日付関数で、事務の毎日が変わる
日付関数を使いこなせるかどうかで、事務職の業務時間は驚くほど変わります。電卓で計算していた時代に戻る必要はありません。
そして、Excelの日付関数で対応が難しくなったら、Pythonへのステップアップを検討してください。さらに広い世界が待っています。
最新の解説記事は、新着記事から順次公開しています。X(旧Twitter)でも更新情報を発信していますので、ぜひフォローしてください。
この記事を書いた人
ソニック|バックオフィス出身の業務効率化ブロガー。データサイエンス業務でクライアント向けレポートの可視化にseabornを日常的に活用。リアルな実体験をもとにしたノウハウを発信中。


コメント