読者です 読者をやめる 読者になる 読者になる

wanichanの日記

ちょっとした技術メモ。Microsoft中心。Webサイト管理等にまつわるネタ、サイトの更新情報等を発信中。最終版はwanichan.comに掲載していきます。

Excel:うるう年の3月以降の第2月曜日がずれる件

Excel

今日、日付ネタの記事をざーっと書いてきたんですが、今年2016年はうるう年です。1月第2月曜日の成人の日は正しく求められたんですが、3月以降の第二月曜日の日付が正しく返すことができず、1日ずれてしまうんですよね。これって前からでしたっけ?

今まで、そのハッピーマンデーネタの記事を書いていたんですが、この問題に今まで気づきませんでした。

しかし、第3月曜日には狂いはないんですよ。3月以降も。

Mac版だから?と思ったら、Windows版のExcelでも同じです。f:id:wanichan:20161018212845p:plain

今年の体育の日は10月10日でっせ。

しょーがないので、まず、うるう年の判定をするためのセルを用意して、うるう年なら1、そうでなければ0にして、

=IF(DAY(DATE(A1,2,29))=29,1,0)

f:id:wanichan:20161018213106p:plain

体育の日の数式にそのセルの値で減算する式を入れたらうまくいきました。

=DATE(A1,10,14-D1-WEEKDAY(DATE(A1,1,0),3))

f:id:wanichan:20161018213126p:plain

WEEKDAY関数の問題なのか、それともうるう年でExcelの小人さんが1増やしているのかよくわかんないです。

このトリックを入れてから、うるう年じゃない年でも正常に日付を取得できるようになりましたです。

こういう情報って公式に載っていましたっけ?

Excel 2016 for Macの記事はこちら。

訂正:10月の体育の日の数式が間違ってました。正しくは以下の数式で。

=DATE(A1,10,14-WEEKDAY(DATE(A1,10,0),3))

f:id:wanichan:20161018213810p:plain