対象:Excel97,Excel2000,Excel2002,Excel2003,Excel2007月末の日を簡単に求められるEOMONTH関数についてご紹介しました。「土曜日と日曜日を除外して、月末の最後の日を求めるにはどうしたらいいのでしょうか?」といったご質問をいただくことがあります。実務では、月末最終営業日に特定の業務を行うことがあったりするわけで、その日付を簡単に調べたいということです。[スポンサードリンク]月末日を返すEOMONTH関数、曜日を数値として取得できるWEEKDAY関数、条件分岐を行うIF関数を併用すれば、土曜日・日曜日を除いた月末最終営業日を求めることができます。月曜日から金曜日に該当すればその日を表示すればいいわけです。これを数式にしたのが上記の「=IF(WEEKDAY(EOMONTH(A1,0),2)=7,EOMONTH(A1,0)-2,IF(WEEKDAY(EOMONTH(A1,0),2)=6,EOMONTH(A1,0)-1,EOMONTH(A1,0)))」です。Excelの数式に慣れていない方は、入れ子になって、同じ関数が何度も並んでいるのを見ただけで拒否反応が出るかもしれませんが、そんな場合は途中に改行を入れたり、スペースを入れることを、おすすめします。土曜日は「6」といった数値が取得できます。月末日が日曜日ならその2日前の日を返すのが=IF(WEEKDAY(EOMONTH(A1,0),2)=7,EOMONTH(A1,0)-2,の部分です。月末日が土曜日ならその1日前の日を返すのが、先の日曜日部分に続くIF(WEEKDAY(EOMONTH(A1,0),2)=6,EOMONTH(A1,0)-1,です。月曜日から金曜日に該当すればその日を返すのが、先の土曜日部分に続くEOMONTH(A1,0)です。43KByte)ダウンロードサンプルファイルのA6セルに上記の数式が入力してあります。D6セルにA1セルから月末日を求める「=EOMONTH(A1,0)」という数式、D2:D5セル・D7:D9セルにその前後の日付を表示する数式、E2:E9セルには第2引数に「2」を指定したWEEKDAY関数を入力して、D2:D9セルに条件付き書式を設定してあります。A1セルの値を変更して、E2:E9セルにどんな値が表示されるか、そしてA6セルにどんな日付が表示されるか、ご確認ください。月末を求めるEOMONTH関数は、分析ツールアドインに含まれる関数です。2003までのExcelをお使いの方でサンプルファイルを利用しようとした時に#VALUE!エラーが表示される場合、分析ツールアドインのインストールを行ってください。Officeの使い方などを紹介し続け(2012年頃からはVBA関連記事が多め)、毎日5万人の方にご覧いただいています。