EXCELで指定月の日数を表示する方法

2018/08/03






エクセルで指定した月の日数を表示させたい時、ありませんか?

つまり、エクセルで「2016 年2月」とセルに入力したら、「28」ではなく正確に「29」が自動で表示されるイメージです。

例えば、会社で月間の予測数値を算出するときなど。「月の日数」が活躍します。
1日あたりの平均値がわかっている時は、その数値に「ひと月分の日数」をかければいいですよね。
こんなときにわざわざカレンダーを見なくて済むわけです。

今回の h1r0-style.net は、Excelで指定した月の日数を表示する方法について解説します。

任意の月の「日数」を表示させる

月の最終日の日付を利用する

エクセルで任意の月の日数を表示させるには、その月の最終日の日付の「日」の部分だけを抽出すればいいのです。

そこで使用するのが、EOMONTH関数です。


EOMONTH関数 と DAY関数

EOMONTH関数

エクセル関数のひとつである EOMONTH関数 は、任意の日付から起算して指定した月だけ前(あるいは後)の月の最終日のシリアル値を返します。
つまり、任意の月の月末( =End Of Month)の日付を返し、式は;

=EOMONTH(開始日, プラスもしくはマイナスする月数)

で表します。

DAY関数

そして、EOMONTH関数によって取得された月末の日付から「日」の部分を抽出するために組合わせるのが、DAY関数です。
ちなみに、DAY関数は;

=DAY(任意の日付)

となります。


使用例

では、月の日数を取得すべく、実際にエクセルに入力してみましょう。

まずはA1のセルに「任意の月」を入力します。
2016 年5月なら、「5/1」と入力して「セルの書式設定」で書式を設定します。

A1
「yyyy"年"m"月"」は、もしデフォルトの日付の書式になければ、「ユーザー定義」で設定してください。
これで「任意の月」の出来上がりです。
次はいよいよ「月の日数」の算出です。
注)ここでは、分かりやすくするために2段階に分けて式を完成させます。

B1のセルに「=EOMONTH (A1, 0)」と入力します。2番目の引数のゼロは、A1の日付にひと月も足したり引いたりしない(=当月)ということです。

すると、B1セルには「42521」と表示されます。これは2016年5月の月末の日付「2016 年5月31日」のシリアル値です。

B1
この日付の「31」(日)の部分だけがほしいので、DAY関数を使います。
=DAY (EOMONTH (A1, 0))」のように、EOMONTH関数をDAY関数で包みます。
すると、セルには「31」が表示されます。
完成
これでA1セルの数字を変更するたびにB1セルは常にその月の日数を表示するようになります。

この数字、意外と仕事で使えます。


月末までの日数を算出する

月の日数を算出できれば、任意の日付の 月末までの日数 を算出することも簡単です。

例えば、今日の日付から月末までの日数を求める場合、Excel上での考え方は;

月末までの日数 = 月の日数 - 今日の日付の「日」

となるので、下のサンプルでいうところの、セルB2に入る関数は;

=DAY ( EOMONTH ( A2, 0) ) - DAY (A2)

とすればよいのです。

月内に達成すべき目標や、完了すべきタスクがある場合「月末まであと何日」という数字は大きな意味を持ちます。
そんな時にこの数式が役に立ってくれれば幸いです。

関連記事



併せて読んでおくとさらに便利

HLOOKUP関数とVLOOKUP関数の違いと使い方
HLOOKUP関数・VLOOKUP関数
「HLOOKUP関数」をご存知ですか? HLOOKUPとVLOOKUPとの違いについて解説します。HLOOKUPを使った複数条件に合致するデータの抽出方法や、HLOOKUPの[#N/A]エラーを非表示にする方法などなど。

EXCELの行や列を折りたたむ「グループ化」をマスターしよう
グループ化
行や列を折りたたむ「グループ化」の機能について解説。たたむ・展開するの切替えはワンタッチで簡単!この グループ化 で見た目もすっきり、そして機能的な作表に挑戦しましょう。



EXCELでベスト5の順位表を作る方法 Part 1
LARGE関数・RANK関数
学校の成績ベスト5、〇〇の都道府県別ベスト10。。。 日々データ分析に携わっていると、仕事でも何かと「順位」「ベスト〇位」を求められることがしばしばです。
 

※その他関連記事は、このページの下の方にもあります。

-EXCEL&VBA
-, ,

シェアしていただけると助かります。