Help us understand the problem. What is going on with this article?

ExcelのDATE関数で月途中の〆処理 (2018年13月1日って?!)

Excelの関数で月途中の〆処理

Excelで毎月15日〆の処理が必要だったときに、複雑な考え方をしていたら、DATE関数の仕様でサクッと解決してしまったので、備忘録として。

まず、$A$1 (別にTODYA()でも構わないのですが) に日付が入っているとして、DAY($A$1)<=15なら単純に$A$1-DAY($A$1)+1で計算できるけど、DAY($A$1)>15なら翌月にしなければならないし、年末は更に翌年になるし、式が複雑になるな~とセルの中に複雑な式を組み立てていました。

でもね。

ふと、セルに=DATE(2018,13,1)と入力すると2019/1/1って表示されるじゃないですか?!
目からウロコの一瞬でした。そんな訳で、15日以前なら当月1日、16日以降なら翌月1日と計算する式は以下のようになりました。

=DATE(YEAR($A$1),MONTH($A$1)+IF(DAY($A$1)<=15,0,1),1)

ちなみに13ヶ月後とかも以下のような式でできました。

=DATE(YEAR($A$1),MONTH($A$1)+13,DAY($A$1))

う~む、DATE関数恐るべし。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away