ExcelのDATE関数の使い方を徹底解説!基本構文から実践的な使用例まで
ExcelのDATE関数は、年・月・日の3つの値を組み合わせて日付を作成する関数です。引数として年、月、日を指定すると、Excelはシリアル値を生成し、それを通常の日付として表示できるようになります。
Excelに日付を入力する一般的な方法は、1つのセルに日付全体を書き込むことですが、大量のデータを扱う場合には不便です。日付が通常のテキストと混在していたり、複数のセルに分かれていたりと、正しくフォーマットされていない場合に、DATE関数が非常に役立ちます。
DATE関数は比較的簡単に理解でき、覚えやすい関数です。以下では、数式の中でどのように使うのかを詳しく解説します。
補足:DATE関数は、すべてのバージョンのExcelで使用できます。
DATE関数の書式と引数
Excelが正しく処理できるように、DATE関数は必ず以下の形式で記述します。
=DATE(年,月,日)
- 年(Year):1桁から4桁の数値で年を入力するか、ワークシート上のデータが入力されているセル参照を指定します。年の引数は必須です。
- 月(Month):1から12(1月から12月)までの正または負の整数で月を入力するか、データのあるセル参照を指定します。月の引数は必須です。
- 日(Day):1から31までの正または負の整数で日を入力するか、データのあるセル参照を指定します。日の引数は必須です。
引数に関する補足情報
年・月・日の各引数について、知っておくべき重要なポイントを紹介します。
年(Year)について
- デフォルトでは、Excelは1900年日付システムを使用しているため、DATE関数では1900年より前の年を正しく表示できません。
- 年の値として0を入力すると1900年、1は1901年、105は2005年と同じ意味になります。
月(Month)について
- 月の値が12を超えると、その分の月数が年の値に加算されます。例えば13を指定すると、1年と1ヶ月が日付に加算されます。
- 月に負の数を指定すると、年の1月からその月数+1ヶ月分が差し引かれます。
日(Day)について
- 日の値がその月の日数を超えると、超過分の日数が翌月の1日目に加算されます。
- 日に負の数を指定すると、月の1日目からその日数+1日分が差し引かれます。
DATE関数の使用例
以下に、DATE関数を使った実践的な数式の例をいくつか紹介します。
年・月・日が別々のセルに入力されている場合
=DATE(A2,B2,C2)
この例では、A2を年、B2を月、C2を日としてDATE関数を使用しています。各要素が別々のセルに分かれていても、1つの日付として結合できます。
年を直接入力し、月と日をセルから取得する場合
=DATE(2020,A2,B2)
データの取得方法を混在させることも可能です。この例では、年の引数に2020を直接指定し、月と日は他のセルから取得しています。
負の月の引数で月を遡る
=DATE(2020,-2,15)
ここでは、月の引数に負の数を使用しています。数式に2020が含まれているため、2020年1月を基準として、年を遡って計算されます。このDATE関数の結果は2019/10/15となります。
負の日の引数で日を遡る
=DATE(2020,1,-5)
負の数を使わなければ、この日付は2020/1/5と計算されます。しかし、負の日の値により、2020/1/1から5日+1日分が差し引かれ、結果は2019/12/26となります。
大きな月・日の引数を指定する
=DATE(2020,19,50)
この例では、前述のルールが複数組み合わさっています。月が12を超えているため年の値は2020から増加し、日の値がどの月の日数よりも大きいため、計算される月も変化します。このDATE関数の結果は2021/8/19となります。
別のセルの日付に10年を加算する
=DATE(YEAR(A2)+10,MONTH(A2),DAY(A2))
ExcelのDATE関数は、既存の日付に時間を加算するなど、他の日付と組み合わせて使うこともできます。この例では、既存の日付から10年後の日付を求めています。既存の日付がセルE2に入力されている場合、E2から年・月・日を抽出しつつ、年の値に10を加算する形で数式を記述します。
その年の何日目かを計算する
=A2-DATE(YEAR(A2),1,0)
これはDATE関数の類似した使用例で、セルE10の日付がその年の何日目にあたるかを計算しています。例えば、2020/1/1は1日目、1月5日は5日目、という具合です。この例ではE10が2018/8/4なので、結果は216となります。
テキスト形式の日付を正しい日付に変換する
=DATE(LEFT(A2,4),MID(A2,5,2),RIGHT(A2,2))
セルに20200417のような完全な日付が含まれていても、テキストとしてフォーマットされている場合は、このDATE関数をLEFT、MID、RIGHT関数と組み合わせて使うことで、正しくフォーマットされた日付に変換できます。
具体的には、LEFT(A2,4)で左から4桁を抽出し、MID(A2,5,2)で5文字目から2桁を取り出し、RIGHT(A2,2)で右から2桁を組み合わせます。計算結果の日付は2020/4/17です。
ヒント:LEFT、RIGHT、MID関数の詳しい使い方については、関連記事をご覧ください。
今年・今月の特定の日を求める
=DATE(YEAR(TODAY()), MONTH(TODAY()), 5)
TODAY関数をDATE関数と組み合わせると、今日の情報を取得できます。例えば、毎月5日に請求書の支払いを忘れないようにリマインダーを設定したい場合、このDATE関数を使えば、現在の年と月が自動的に入力され、日の値に5(またはセル参照)が設定されます。
月がテキスト形式の場合の日付を計算する
=DATE(A2,MONTH(1&B2),C2)
日付にJuneのような月のテキスト表記が含まれることがあります。Excelはこれを数値として認識しないため、MONTH関数で数値に変換する必要があります。この例では、MONTH(1&B2)として、DATE関数の月の引数の位置に直接組み込んでいます。
日付として表示されない場合の対処法
DATE関数の結果が日付ではなく数字の羅列として表示される場合は、セルを日付形式に設定する必要があります。
例えば、通常の日付の代わりに43938のような大きな数値が表示されることがあります。
セルの書式を変更するには、該当するセルを選択し、数値グループのドロップダウンメニューから、日付形式のいずれかを選択します。
-
ExcelのRANDBETWEEN関数の使い方|指定した範囲内の乱数を簡単に生成する3つの方法
Microsoft ExcelのRANDBETWEEN(ランドビトウィーン)関数は、数学/三角関数に分類される関数の一つで、指定した2つの数値の間からランダムな整数を返します。サイコロの目のような1〜6の乱数を作りたいときや、くじ引きの番号、テストデータなどを自動生成したい場合にとても便利です。 この記事では、RANDBETWEEN関数の書式と、セルへの直接入力、「関数の挿入」ダイアログボックス、「数式」タブを使った3つの方法を、初心者の方にもわかりやすく解説します。 RANDBETWEEN関数の書式 RANDBETWEEN関数の書式は以下の通りです。 =RANDBETWEEN(最小値, 最大
-
ExcelのNETWORKDAYS関数の使い方|土日・祝日を除いた営業日数を簡単に計算する方法
Microsoft ExcelのNETWORKDAYS(ネットワークデイズ)関数は、日付/時刻関数の一つで、開始日から終了日までの間に含まれる「完全な稼働日(平日)」の日数を返します。この関数は、週末(土曜日と日曜日)および引数で指定された祝日を自動的に除外して計算します。なお、引数が無効な場合は、エラー値 #VALUE! が返されます。 NETWORKDAYS関数の書式は次のとおりです。=NETWORKDAYS(開始日, 終了日, [祝日]) NETWORKDAYS関数の構文 開始日(start_date):計算の起点となる日付。必須の引数です。 終了日(end_date):計算の終点とな