- ベストアンサー
Excel 条件付き書式で指定日以降を白抜きにする方法について
- Excelの条件付き書式を使用して、指定日以降を白抜きにする方法を教えてください。
- 質問者はExcelの勤務表を作成しており、開始日に合わせて翌月11日以降を日付と曜日を表示しながら白抜きにしたいと考えています。
- 具体的には、C3セルに今月の開始日を入力すると、C3からAH4までのセルに自動で日付と曜日の表示、および色づけがされるようにしたいとのことです。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
>「塗りつぶしを無しにして、フォントの色を白」よりできれば「空白」のほうを活用したいです。 >開始月が前月となる場合のC2、C3「空白」の数式をお教え頂けないでしょうか? 回答No.3の数式を応用すれば良いでしょう。 C2セルは初日のシリアル値を1行目のタイトルから算出して表示形式を「m"月"」にすれば良いと思います。 C2=EOMONTH(DATEVALUE("h"&$B$1&"-"&$D$1&"-1"),-2)+11 EOMONTH関数で2ヶ月前の末日を算出して11を加算すると前月の11日になる。 C3=$C$2 (但し、表示形式を「d」にする) D3=IF(EOMONTH($C$3,0)+10>C$3,C$3+1,"") (回答N0.3の数式で良い)
その他の回答 (7)
- imogasi
- ベストアンサー率27% (4737/17069)
多分用いる手段としては、質問者は Excel関数(条件付き書式の中で用いる) しか念頭にないのだろうが、 仕事でエクセルを使うなら、VBAの知識や利用が必須という、小生の持論から 、VBAの指定セル範囲(指定の行や列)を対象としたVisible、Hidden属性を使うのをお勧めします。 質問者の質問がよく読み切れていないが、これの方がすっきりすると思う。 それでは困った面があるかどうか不明だが。 手操作でも、 ホームー書式ー表示設定ー列を表示しない、などで簡単に設定できる 。 VBAで、非表示の条件を付ける場合は Sub test01() ActiveSheet.Columns.Hidden = false For c = 2 To 30 If Cells(3, c) = "月" Then ActiveSheet.Columns(c).Hidden = True End If Next c End Sub のようにする。If Cells(3, c) = "月" Then が条件で、第3行目で、月曜日の列は非表示。 曜日、来月、会社休業日などプログラムを組んで設定できます。 VBAで、設定を保護することもできます。 今後VBAの勉強をお勧めします。 ーー その他関連して エクセル、行や列の「再表示」にパスワードをかけたい https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1111248206
お礼
返信が遅くなり申し訳ありません。(人ω'*) VBA、今後の課題として学ばせて頂きます。 ご指導、ありがとうございます。
- bunjii
- ベストアンサー率43% (3589/8249)
条件付き書式でセルの値を見えないようにしたいと言うことでしょうか? 塗りつぶしを無しにして、フォントの色を白にする条件式は以下の通りです。 =C$3>EOMONTH($C$3,0)+10 EOMONTH($C$3,0) → $C$3が属する月の末日 条件付き書式で複数の条件に適合するときは上から順に処理されますので、上記の条件式を最上位にします。
お礼
返信が遅くなり申し訳ありません。トホホ( ;´д`) 2パターンでの回答、(人ω・*)ありがとうございます。
補足
「塗りつぶしを無しにして、フォントの色を白」より できれば「空白」のほうを活用したいです。 恐れ入りますが、 開始月が前月となる場合のC2、C3「空白」の数式を お教え頂けないでしょうか?
- msMike
- ベストアンサー率20% (364/1804)
- tsubu-yuki
- ベストアンサー率46% (179/386)
> それぞれに=C$3>=DATE(YEAR($C$4),MONTH($C$4)+1,11) ん?C4セルはどこから出てきたのでしょう? やるなら =C$3>=DATE(YEAR($C$3),MONTH($C$3)+1,11) の方が(結果は変わらずとも後見が)良いと思いますが。 で、当方では先ほどの「例」で問題なくできていますので、 どこかで式がおかしくなっているのではないでしょうか? としか回答しようがないです。 もしくは、可能性として、 ・再計算が手動に設定されている ファイルタブからオプション⇒数式⇒ブックの計算を自動に ・AB列以降の条件式が何かおかしい などが考えられますが、何せインターネット越しのやり取りですから これ以上のアドバイスは困難です。 悪しからずご容赦ください。
- bunjii
- ベストアンサー率43% (3589/8249)
>C3に 2017/1/11 提示の画像から判断して無駄な入力です。 C3=DATEVALUE("h"&$B$1&"-"&D$1&"-11") とすれば1行目表題から初日の日付が得られます。 尚。C2セルも次の数式で1行目を変更すれば自動的に追従できます。 C2=$D$1&"月" >D3に=C3+1 これをAHまでオートフィル 「翌月の11日以降を白抜き」と言う条件は「空白」で良ければ次の数式が良いでしょう。 D3=IF(EOMONTH($C$3,0)+10>C$3,C$3+1,"") 条件付き書式で文字の色を白にする方法もありますが日付の設定で翌月11日以降をIF関数で空欄("")にする方が良いと思います。
お礼
条件付き書式を使わない方法、ありがとうございます。(゜o゜;
補足
回答を頂ける皆さんへ・・・添付画像作成時にミスをしてしまいました。 月度の開始日は左上のD1にある月の前月からになります。 よって、D1=1 なら C2=12月、D1=2 なら C2=1月 になります。 C3=DATEVALUE("h"&$B$1&"-"&D$1-1&"-11") C2=$D$1-1&"月" D3=IF(EOMONTH($C$3,0)+10>C$3,C$3+1,"") と入力してD1に1を入力すると(期間12月~1月) ##とエラーになってしまいました。(>o<)
- f272
- ベストアンサー率46% (8477/18147)
ルールの適用先 =$AE$3:$AH$9 数式を使用して,書式設定するセルを決定 =DAY(AE$3)>10 書式は,フォントの色を白にして塗りつぶしを色なしにする でいいんじゃないかしら。
お礼
ご回答、ありがとうございます。 月更新にも対応させることが出来ました。(^O^)/
- tsubu-yuki
- ベストアンサー率46% (179/386)
> C3~AH4 日曜 : 数式 =WEEKDAY(C$3)=1 コレが生きているという事で、 3行目は表示形式「D」をお使いだと信じて・・ ごく単純に考えるなら、DATA関数を使うと比較的楽です。 式:=C$3>=DATE($B$1+1988,$D$1+1,11) これで比較して、書式は・・ 「白抜き」の真意がよくわからなかったので割愛します。 適宜、書式設定なさってください。 「条件の順番」にはご注意くださいませ。 翌月の日曜日も赤くなったりしないように順番を考えましょ。 なお・・上記DATA関数式はおそらくC3セルに応用できるはず。 いわゆる「年月(B1・D1セル)」が変われば 「開始日(C3セル)」も変わる。 ついでにIF関数・MONTH関数を使えば2行目も自動で変えれるかも。 ほんのすこーしですが、 > 開始日更新 の辺りで楽できますよ。
お礼
早速のご回答、ありがとうございます。
補足
AE4+5、AF4+5、AG4+5、AH4+5 それぞれに=C$3>=DATE(YEAR($C$4),MONTH($C$4)+1,11) として条件付き書式の先頭にしてみたところ、 2月ではうまく3/11以降が白抜き (塗りつぶし:白 フォント色:白)できました。 そのあと、C3を2017/1/11と更新すると、2/8以降も白抜きのままで、 これを月更新に合わせて毎月11日以降が白抜きされるようにしたいのですが?
お礼
条件付き書式を使わず、数式にて「空白」を挿入する方法 勉強になりました。ありがとうございます。( ´艸`) 。