Excel 日付に関する関数 YEAR・MONTH・DAYとDATEだけは必ず押さえよう

Excel これができなきゃ給料泥棒

スポンサーリンク

はじめに:Excelの日付関数

Excelで日付に関する関数といったらメインになるのは、YEARMONTH・DAYの3つだ。

以下、これらを勝手に「日付3関数」と呼ぶ。まあ、その中で最後のDAY関数は、使う機会が少ないと思っているが。

日付3関数と、あとはDATE関数を覚えておけば、Excelの日付関係の関数はなんとかなる。

他にも日付関係の関数があるにはあるが、最悪それらを捨ててでも、これら日付3関数+1を覚えておこう。
これらを知らなければ給料泥棒だ。

日付3関数

まず「日付3関数」YEAR・MONTH・DAYは、文字通り、日付から年・月・日の情報を個別に取り出すもの。

それらは
=YEAR(“2019/3/31”)
なんて書き方ができなくもないが、そんなのまずやらないだろう。

セルを参照する使い方しか、ほぼ有り得ないはずなので、それに基づいて書く。

上図のC2~C4セルのような感じで日付3関数は、YEAR・MONTH・DAYそれぞれの結果が返される。

そのまんまやんレベルで、だからこそこれら3関数の使い所が分からないと言えるかもしれない。

実用的な使い道としては、上図のような感じかなと思う。
A列に年月日がフル入力されているけど、それを年月日に分解したいという時に、必須となる。

他の例題としては上図のように、決算月が3月だとして、一覧表に示された年月の中で決算月を強調したいといった場合に、MONTH関数を使って月を取得するといったことが考えられる。

私もこんな風に、MONTH関数は単独で使うことが結構ある。

DATE関数は日付3関数と組み合わせて使う

いま示した例の逆をやるときに、DATE関数が必要になってくる。

すなわち、年・月・日の数字だけが個別に表示されている時に、それらを結合して年月日を取得したいというときだ。

上図では先程と逆に、B・C・D列に年・月・日の数字だけが入っていて、それを結合した年月日をA列に表示しないといけない。
そのためにDATE関数を使っている。

DATE関数の構成は
DATE( , , )
というものだ。
これを見るだけなら、とても簡単にしか見えない。

しかしDATE関数は、日付3関数との合わせ技で使ってこそ真価を発揮する関数だ。

翌月20日の日付を求める例題

給料日とかを、当月25日締め・翌月20日支払とする。
そのとき与えられたのが、下図のようにA列に当月25日の日付だけが書かれたExcelで、その翌20日を求める必要があるとしよう。
(締めとかいうと堅苦しいかもだが、要は翌20日を求めたいというだけ)

そういう場合に、DATE関数と日付3関数の合わせ技が役に立ってくる。
この場合、上図に示したようにDATE関数の中身にYEAR関数やMONTH関数を使って、A列の中身を年・月・日に分解する。

そして月だけは1ヶ月プラスしたいので、
MONTH($A2)+1
として+1している。

4行目(2018/12/25の行)なんかは、MONTH=12に1プラスしたら13月になるんじゃと思うかもしれないが、大丈夫だ。

DATE関数が、年・月・日を総合的に判断して、正しい日付値の2019/01/20に変換してくれる。

括弧()が幾つもあって、この合わせ技は、慣れてない人は見るだけで拒否反応を起こすだろうと思う。

だから、DATE関数や日付3関数が使えない人も多いと思うのだが、逆に言えばこのパターンの合わせ技さえ覚えればかなり何とかなる。

改めて、この関数合わせ技について、括弧の対応関係も色付けして示すと、

DATE関数と日付3関数の合わせ技
=DATE(YEAR($A2) , MONTH($A2)+1 , 20)
となる。

この例では、日付3関数の中でDAY関数は使ってないし、実際これ以外でもDAY関数は不要なケースが多いと思うけどね。

さて今回は、20日という日付を指定して、DATE関数と日付3関数の合わせ技で求めるやり方を扱った。これが1日とかでも当然問題ない。

そして必ず問題になるのが、月末日ばかりは月によって何日なのか異なるけど、それをどうやって求めるかってこと。

このやり方についても、DATE関数と日付3関数の合わせ技で何とかできるし、他のやり方もあるから、次回の記事で取り上げる。

スポンサーリンク