今日、日付ネタの記事をざーっと書いてきたんですが、今年2016年はうるう年です。1月第2月曜日の成人の日は正しく求められたんですが、3月以降の第二月曜日の日付が正しく返すことができず、1日ずれてしまうんですよね。これって前からでしたっけ?
今まで、そのハッピーマンデーネタの記事を書いていたんですが、この問題に今まで気づきませんでした。
しかし、第3月曜日には狂いはないんですよ。3月以降も。
Mac版だから?と思ったら、Windows版のExcelでも同じです。
今年の体育の日は10月10日でっせ。
しょーがないので、まず、うるう年の判定をするためのセルを用意して、うるう年なら1、そうでなければ0にして、
=IF(DAY(DATE(A1,2,29))=29,1,0)
体育の日の数式にそのセルの値で減算する式を入れたらうまくいきました。
=DATE(A1,10,14-D1-WEEKDAY(DATE(A1,1,0),3))
WEEKDAY関数の問題なのか、それともうるう年でExcelの小人さんが1増やしているのかよくわかんないです。
このトリックを入れてから、うるう年じゃない年でも正常に日付を取得できるようになりましたです。
こういう情報って公式に載っていましたっけ?
Excel 2016 for Macの記事はこちら。
訂正:10月の体育の日の数式が間違ってました。正しくは以下の数式で。
=DATE(A1,10,14-WEEKDAY(DATE(A1,10,0),3))