- ベストアンサー
エクセルの日付の設定
現在、発行日(H1)の翌日末支払の場合、以下のような関数を入れています。 =DATE(YEAR(H1),MONTH(H1)+2,0) 末日が土日である場合、前日になるように設定はできるのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。maruru01です。 前のお二方の回答を応用しているだけですが。 分析ツールが利用可能なら、EOMONTH関数も利用出来るので、 =WORKDAY(EOMONTH(H1,1)+1,-1) で出来ます。 分析ツールが利用出来ない場合は、 =DATE(YEAR(H1),MONTH(H1)+2,0)-MAX(WEEKDAY(DATE(YEAR(H1),MONTH(H1)+2,0),2)-5,) になります。 なお、分析ツールのWORKDAY関数が使用出来ないと、土日は避けられても、祝日を避けるのは困難になります。
その他の回答 (2)
- DoragonFang
- ベストアンサー率41% (91/221)
土日の場合はその直前の金曜日にするということでよいのでしょうか? 見た目は複雑ですが、以下の式でできると思います。 =DATE(YEAR(H1),MONTH(H1)+2,0)-IF(WEEKDAY(DATE(YEAR(H1),MONTH(H1)+2,0),2)>5,MOD(WEEKDAY(DATE(YEAR(H1),MONTH(H1)+2,0),2),5),0) やっていることは単純で、IF関数を使い、月末が土日の場合、土曜日なら1日、日曜日なら2日、それ以外の平日は0日を翌月末日より引き算しているだけです。 weekday関数は2つめの引数の数字によって返す値が変わります。この例の2にすると、月曜日を1,火曜日を2,・・・日曜日は7か返ります。 そこで、これが5より大きいときは土日と判断し、MOD関数で5で割った余りを引くようにします。
- mshr1962
- ベストアンサー率39% (7417/18945)
=WORKDAY(DATE(YEAR(A1),MONTH(A1)+2,1),-1) ただし、WORKDAY関数は「ツール」「アドイン」で「分析ツール」にチェックが必要です。