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関数恐るべし。