- ベストアンサー
EXCELの予定表で毎週月曜日に○を付けたいのですが(但し月曜日が営業
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
=IF(H4=WORKDAY(H4-MOD(H4,7),1,holidays),"○","")
その他の回答 (5)
- kmetu
- ベストアンサー率41% (562/1346)
> 解読できないので、関数を日本語で補足していただけないでしょうか。 これはI5に入れる式ですが =IF(AND(WEEKDAY(H4)=2,H5<>"○"),"○",IF(AND(WEEKDAY(I4)=2,WORKDAY(I4-1,1,$A$4:$A$6)=I4),"○","")) もし WEEKDAY(H4)=2 かつ H5が○でなければ○(前日が月曜なのに○でなければ○) でなく、もし WEEKDAY(I4)=2 かつ I4の前日から起算して翌日(I4当日)が営業日じゃないリストになく返ってきた値がI4と同じであれば○(月曜が営業日じゃないリストにあればその翌日が返るのでI4と一致しないので)→でなければ空白 という式になります。残念ながら火曜日が営業日じゃないということは考えていません。 ANo.4さんの式が火曜日も含め連続した休みにも対応してますね。 H4-MOD(H4,7)が前週の土曜日をさすと言うのは知りませんでした。
お礼
kmetuさんの >H4-MOD(H4,7)が前週の土曜日をさすと言うのは知りませんでした。 で、ANo.4さんの式が理解できました。 ありがとうございました。
- imogasi
- ベストアンサー率27% (4737/17069)
この課題は難しいですね。 やってみましたが、下記ではどうかな。下記9/24日の件がダメなら無視してください。 9月の例 A2から A列は月中全日数を入れる。 B列は参考までに表示。 式はB2に =workday(A2-1,1,{"2010/9/20","2010/9/23"}) C列はC2に =IF(A2=workday(A2-1,1,{"2010/9/20","2010/9/23"}),A2,"") 月末暇で式を複写 C1は1スペース D列D2は =IF(C2="","",IF(C1="","●","")) 2010/9/1 2010/9/1 2010/9/1 2010/9/2 2010/9/2 2010/9/2 2010/9/3 2010/9/3 2010/9/3 2010/9/4 2010/9/6 2010/9/5 2010/9/6 2010/9/6 2010/9/6 2010/9/6 ● 2010/9/7 2010/9/7 2010/9/7 2010/9/8 2010/9/8 2010/9/8 2010/9/9 2010/9/9 2010/9/9 2010/9/10 2010/9/10 2010/9/10 2010/9/11 2010/9/13 2010/9/12 2010/9/13 2010/9/13 2010/9/13 2010/9/13 ● 2010/9/14 2010/9/14 2010/9/14 2010/9/15 2010/9/15 2010/9/15 2010/9/16 2010/9/16 2010/9/16 2010/9/17 2010/9/17 2010/9/17 2010/9/18 2010/9/21 2010/9/19 2010/9/21 2010/9/20 2010/9/21 2010/9/21 2010/9/21 2010/9/21 ● 2010/9/22 2010/9/22 2010/9/22 2010/9/23 2010/9/24 2010/9/24 2010/9/24 2010/9/24 ● 2010/9/25 2010/9/27 2010/9/26 2010/9/27 2010/9/27 2010/9/27 2010/9/27 ● 2010/9/28 2010/9/28 2010/9/28 2010/9/29 2010/9/29 2010/9/29 2010/9/30 2010/9/30 2010/9/30 9/24日のようなのが●になるが、休み明けと言うことにはならないかな。 前回から6日以上の間隔を入れたいが、関数では難しい(休み明けが3連休(月火水)後まで(木)とかいえるかどうか。) また上記C列を省きたいが、関数では式が複雑になるか、不可能だと思う。 VBAに逃げ込むかな。
お礼
検討ありがとうございました。 VBAをあまり理解していないので、VBAについては今回はあきらめました。。
- kmetu
- ベストアンサー率41% (562/1346)
ANo1です 月曜日が営業日じゃないときは火曜日に○をつけるんですね忘れてました =IF(AND(WEEKDAY(H4)=2,H5<>"○"),"○",IF(AND(WEEKDAY(I4)=2,WORKDAY(I4-1,1,$A$4:$A$6)=I4),"○","")) こちらでいかがでしょう
補足
解読できないので、関数を日本語で補足していただけないでしょうか。
- kmetu
- ベストアンサー率41% (562/1346)
ANo1です 月曜が営業日じゃないときには火曜日に○をつけなければいけないのですね =IF(AND(WEEKDAY(H4)=2,H5<>"○"),"○",IF(AND(WEEKDAY(I4)=2,WORKDAY(I4-1,1,$A$4:$A$6)=I4),"○","")) こちらですね。
- kmetu
- ベストアンサー率41% (562/1346)
月曜が営業日でないリストを作成し たとえばA4からA6に営業日でない日付を入力 =IF(AND(WEEKDAY(H4)=2,WORKDAY(H4-1,1,A4:A6)=H4),"○","") とすればいかがでしょう。
お礼
理解できました。 ありがとうございました。 月~金まではこの式の応用でできますね。
補足
出来ました! でもなぜうまくいくのかわからない・・・ 一日一日、条件を当てはめると、あっているのはわかるのですが・・・