Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

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関数をLEFTMIDRIGHT関数と組み合わせて使うことで、正しくフォーマットされた日付に変換できます。

具体的には、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のような大きな数値が表示されることがあります。

セルの書式を変更するには、該当するセルを選択し、数値グループのドロップダウンメニューから、日付形式のいずれかを選択します。

  1. ExcelのRANDBETWEEN関数の使い方|指定した範囲内の乱数を簡単に生成する3つの方法

    Microsoft ExcelのRANDBETWEEN(ランドビトウィーン)関数は、数学/三角関数に分類される関数の一つで、指定した2つの数値の間からランダムな整数を返します。サイコロの目のような1〜6の乱数を作りたいときや、くじ引きの番号、テストデータなどを自動生成したい場合にとても便利です。 この記事では、RANDBETWEEN関数の書式と、セルへの直接入力、「関数の挿入」ダイアログボックス、「数式」タブを使った3つの方法を、初心者の方にもわかりやすく解説します。 RANDBETWEEN関数の書式 RANDBETWEEN関数の書式は以下の通りです。 =RANDBETWEEN(最小値, 最大

  2. ExcelのNETWORKDAYS関数の使い方|土日・祝日を除いた営業日数を簡単に計算する方法

    Microsoft ExcelのNETWORKDAYS(ネットワークデイズ)関数は、日付/時刻関数の一つで、開始日から終了日までの間に含まれる「完全な稼働日(平日)」の日数を返します。この関数は、週末(土曜日と日曜日)および引数で指定された祝日を自動的に除外して計算します。なお、引数が無効な場合は、エラー値 #VALUE! が返されます。 NETWORKDAYS関数の書式は次のとおりです。=NETWORKDAYS(開始日, 終了日, [祝日]) NETWORKDAYS関数の構文 開始日(start_date):計算の起点となる日付。必須の引数です。 終了日(end_date):計算の終点とな