日付管理がラクになる!Excelの日付に関する関数の使い方

ビジネス

Excelの日付はシリアル値と呼ばれる数値で管理されています。そのため日付の計算や形式を自由に変えることができます。

今回は日付に関する基本的な設定と、知っておくと便利な関数をご紹介します。

シリアル値

Excelは日付を「シリアル値」という数値で管理しています。

「1900年1月1日」を1として、1日ごとに1ずつ増えていきます。

例えば、2025年4月1日は1900年1月1日から45,748日目であるため、シリアル値は「45748」となります

日数を数値として扱うことで、「45748+1=45749(2025年4月1日)」というような日付の計算も可能になります。

日付に関する基本関数

Excelでは、日付を数値として扱うことで、計算や特定の数値の取得が簡単に行えます。ここからは、具体的に日付を操作するための基本的な関数を見ていきましょう。

日付の書式を変更

TEXT関数は、日付の表示形式を変更し、特定の文字列と組み合わせることができる関数です。

=TEXT(値,書式形式)

例:文字列を加える「=TEXT(TODAY(), “yyyy/mm/dd”) &”現在”」

  和暦に変換する「=TEXT(DATE(年,月,日),”ggge年m月d日”)」

今日の日付を取得

TODAY関数は入力時の日付を取得する関数です。シートを開く度に自動的に日付が更新されます。

=TODAY()

例:前日「=TODAY()-1」

日付を更新しない場合は、ショートカットキー[ctrl]+[;]を入力することで今日の日付を入力することができます。

 年・月・日から日付を作成

DATE関数は指定した数値から日付を作成する関数です。年、月、日を単独で取り出す場合は、YEAR関数、MONTH関数、DAY関数でそれぞれの数値を取り出すことができます。

=DATE(年,月,日) 

例:カレンダーを作る「=DATE(年,月,1) 」

  入社年度を求める「=YEAR(入社日)-(MONTH(入社日)<4)」

2つの日付の差を求める

DATEDIF関数は指定した2つの日付の期間を求める関数です。単位を指定することで年数、月数、日数など表示形式を変更することができます。

この関数は、[関数の挿入]ダイアログボックスには表示されないため、手入力で打ち込む必要があります。

=DATEDIF(開始日,終了日,単位)

単位は、下記6種類あります。

  • Y:年数を求める(従業員の年齢や勤続年数など)
  • M:月数を求める(勤続月数やプロジェクト期間など)
  • D:日数を求める(支払期限や締切までの日数など)
  • MD:1ヶ月以内の日数差(1ヶ月以内に行われるイベントの期間など)
    ※Microsoftは単位”MD”を使用すると、意図しない結果を返す可能性があるため、推奨しないとしています。使用する際は結果を確認しながら活用するか、可能であればDAY関数などで代替することをおすすめします。
  • YM:年を無視した月数差(毎年恒例イベントの間隔比較など)
  • YD:年を無視した日数差(記念日の日数計算など)

例:誕生日から現在の年齢を取得「=DATEDIF(誕生日, TODAY(), “Y”)」

  現在時点での在籍期間を取得「=DATEDIF(入社日,TODAY(),”Y”)&”年”&DATEDIF(入社日,TODAY(),”YM”)&”ヶ月”」

  1年未満は日数でカウントダウ 「=DATEDIF(TODAY(),DATE(2025,4,13),”Y”)&”年”」&「=DATEDIF(TODAY(),DATE(2025,4,13),“YD”)&“日”」

 イベントまでのカウントダウン「=DATEDIF(DATE(2023,5,1),DATE(2025,4,13),”MD”)&”日”」

  単位”MD”の代わりにDAY関数とIF関数を使用した例「=DATEDIF(開始日,終了日,”YM”)&”ヶ月”&(DAY(終了日)- DAY(開始日)+IF(DAY(終了日)<DAY(開始日), DAY(EOMONTH(開始日,0)),0))&”日”」

〇ヶ月後、〇ヶ月前の日付を取得

EDATE関数は翌月や前月の日付を取得する関数です。開始日を基準に月を指定することで数か月前や、後の同じ日を取得することができます。

=EDATE(開始日,月)

例:先月の同日「=EDATE(開始日,-1)」

  翌月の同日「=EDATE(開始日,1)」

月末の日付を取得

EOMONTH関数は月末の日付を表示する関数です。開始日を基準に月を指定することで数か月前や、後の月末を取得することができます。また関数に「+1」することで、初日を表示することも可能です。

=EOMONTH(開始日,月)

例:当月の月末「=EOMONTH(TODAY(),0)」

  前月の月末「=EOMONTH(TODAY(),-1)」

  当月の初日「=EOMONTH(TODAY(),-1)+1」

  当月の初日から月末の日付を取り出す「=TEXT(EOMONTH(TODAY(),-1)+1,”yyyy/mm/dd”)&”-“&TEXT(EOMONTH(TODAY(),0),”yyyy/mm/dd”)」

  納品日の翌月末を支払期限とする「=EOMONTH(開始日,1)」

営業日を求める

WORKDAY関数は土日を除いて、指定した日数後を計算する関数です。あらかじめ用意しておいた祝日の一覧を祭日に指定すれば、土日に加えて祝日を除外することもできます。開始日は0日目、翌日を1日目として計算します、

=WORKDAY(開始日,日数,[祭日])翌日が1営業日目

例:受注日から5営業日後の日付「=WORKDAY(受注日,5)」

  祝日リストを考慮した、受注日から5営業日後の日付「=WORKDAY(受注日,5,祝日) 」

この時、祝日の一覧を範囲選択し、名前ボックスに祝日と定義付けしておくと、文字を入力するだけで範囲を指定することができます。

営業日数を計算

NETWORKSDAYS関数は指定した期間から土日を除いた日数を計算する関数です。WORKDAY関数同様、あらかじめ用意しておいた祝日の一覧を祭日に指定すれば、土日に加えて祝日を除外することもできます。開始日を1日目として計算します。

=NETWORKDAYS(開始日,終了日,[祭日])当日含む

例:受注日から納品日までの営業日数「=NETWORKDAYS(受注日,納品日) 」

  祝日リストを考慮した営業日数「=NETWORKDAYS(受注日,納品日,祝日)」

おわりに

日付の計算や表示形式のカスタマイズを覚えておくと、日々の業務に役立つかもしれませんよ。関数を活用できれば、業務の効率化が図れるだけでなく、データの管理がスムーズになります。ぜひ、試してみてください。

執筆者:さくらもち

覚えておくと、ちょっと役に立つかもしれない情報をお届けします。

さくらもちの他の記事を見る 

コメント

タイトルとURLをコピーしました