B列に日付 Z列に第二水曜の行には1を表示してそれ以外は0を表示する式

補足

第二水曜日を塗りつぶしたいです。

Excel53閲覧

ベストアンサー

1

1人がナイス!しています

ThanksImg質問者からのお礼コメント

こちらの式で解決いたしました。 ありがとうございました。

お礼日時:9/21 14:05

その他の回答(4件)

1

「第二x曜日」はすべて8日から14日の間にありますから、 ceiling(day(日付), 7)=14 で簡単に判定可能です。もちろんさらに7で割り算して「2だよ」でもいいんですが。 =(ceiling(day(日付), 7)=14)*(text(日付, "aaa;;")="水") =and(ceiling(day(日付), 7)=14, text(日付, "aaa;;")="水") 条件付き書式の数式は「TRUEなら条件を満たす」ので、文字列を返す数式は負けです。ちゃんとTRUEまたは0以外の数値を返す数式を書きましょう。if関数は論外です。

1人がナイス!しています

1

お示しの式では、月の始まりが木曜日~土曜日の場合に第1水曜日が1になります。 また、文字の1,0と数値の1,0が区別されていません。 Z8セルの数式は =IF((WEEKDAY(B8)=4)*(ROUNDUP(DAY(B8)/7,0)=2),1,0) O8セルの条件付き書式の数式は $Z8=1 でどうでしょうか。

1人がナイス!しています

1

Excelの質問だと仮定しますけどバージョンが不明です。 Excel2010以上なら そんながちゃがちゃした式はいりません。 ついでにいうと いちいち Z列に数式を入れる必要もありません。 O8:O38に条件付き書式を数式指定にして =WORKDAY.INTL(EOMONTH(B8,-1),2,"1101111")=B8 とすればいいです。 あと一応 > どうしてもこれだけ上手く行かないです。 数値と文字列の区別がついていないように思います。 「"0"」「"1"」は文字列です。 数値として扱いたいなら「""」は抜きましょう。

1人がナイス!しています

1

下図の場合 Z8に =IF((WEEKDAY(B8)=4)*((ROUNDUP(DAY(B8)/7,0)+(WEEKDAY(EOMONTH(B8,-1)+1)>4)=2)),1,0) 下にオートフィル。 条件付き書式 数式を =Z8=1

画像

1人がナイス!しています