アプリ版:「スタンプのみでお礼する」機能のリリースについて

EXCELの予定表で毎週月曜日に○を付けたいのですが(但し月曜日が営業日でない時は翌営業日)、
営業日の条件をどうやって関数に組み入れていいのか思いつきません。
やはり別表で一度その日付を出して、VLOOKかMATCHで○を付けるのがいいのでしょうか。
よろしくお願いいたします。

毎週月曜日
=IF(WEEKDAY(H4)=2,"○","")
に営業日の判断を加えると思うのですが・・・

「EXCELの予定表で毎週月曜日に○を付け」の質問画像

A 回答 (6件)

> 解読できないので、関数を日本語で補足していただけないでしょうか。



これは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)が前週の土曜日をさすと言うのは知りませんでした。
    • good
    • 0
この回答へのお礼

kmetuさんの
>H4-MOD(H4,7)が前週の土曜日をさすと言うのは知りませんでした。
で、ANo.4さんの式が理解できました。
ありがとうございました。

お礼日時:2010/08/15 00:14

この課題は難しいですね。


やってみましたが、下記ではどうかな。下記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/12010/9/12010/9/1
2010/9/22010/9/22010/9/2
2010/9/32010/9/32010/9/3
2010/9/42010/9/6
2010/9/52010/9/6
2010/9/62010/9/62010/9/6●
2010/9/72010/9/72010/9/7
2010/9/82010/9/82010/9/8
2010/9/92010/9/92010/9/9
2010/9/102010/9/102010/9/10
2010/9/112010/9/13
2010/9/122010/9/13
2010/9/132010/9/132010/9/13●
2010/9/142010/9/142010/9/14
2010/9/152010/9/152010/9/15
2010/9/162010/9/162010/9/16
2010/9/172010/9/172010/9/17
2010/9/182010/9/21
2010/9/192010/9/21
2010/9/202010/9/21
2010/9/212010/9/212010/9/21●
2010/9/222010/9/222010/9/22
2010/9/232010/9/24
2010/9/242010/9/242010/9/24●
2010/9/252010/9/27
2010/9/262010/9/27
2010/9/272010/9/272010/9/27●
2010/9/282010/9/282010/9/28
2010/9/292010/9/292010/9/29
2010/9/302010/9/302010/9/30
9/24日のようなのが●になるが、休み明けと言うことにはならないかな。
前回から6日以上の間隔を入れたいが、関数では難しい(休み明けが3連休(月火水)後まで(木)とかいえるかどうか。)
また上記C列を省きたいが、関数では式が複雑になるか、不可能だと思う。
VBAに逃げ込むかな。
    • good
    • 1
この回答へのお礼

検討ありがとうございました。
VBAをあまり理解していないので、VBAについては今回はあきらめました。。

お礼日時:2010/08/15 22:48

=IF(H4=WORKDAY(H4-MOD(H4,7),1,holidays),"○","")

この回答への補足

出来ました!

でもなぜうまくいくのかわからない・・・

一日一日、条件を当てはめると、あっているのはわかるのですが・・・

補足日時:2010/08/14 21:59
    • good
    • 1
この回答へのお礼

理解できました。
ありがとうございました。
月~金まではこの式の応用でできますね。

お礼日時:2010/08/15 00:15

ANo1です



月曜日が営業日じゃないときは火曜日に○をつけるんですね忘れてました

=IF(AND(WEEKDAY(H4)=2,H5<>"○"),"○",IF(AND(WEEKDAY(I4)=2,WORKDAY(I4-1,1,$A$4:$A$6)=I4),"○",""))

こちらでいかがでしょう

この回答への補足

解読できないので、関数を日本語で補足していただけないでしょうか。

 

補足日時:2010/08/14 19:48
    • good
    • 0

ANo1です



月曜が営業日じゃないときには火曜日に○をつけなければいけないのですね

=IF(AND(WEEKDAY(H4)=2,H5<>"○"),"○",IF(AND(WEEKDAY(I4)=2,WORKDAY(I4-1,1,$A$4:$A$6)=I4),"○",""))

こちらですね。
    • good
    • 0

月曜が営業日でないリストを作成し


たとえばA4からA6に営業日でない日付を入力

=IF(AND(WEEKDAY(H4)=2,WORKDAY(H4-1,1,A4:A6)=H4),"○","")

とすればいかがでしょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!