not_dateadd

Excel

【Excel】dateaddが使えない!?VBAを使わずできる日付計算

dateadd関数はVBAでのみ使用できる関数で、通常のExcel関数としては使えません。10日後、3か月後、5年1カ月後、1週間前など、足し算や引き算のやり方を紹介します。色んなやり方はありますが、最初に紹介するDATE関数だけ覚えておけば十分です。

1.DATE関数

これさえ覚えておけば、日付に一定期間を足す・引くはやれるでしょう。私の経験上9割はこれで足りています。

=DATE(YEAR(A2)+年数,MONTH(A2)+月数,DAY(A2)+日数)

 

演算する対象をA2セルの日付とした場合、上記のように汎用的に表すことができます。○日後を計算したい場合は"日数"の箇所のみ設定し"年数"と"月数は不要です。○か月後を掲載したい場合は"月数"の箇所のみ設定し"年数"と"日数"は不要です。○年後についても同様。○か月と○日後など、月数と日数の複合での計算も可能です。これらをまとめてみるとこのようなイメージになります。
not_dateadd1

 

9~11行目にもあるように、○日前、○か月前のような過去を計算することももちろんできます。

 

セルのひとつひとつの計算式を修正するのは面倒なので、年・月・日の数字だけ入力すれば計算されるようにするとすればこんな感じでしょうか
not_dateadd2

 

1行ごとに計算をするようなことは実務上は考えにくいですね。現実的な使い方としては、"入会日から90日間が有効期間というような顧客リスト"を作成する場合、以下のような使い方ができます。
not_dateadd3

このやり方だけ覚えておけば十分ですが、他にも使える関数や、Excelの日付のシルアル値の考え方を利用した計算方法を紹介しておきます。

2."日"の足し算・引き算

 

=日付+日数

 

Excelは日付も数字として扱うことができます。日付を入力したはずなのに43009というような数字が表示されたことはないでしょうか?

 

Excel上では1900/1/1を1として認識しています。この時の1のことをシリアル値といいます。1900/1/2はシリアル値では2となります。シリアル値43009は1900/1/1から43009日目を意味しており、日付で表示すると2017/10/10となります。

 

ここまでの説明でもうお分かりでしょうか。通常の数字の足し算・引き算と同じやり方で、日付単位の足し算・引き算もできてしまいます。

 

例えば、A1セルに日付がある場合、1日後は

=A1+1

 

 

1週間前は

=A1-7

 

 

日付とシリアル値の関係は次の通り。
not_dateadd4

 

この計算方法は、単純に日数だけ計算しているためひと月の日数が30日、29日、28日と異なった場合に自動で判定されません。単純に10年後を計算しようと365日×10年=3650日を足し算しても
not_dateadd5

 

と、うるう日の分だけずれてしまいますので注意してください。

 

 

シリアル値の考え方を利用すると、Excelでカレンダーがカンタンにつくれます。タスク管理表やWBS(Work Breakdown Structure)の作成にも応用できます。Excelカレンダーはまた別の機会にご紹介します。

 

3."月"の加算/減算

月は30日、31日、28日、29日など月によって日数が異なるため、既に紹介した日単位の計算では対応しきれません。月単位の加算/減算はEDATE関数で○か月後や○か月前を計算することができます。

=EDATE(日付,月数)

 

例えば、A1セルに日付がある場合、3か月後の計算は

=EDATE(A1,3)

 

3か月前の計算は

=EDATE(A1,-3)

で計算できます。

4.まとめ

シリアル値での日単位の計算や、EDATE関数で月単位の計算ができますが、冒頭に紹介しているDATE関数さえあれば年・月・日のどの単位でも計算できます。覚えておくのが大変という場合は、このページをブックマークしておいてください。

=DATE(YEAR(A2)+年数,MONTH(A2)+月数,DAY(A2)+日数)

 

スポンサーリンク
スポンサーリンク

関連記事

  1. vlookupサムネ

    Excel

    【Excel関数】応用の前にまずは基本!vlookupの使い方

    vlookup関数は、別シートや別表のデータを参照できる関数です。でも…

  2. vlookupErrorサムネ

    Excel

    【Excel関数】vlookupがエラーで使えない!原因と回避方法7パターン

    vlookup関数が#N/A、#NAME?などよくエラーになってしまい…

  3. Excel

    【Excel】年齢を年代表示にする方法

    年齢を年代に変換(29→20)して、さらに”20代”や”20~29歳”…

  4. Excel

    【Excel関数】年齢を年代に3秒で IF文を使わず簡単変換

    2019.11.13更新ブログで紹介していましたが、YouTube…

  5. Excel

    【Excel】重複を抽出して削除する方法(Countif 他全4種)

    "重複チェック"や"重複削除"の方法は、ひとつではありません。その方法…

  6. Excel

    【Excel】見やすいきれいな折れ線グラフの作り方

    今回のビズ技は、基本中の基本。グラフを見やすくするコツを紹介します。基…

スポンサーリンク




特集

  1. 折れ線グラフ特集1
  2. 特集働き方改革サムネ
  3. SC特集サムネ

スポンサーリンク




仕事効率アップ系記事

  1. 折れ線グラフ点線サムネ (2)
  2. カレンダー
  3. vlookupErrorサムネ
  4. illust_biz_filng
  5. 働き方改革-職場

スキルアップ系記事

  1. アイディア発想
  2. vlookup応用
  3. 新社会人-パワポ
  4. SCAMPER

スポンサーリンク




ピックアップ記事

  1. 管理職マネジャー
  2. サムネイル
  3. プレミアムフライデー
  4. analysis
  5. regret
  1. SC特集サムネ

    PC

    【特集】ショートカットキーで仕事効率化!働き方改革の小さな一歩👣…
  2. 特集働き方改革サムネ

    Column

    【特集】「働き方改革」を独り歩きさせない!「働き方改革」の実現に向けて
  3. 折れ線グラフ特集1

    PC

    【特集】"使い方"では足りない!「折れ線グラフ」の"使いこなし方"
PAGE TOP