「今月が何日あるのかを調べるにはどうしたらいいのでしょうか?」というご質問をいただくことがあります。Excelの日数計算の定番といってもいいご質問の一つです。[スポンサードリンク]何日間あるのか、という考えをすると引き算をする必要が出てきて、計算式も複雑になりがちですが、指定した月の最終日(月末の日)が何日なのかがわかれば、それが指定した月の日数と同じことになります。「=DAY(DATE(B1,B2+1,0))」サンプルファイルの「年・月を別々に入力」シートのB3セルに上記と同じ計算式が入力してありますので、年を指定するB1セルの値を「1900」〜「9999」、月を指定するB2セルの値を「1」から「12」の値に変更して、B3セルの値がどうなるのかご確認ください。14KByte)ダウンロード「DATE(B1,B2+1,0)」は、以前ご紹介した月末の日付を取得する計算方法です。DATE関数は日付(のシリアル値)を取得する関数で、第2引数(「B2+1」の部分)は、月を指定するのですが、B2セルに「1」を加えていることで、指定した翌月を指示していることになります。DATE関数の第3引数(「0」の部分)は、本来「1」から「31」の日を表す数値を指定するわけで、もし「DATE(B1,B2+1,1)」としていれば指定した年・月の翌月の1日の日付が取得できます。「DATE(B1,B2+1,0)」は指定した年月の翌月の1日の、前日の日付(すなわち指定した当月の最終日)を取得できることになります。「DAY(DATE(B1,B2+1,0))」は、指定した日付の翌月の1日の、前日の日付の日(すなわち指定した当月の日数)を取得できるわけです。サンプルファイルの「日付を入力」シートでは、B1セルに日付を入力したときに、B3セルにその月の日数を計算する「=DAY(DATE(YEAR(B1),MONTH(B1)+1,0))」という計算式を入力しています。この「=DAY(DATE(YEAR(B1),MONTH(B1)+1,0))」という数式も考え方自体は、年・月を別々のセルに指定する「=DAY(DATE(B1,B2+1,0))」と同じことです。Excelは本当は存在しないの「1900年2月29日」が存在することとして作られていますので、1900年2月の日数計算にだけは、誤った「29」という数値になってしまいますので、1900年2月の日数計算も正しく行う必要がある場合は、別途回避処理を追加してください。Officeの使い方などを紹介し続け(2012年頃からはVBA関連記事が多め)、毎日5万人の方にご覧いただいています。