エクセルでうるう年かどうかif関数を使って判定する

A1セルに西暦年が入っているとしたとき、次の計算式でうるう年を判定することができます。

=if(day(date(A1,3,0))=29,"うるう年","うるう年でない")

「date(A1,3,0)」という関数で、指定した年の3月1日の「1日前」の日付を計算することができます。

その結果、

  • うるう年のときには指定した年の2月29日
  • うるう年でないときには指定した年の2月28日

が得られます。

その後、day関数を使って「日にち」部分だけを抜き出して、それが「29」かを調べることで、うるう年かどうかの判定をすることができます。

もし、A1セルに日付形式(例えば「2016/2/1」)で入っている場合には、さらにyear関数を使って、次の計算式でうるう年を判定できます。

=if(day(date(year(A1),3,0))=29,"うるう年","うるう年でない")

ところで、そもそもの話として、本当に「うるう年」かどうかを判定する必要があるのでしょうか?

そもそも、うるう年かどうかを判定する必要があるのか?

うるう年を判定したい理由は、いろいろ考えられますが、次のようにうるう年かどうかを判定しなくても目的を達成できることも多いのです。

月末の日付を表示させたい

月末の日付を表示させたいという場合。

2月以外は月末の日付が決まっていますが、2月だけはうるう年かどうかにより月末の日付が変わってしまうので、大変なイメージがあるかもしれません。

例えば、B1セルに年、B2セルに月が入っている場合、次のような計算式で月末の日付を計算できます。

=date(B1, B2+1, 0)

date関数で最後の引数(=日付)を「0」にすると「ついたちの1日前」という意味になります。

「翌月の月初の一日前」=「当月の月末」ということで、月末の日付が得られるのです。

uruudoshi_1_0

日報で月末までの日付を自動で表示させたい

日報を作成するために、1日~月末までの日付を表示させたいという場合。
2月についてはうるう年かどうかで月末が28日か29日かが変わってしまいます。

でも、この場合、うるう年かどうかの判定をする必要はありません。

例えば、次のような感じで、月初の月と比較して、月が変わってしまった場合には日付を表示しないというような設定をしておけば、どの月にも使うことができます。

uruudoshi_1_1

ポイントとなる計算式は、次のものです。

=IF(MONTH(A30)<>MONTH($A$1), "", A30)

A1セルに入っている日付の「月」と違っている場合(=翌月になった場合)には表示させないという意味です。

よくよく考えると、月末の日付は、月によっても変わりますので、うるう年だけ特別扱いする意味がないのです。

2月の日数を計算したい

2月はうるう年によって営業日数が変わってしまうので、前期比較をする際にうるう年かどうかを考慮して比較を行いたいという場合があります。

でも、各月の日数の計算もうるう年かどうかで場合分けをする必要はありません。

例えば、B1セルに年、B2セルに月が入っている場合、次のような計算式で計算ができます。

=DATE(B1, B2+1, 1)-DATE(B1, B2, 1)

date関数を使って翌月初・当月初の日付を作り、その引き算をすることで、当月の日数が出てきます。

uruudoshi_1_3

うるう年かどうかにかかわらず、各月の日数を自動計算してくれますので、うるう年かどうかを意識する必要がありません。

あるいは、月を横に並べて、各月の日数を計算したいという場合には、次のような表を作ってもOKです。

uruudoshi_1_2

1年の日数を計算したい

例えば、B1セルに年が入っている場合、次のような計算式で計算ができます。

=DATE(B1+1, 1, 1)-DATE(B1, 1, 1)

これも、先ほどの例と全く一緒です。
date関数を使って翌年初、当年初の日付を作り、その引き算をすることで1年の日数を計算できます。

uruudoshi_1_4

おすすめ記事

エクセル基礎講座 「無料」動画マニュアル

「経理事務のためのエクセル基礎講座(初級編)」(動画マニュアル 総収録時間162分)を無料プレゼント中です!

このマニュアルで解説していることを一通り学べば、経理事務を行う上で最低限必要となる知識が得られます。

ご登録者の方には、合わせて、公認会計士が実体験を通して身に付けたエクセルを使う技をメールにてお伝えしていきます!

無料動画講座 登録フォーム

※ご登録頂いたメールアドレスに、エクセルを使いこなすための情報を配信するメールセミナー「エクセル倍速講座」も合わせて配信させていただきます。