« マカーな彼へのプレゼントに | トップページ | 【DVD予約受付中】べオウルフ/呪われし勇者 »

2008年2月 5日 (火)

【Excel関数】なんだかこ難しい、月の末日を求める方法

そういや、今年は何気にうるう年ですね。

Excelで日付を使う機会は多々あるのですが、なんか意外と扱いづらいイメージがあるようです。
特にうるう年の「2/29」が影響するデータを使う場合は大変です。

その年がうるう年かどうかを判断するのにみんなIF関数を使うんですが、下手に「4年に一度」という頭があるので条件がえらく込み入ったものになりがちです。しかもしばらく後になると自分が見てもどういう条件だったかすぐに判断できないという落とし穴付きで(^^;)

ちなみにMicrosoftサポートオンラインに掲載されている内容はこんな感じです。
[XL] うるう年を判定する方法
http://support.microsoft.com/kb/214019/ja

でもこの方法だと、ほとんどの人はMOD関数なんて知らないので却って混乱するのでは?

そこで、もっとすんなりした条件式でうるう年を判別する方法をご紹介します。これは私が数年前にネットで「末日を求める方法」を見つけてからずっと使ってる方法で、条件も「DAY」「DATE」関数を使っているので、あまりExcelに強くない人でも説明すれば納得してくれる内容です。

*********************************************************************************

(Excel画面イメージ)実際はB1セルに関数を入れて下方向にコピーしていきます。
よろしければ、下表のA1・B1セルをコピーしてExcelのA1セルに貼り付けてみてください。

A B B1の結果
1
1998
=IF(DAY(DATE(A1,3,1)-1)=29,"うるう年","通常年")
通常年
2
1999
=IF(DAY(DATE(A2,3,1)-1)=29,"うるう年","通常年")
通常年
3
2000
=IF(DAY(DATE(A3,3,1)-1)=29,"うるう年","通常年")
うるう年
4
2001
=IF(DAY(DATE(A4,3,1)-1)=29,"うるう年","通常年")
通常年

B1に入っている関数「=IF(DAY(DATE(A1,3,1)-1)=29,"うるう年","通常年")」を分解して説明すると、

【IF関数】
=IF(

もしも(条件通りであれば、□真の場合、違うなら■偽の場合)を表示する

【条件】
DAY(DATE(A1,3,1)-1)=29,

DAY関数は、括弧内の日付を表す数値から日付部分を取り出す関数です。
例えば「DAY(2008,2,14)」であれば答えは「14」という具合です。

この関数を使い、まず検査したい年の3/1を指定し、そこから1を引くことによって前日を算出します。
3/1の前日とはつまり、2月の末日です。

その末日が29であるか否かを検査し、その結果が正しい(=真の場合)か違うか(偽の場合)を調べます。

【真の場合】
"うるう年",

条件で求めた2月の末日が29であった場合はうるう年と表示します。

【偽の場合】
"通常年"

条件で求めた2月の末日が29ではなかった場合(28ですね)は通常年と表示します。

*********************************************************************************

どうでしょうか。「DAY(DATE(A1,3,1)-1)」で末日を求める方法は他にもいろいろ使えるので、覚えておくと便利です。

例えば、必ず末日の日付を発信日として作成する文書があるときはこんなカンジ。

関数
表示結果
入力日
=TODAY()
2008/3/14
書類日付
=DATE(YEAR(B1),MONTH(B1)+1,1)-1
2008/3/31

「=TODAY()」が入ってるセルがB1だと思ってください。

YEAR()、MONTH()は上の条件で説明したDAY()と同じく日付を表す数値から年、月を取り出す関数です。

B1の入力日にTODAY()関数を入れておけばその下の書類日付の関数で
入力日の年 / 入力日の月+1(=翌月) / 1日 の組み合わせの日付を割り出し、
そこから1を引く事でその前日(当月の末日)を算出します。

この関数を書類ヘッダーの発信日にセットしておけばばっちり!うっかりうるう年に2/28と打っちゃうミスも防げます。

いやあ、Excel好きだからもんだからついつい長くなっちゃったなあ。この記事が誰かのお役に立って日本の経済が活性化すれば本望です。みんな、明日もお仕事頑張りましょうね。

|

« マカーな彼へのプレゼントに | トップページ | 【DVD予約受付中】べオウルフ/呪われし勇者 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 【Excel関数】なんだかこ難しい、月の末日を求める方法:

« マカーな彼へのプレゼントに | トップページ | 【DVD予約受付中】べオウルフ/呪われし勇者 »