- 締切済み
エクセルの条件付き書式設定について教えてください
エクセルの条件付き書式設定について教えてください エクセルで工程表を作成しているのですが、条件付き書式設定で悩んでいます。 以前、こちらで相談させていただいてほとんど問題は解決して作成し終わったのですが・・・ さらに追加で注文をつけられてしまい悩んでいます。 今回の質問は、以前の「開始日と終了日に日付を入れるとその間はセルの色が黒に変わるように設定しているのですが、更に作業内容の項目のFIXという項目の開始日と終了日を入力したときだけセルの色を赤に変わるように設定したいです」に加えて、FIXという文字の前後にも何か文字がはいっている場合でも赤に変わるように設定したいです。 <例> 7/1 7/2 7/3 A B(開始日) C(終了日) キックオフ 7月2日 7月2日 制作 7月8日 7月18日 Flash制作FIX 7月20日 7月20日 FIXの前後に*をつけてFIXを含むみたいにしてみたりもしたのですが、どうもうまくセルの色が赤に変わりません。 最終的には、「もし、A列にFIXという文字が含まれているのなら(FIXのみでも可)、B列とC列に日付を入れたらカレンダーのその日のセルが赤に変わる」というふうにしたいです。 お手数ですが、ご教授お願いします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
条件付き書式は、「式が」で、条件は2つ以上取り入れた式を作ることは出来る(普通)。 しかしある場合は黒、ある場合は赤という場合は、優先順位をつけて、2つ以上の条件を並べて指定する ほかない。 ーー この質問の対象はキックオッフと製作の「2行だけ」の7/1-7月末までか?はっきり書くこと。 下記に書くように、他の語句が不定行数に現れるのか。質問例の3行で終わり(しかないの)か。 キックオフなどのFlash制作FIXの期間(例では20日)だけを赤くするのではないよね。該当期間中の日全体を赤にするのか、はっきりさせること。 回答が変わる。 ーー 条件は (1)開始ー終了日の期間中 (2)Flash制作FIXの行に期間があれば の2つだが、(2)の方が優先してほしいから第1条件にする。 >A列にFIXという文字が含まれているのなら 質問例の、Flash制作FIX などは、どの行に現れるか不定なのか?(対する状態はいつも第3行目にある) またキックオフや製作やは、他の文字列(例 検品)他の行にもあるのか? ーーー どこかのセルに一旦FIXのあるなしのサインを出しておく。考えやすくするためです。 D1セルとして =IF(NOT(ISERROR(MATCH("*fix*",$A$1:$A$10,0))),1,0) なし場合が0、ありが1. このようにMATCH関数は*(ワイルドカード)が使える。(言っていること判らなければWEB照会のこと。 そのレベルでは本件の担当は難しかろう) FIX何何の行のB列に期間が入っているかどうかもあるので 且つFIX何何が2行以上には出ないとして(注) =IF(AND(NOT(ISERROR(MATCH("*fix*",$A$1:$A$10,0))),INDEX($B$1:$B$10,MATCH("*fix*",$A$1:$A$10,0))<>""),1,0) えらく複雑になる。 これ以上はVBAを使わないとダメだろう。 (注) 第3行 dfgfix 第9行 123fix 7月4日 のような例があり該当とすることは、普通の関数では無理だと思う。 ーーー 以上私の疑問点を、よく読んで、問題を整理してみて。 ーー 上記でよければ 第1条件 D1セルが1で期間中なら(AND条件)赤を設定 第2条件 D1セルが0で期間中なら(AND条件)黒を設定 で良いのかな。 式が長くなっても良いなら、D1セルの仕様をやめて、「数式が」の式にD1に書いた式を「埋め込む」ことも出来るのはわかるよね。
- KURUMITO
- ベストアンサー率42% (1835/4283)
二つの条件付き書式を設定することが必要ですね。一つは黒色にするための設定で、一つは赤色にするための設定ですね。 条件の設定に当たってはD列から右の列を範囲として選択します。1行目には日付が並んでいることにします。 そこで黒色の設定ですがその条件も変えることがよいでしょう。条件付きの式としては次のような式にします。 =AND(ISERROR(FIND("FIX",ASC($A1))),COUNT($B1:$C1)=2,D$1>=$B1,D$1<=$C1) 次に赤色にするための条件付きの式としては次のような式にします。 =AND(NOT(ISERROR(FIND("FIX",ASC($A1)))),COUNT($B1:$C1)=2,D$1>=$B1,D$1<=$C1) このように二つの条件付き書式を設定することが必要でしょう。
- kagakusuki
- ベストアンサー率51% (2610/5101)
回答番号:ANo.2です。 申し訳御座いません、先程の回答において、【条件1】の数式を回答欄に書き写した際に、一部を写し忘れておりました。 =AND(ISNUMBER("FIX",ASC($A2))),$B2>0,D$1>=$B2,D$1<=$C2) は間違いで、正しくは =AND(ISNUMBER(SEARCH("FIX",ASC($A2))),$B2>0,D$1>=$B2,D$1<=$C2) です。
- kagakusuki
- ベストアンサー率51% (2610/5101)
今仮に日付がD1セルから始まって、右方向に入力されているものとします。 その場合、まずはD2セルに以下の条件で条件付き書式を設定して下さい。 【条件1】 数式が =AND(ISNUMBER("FIX",ASC($A2))),$B2>0,D$1>=$B2,D$1<=$C2) 書式:パターンが赤 【条件2】 数式が =AND($B2>0,D$1>=$B2,D$1<=$C2) 書式:パターンが黒 後はD2セルをコピーして、必要な範囲に貼り付ければ良いと思います。
- Cupper
- ベストアンサー率32% (2123/6444)
再度質問と言うことですね。 根本的な解決を目指していますので、ちょっとした教育的な回答になります。 では、質問者さんはその要求に対してどのような試みをしたのでしょう。 「少なくとも 何をやったけど解決できなかった と言うことでないと 全部代わりに考えてよ」ってスタンスでは、以後同様な要求をされた時に対応できませんよ。 自身の能力の限界を超える要求をそのまま受けてはいけません。 できない場合は 「できません」 と相手に伝えなければ無理な要求をされるだけです。 では解決手順の説明です。 条件が成立する関数式を作ってください。 (条件が成立したら 1 または TRUE 、不成立なら 0 または FALSE になるようにする) それをそのまま条件式に入れてやればOK。 とりあえず、自身でこの関数を適当なセルに作ってみてください。 うまくできたら条件付書式の条件式に入力です。 条件付書式は1つのセルに3つまで作成できます。 そして 条件1>条件2>条件3 の優先があります。 (条件1と条件2が成立したらそれぞれの書式を適用することはありません。 この場合は条件1の書式だけが適用されます。) ですので、この場合は今まで設定していた条件1の内容を条件2へ そっくりそのまま撮してください。(同じ条件を入力しましょってこと) そして改めて条件1に新しい条件を設定です。 では、頑張ってみてください。