エクセルで日付の扱い方をお探しですね。

広告

エクセルの日付・時間計算テクニック|期間算出から年齢・曜日の自動表示まで

スケジュール管理や社員名簿の作成、プロジェクトの工数計算など、仕事で「日付」や「時間」を扱う場面って本当に多いですよね。

「入社してから今日まで何年経ったか正確に知りたい」「土日祝日を除いた実際の作業日数をパッと計算したい」といったことは、どんな職場でもよくある話です。

でも、カレンダーを見ながら指で数えたり、電卓で単純な引き算をしたりしていると、計算ミスをしたり、データを更新するのが面倒になったりしてしまいます。

この記事では、エクセルの基本機能と関数を使った「日付・時間計算のテクニック」を分かりやすく解説します。

正確な期間の計算方法から、年齢を自動で更新する方法、曜日を表示する方法まで、すぐに仕事で使えるノウハウをまとめました。

ぜひ日々の業務に役立ててください。

期間計算の基本ルールとシリアル値の仕組み

エクセルで日付の計算をするとき、まず知っておきたいのが「シリアル値」という考え方です。

普段私たちが「2023年4月1日」や「2023/4/1」として見ている日付は、実はエクセルの中では「数字」として扱われているんです。

具体的には、1900年1月1日を「1」として、そこから1日経つごとに1ずつ増えていく連番になっています。

この仕組みのおかげで、エクセルでは「終わりの日 − 始まりの日」という簡単な引き算だけで、その間の「日数」を計算できるんですね。

たとえば、B1セルに終了日、A1セルに開始日が入っている場合、「=B1-A1」と入力すれば、あっという間に期間の日数が出てきます。

これは日付計算の一番基本的なやり方で、いろんな場面で使える便利な方法です。

ただ、単純な引き算だけでは対応できないこともあります。

たとえば「何ヶ月経ったか」「何年経ったか」といった、日数以外の単位で期間を知りたいときです。

日数を30や365で割っても、月によって日数が違うので正確な数字は出ません。

そんなときに活躍するのが「DATEDIF(デイトディフ)関数」です。

この関数は、始まりの日と終わりの日を指定して、さらに計算したい単位(年、月、日)を選ぶことで、正確な期間を計算してくれます。

契約期間の管理や会員の有効期限などを計算するときには欠かせない関数といえるでしょう。

ちょっと注意したいのが、期間計算には「片端入れ(初日を含まない)」と「両端入れ(初日を含む)」という考え方があることです。

DATEDIF関数や普通の引き算は基本的に「差」を計算するので、初日を1日目として数えたいときは、数式の最後に「+1」を付けて調整する必要があります。

年齢や勤続年数を完全自動化する関数の活用

社員名簿や顧客リストを管理するとき、年齢や勤続年数の計算は避けて通れませんよね。

もしこれらを手入力で「30歳」「勤続5年」と管理していると、誕生日や入社記念日が来るたびに手作業でデータを書き換えないといけなくなって、すごく大変です。

そこで役立つのが、DATEDIF関数と、今日の日付を自動で取得する「TODAY関数」を組み合わせる方法です。

具体的には、「=DATEDIF(生年月日のセル, TODAY(), “Y”)」という数式を入力します。

TODAY関数はファイルを開くたびにその日の日付を取り直してくれるので、この数式を入れておけば、常に最新の年齢が自動的に表示されるようになります。

これで更新忘れによるミスを完全に防げて、メンテナンスの手間もかからない名簿が作れるんです。

さらに実際の仕事では、年数だけじゃなく「〇年〇ヶ月」といった詳しい期間表示が必要なこともありますよね。

DATEDIF関数には、年数の端数となる月数だけを計算する「YM」という指定方法があります。

これを使って、文字列をつなげる「&」を使えば、もっと詳しい表示ができます。

たとえば、「=DATEDIF(開始日, TODAY(), “Y”) & “年” & DATEDIF(開始日, TODAY(), “YM”) & “ヶ月”」と書けば、自動更新される勤続期間が表示されます。

ちなみに、DATEDIF関数はエクセルの入力補助(インテリセンス)や関数の挿入ダイアログには出てこない、ちょっと隠れた関数なんです。

なので、使うときは数式バーに直接スペルを打ち込む必要があります。

以下の単位一覧を参考に、目的に合わせて使い分けてください。

* **”Y”**:期間内の満年数(年齢、勤続年数など)
* **”M”**:期間内の満月数(月払い契約の期間など)
* **”D”**:期間内の満日数(単純な日数計算)
* **”YM”**:1年未満の月数(「〇年〇ヶ月」の「〇ヶ月」部分)

ビジネスシーンで必須となる営業日・稼働日の計算

普通のカレンダーの日数計算とは違って、仕事では「土日祝日を除いた営業日」で計算しないといけないことがよくあります。

「発注から納品まで5営業日必要」「今月の稼働日数は何日か」といった計算を、カレンダーを見ながら指で数えるのは効率が悪いし、間違いのもとですよね。

こんなときは「NETWORKDAYS(ネットワークデイズ)関数」を使いましょう。

この関数は、始まりの日と終わりの日を指定するだけで、自動的に土日を除いた日数を計算してくれます。

さらに便利なのが、3つ目の引数に「祝日リスト」を指定できる機能です。

ゴールデンウィークや年末年始、会社の創立記念日などをあらかじめ別の場所に入力しておいて、その範囲を参照させれば、土日だけでなく祝日や特定の休業日も計算から除外できます。

また、最近では働き方が多様化していて、定休日が土日とは限らないケースも増えていますよね。

たとえば、不動産業界やサービス業のように「水曜日と日曜日が休み」といったシフトの場合、普通のNETWORKDAYS関数では正しく計算できません。

そこで登場するのが、もっと柔軟な設定ができる「NETWORKDAYS.INTL(インターナショナル)関数」です。

この関数では、どの曜日を休日にするかを数字のコードや文字列で細かく指定できるので、変則的なシフト勤務の職場でも完全に対応できます。

この関数を使いこなせば、納期の回答精度が上がるだけでなく、プロジェクトのスケジュール管理でも「実際に作業できる日数」に基づいた現実的な計画が立てられるようになります。

祝日リストを参照するときは、オートフィル(数式のコピー)をしたときに範囲がずれないよう、「$A$1:$A$15」のように「絶対参照」で指定するのがおすすめです。

曜日表示の自動化と見やすさを高める条件付き書式

日付と一緒に「曜日」が表示されていると、スケジュールがずっと把握しやすくなりますよね。

エクセルで曜日を表示させる方法はいくつかありますが、一番よく使われて便利なのが「TEXT関数」を使う方法です。

たとえば、A1セルに日付が入っている場合、「=TEXT(A1, “aaa”)」と入力すれば「月」「火」といった短い形式で曜日が表示されて、「”aaaa”」と指定すれば「月曜日」といった完全な形式で表示されます。

セルの書式設定で表示を変える方法もありますが、TEXT関数を使って別のセルに文字列として曜日を取り出しておけば、他の関数と組み合わせたり、特定の曜日だけでフィルターをかけたりするときにとても便利です。

また、括弧付きで表示したいときは「”(aaa)”」のように指定することもできます。

さらに、表を見やすくするための応用テクニックとして、「WEEKDAY関数」と「条件付き書式」の組み合わせもぜひ覚えておきたいスキルです。

WEEKDAY関数は、指定した日付を「1(日曜)〜7(土曜)」のような数字に変換して返してくれます。

この性質を利用して、条件付き書式の数式ルールに「=WEEKDAY($A1)=1」と設定して、書式で文字色を赤や背景色をグレーなどに設定すれば、カレンダーの日曜日の行だけを自動的に色付けできます。

手作業でセルに色を塗ると、日付を変更したときに色がずれてしまって修正が大変ですが、この方法なら日付データに合わせて自動で色が付いてくるので、表のメンテナンスがすごく楽になります。

土曜日(=7)は青、日曜日(=1)は赤、といったようにルールを追加していけば、一目でスケジュールが分かるプロフェッショナルな管理表が作れますよ。

広告