- ベストアンサー
Excelで土日を飛ばした3日後の日付を表示する方法
- Excel365を使用して、特定の日付の3日後の日付を表示する方法を教えてください。
- ただし、土曜日や日曜日の場合は次の平日の日付を表示するようにしたいです。
- 具体的な例として、10/3(月)と入力した場合、3日後が土曜日の場合は10/10(月)と表示されるようにしたいです。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
ちょうど、さっきの別質問の式を変形すれば希望の加算ができますね。 =A1+CHOOSE(WEEKDAY(A1),3,3,5,4,3,3,3) A1の曜日が、月・火、途中飛ばして金・土・日の場合は、素直に3を足して、3日後の日付を求めます。 水曜の場合は5を足すことで、次の月曜日の日付になります。 木曜の場合は4を足すことで、次の月曜日の日付になります。 まあ、こんな式一つでは、祝日や振り替え休日には対応できませんが。
その他の回答 (5)
- imogasi
- ベストアンサー率27% (4737/17069)
#3です。 #3の回答に対する追加疑問について。 E1の式をB2セルに入れるとできるのでは? 私は、それほど、質問者はエクセルの関数に詳しくないようだし、自分も確認しておく必要があるので、中間結果を別列セルに出しました。 関数の勉強には、始めての課題に直面したときなど、こういった要領は必須ではないですか。 其の後、途中の式を1つの式に組み込めないか、考えるやり方です。
- bunjii
- ベストアンサー率43% (3589/8249)
回答No.4に誤りがありました。 =A1+IFS(WEEKDAY(A1+3)=1,4,IFS(WEEKDAY(A1+3)=7,5,TRUE,3) ↓ =A1+IFS(WEEKDAY(A1+3)=1,4,WEEKDAY(A1+3)=7,5,TRUE,3)
お礼
ありがとうございました。 色んな関数があるんですね。 IFSは、初めて知りました。
- bunjii
- ベストアンサー率43% (3589/8249)
>B1に、3日後の日付を表示したいです。 「Excel365です。」ということなのでIFS関数を使うと良いでしょう。1B1セルへ次の数式を入力して下へオートフィルコピーしてください。 =A1+IFS(WEEKDAY(A1+3)=1,4,IFS(WEEKDAY(A1+3)=7,5,TRUE,3) WEEKDAY関数は指定日が日曜日のとき1、月曜日のとき2、・・・・、土曜日のとき7が帰ります。 私はExcel 2013以前を使用していますので検証していませんのでご自身で確かめてください。 他の関数では次の数式も使えます。 =A1+CHOOSE(WEEKDAY(A1+3,2),3,3,3,3,3,5,4)WEEKDAY関数の第2引数に2を使うと月曜日が1、火曜日が2、・・・・、日曜日が7になります。 CHOOSE関数は第1引数(インデックス)が1から1ずつ増加しなければなりません。 第2引数以降は第1引数の値に従って順番に引き当てられます。 CHOOSE関数はExcel 2013以前のバージョンでも動作します。
- imogasi
- ベストアンサー率27% (4737/17069)
Choose関数も良いが、 普通人の発想は、下記のE1の式のようになるのでは? その日+3が、土曜日の場合は、次の月曜日、日曜は翌日の月曜日を計算する。 理解と検証を含めて、やってみると 例データA1:F19 2022/10/1 土 2022/10/4 火 2022/10/4 火 2022/10/2 日 2022/10/5 水 2022/10/5 水 2022/10/3 月 2022/10/6 木 2022/10/6 木 2022/10/4 火 2022/10/7 金 2022/10/7 金 2022/10/5 水 2022/10/8 土 2022/10/10 月 2022/10/6 木 2022/10/9 日 2022/10/10 月 2022/10/7 金 2022/10/10 月 2022/10/10 月 2022/10/8 土 2022/10/11 火 2022/10/11 火 2022/10/9 日 2022/10/12 水 2022/10/12 水 2022/10/10 月 2022/10/13 木 2022/10/13 木 2022/10/11 火 2022/10/14 金 2022/10/14 金 2022/10/12 水 2022/10/15 土 2022/10/17 月 2022/10/13 木 2022/10/16 日 2022/10/17 月 2022/10/14 金 2022/10/17 月 2022/10/17 月 2022/10/15 土 2022/10/18 火 2022/10/18 火 2022/10/16 日 2022/10/19 水 2022/10/19 水 2022/10/17 月 2022/10/20 木 2022/10/20 木 2022/10/18 火 2022/10/21 金 2022/10/21 金 2022/10/19 水 2022/10/22 土 2022/10/24 月 ーー B1の式 =TEXT(A1,"aaa") C1の式 =A1+3 D1の式 =TEXT(C1,"aaa") E1の式 =IF(WEEKDAY(A1+3)=7,A1+3+2,IF(WEEKDAY(A1+3)=1,A1+3+1,A1+3)) <==この式 F1の式 =TEXT(E1,"aaa") 以上の式を、下行方向に式を複写する。 金融機関の営業日を指定的発想か?
お礼
この式では、捨て列が出るので、A列に日付があって、B列に求めたい場合は、不可能…でしょうか? ただ、1日ずつ式を作ると、目で見てしっかりわかります。 わざわざ作って下さりありがとうございました。
土曜+2日たす 日曜+1日たす <?PHP $youbi = array("日","月","火","水","木","金","土"); for($i=0;$i<20;$i++){ $d=mktime(0,0,0,date("m"),date("d")+$i,date("y")); if(date("w",$d)==6) $d=$d+60*60*24*2; if(date("w",$d)==0) $d=$d+60*60*24; print date("Y年m月d日",$d)." (".$youbi[date("w",$d)].")<br>"; } ?>
補足
ありがとうございました。 PHPをExcelに組み込む方法がわからなくて…。 すいません。
お礼
その質問者、私です(汗)。 先ほど、既に入っていた式の意味が分からなくて質問していました。 自分がやろうとしていた式が、それだったとは…。 ようやく、ここにきて全てが解き明かされたような感じです。 ありがとうございました。