『一つのセルが複数の条件を満たせば色をつけたい』(しじみ) おはようございます。 どなたか教えていただければ幸いです。 条件付き書式で、 1番目の条件 別シートの「処理日」という名前のセル範囲にS3と同じ日付があったら S3セルを青色に。 VLOOKUP(S3,処理日,1,0)=S3 書式:青 2番目の条件 1番目の条件を満たして、且つその日が土曜日だったらS3セルを黄色に AND(VLOOKUP(S3,処理日,1,0)=S3,WEEKDAY(S3)=7)="TRUE"』 書式黄色 という設定をしているのですが、2番目の条件設定でどうしても セルが黄色になりません。1番目はうまくいってS3も青色になるのですが。 S3には現在2010年7月17日(土)の日付が入っています。処理日にも7/17の 日付が入っています。 どなたか2番目の条件設定の間違いをご指摘ください。 過去の検索で、複数の条件を満たす・・・で探しましたが どうしてもみつかりませんでした。 どうかよろしくお願いします。 ---- 2003までに対して2007以降では条件付き書式がかなり拡張されています。 なのでバージョンを明記した方がいいです。 2003までのバージョンだとして。 条件付き書式では番号の順に条件をチェックして条件が満たされた場合、そこで終了してそれ以降の条件はチェックされません。 (2007以降ではそこでチェックを終わるかどうかを設定できる) なので条件1と条件2の順番を逆にしてみてください。 あと、範囲内に値があるかどうかは =COUNTIF(処理日,S3) でもいいかと。 AND(VLOOKUP(S3,処理日,1,0)=S3,WEEKDAY(S3)=7)="TRUE" は =AND(VLOOKUP(S3,処理日,1,0)=S3,WEEKDAY(S3)=7) または =AND(COUNTIF(処理日,S3),WEEKDAY(S3)=7) で。 「条件が成り立つ=条件式の結果が『TRUE』」ということなので条件式の結果とTRUEを比較する必要はないです。 また、条件式の結果の『TRUE』は論理値なので文字列の「"TRUE"」とは別物です。 (独覚) ---- 独覚さま お返事ありがとうございます! できました!! ご指摘ありがとうございます。バージョンは2003です。 理論値は文字列ではないのですよね。確かに。 COUNTIFもやってみましたがうまくできました。 ただよく分らないのが、COUNTIFというのは条件に合うものを 数える関数ですよね。この場合は、S3と同じ値を 数えてくださいということがなぜ、条件として成立するのでしょうか。 それとも独覚さまがおっしゃるようにCOUNTIFには「あるかどうか」を 調べる意味もあると理解すればいいのでしょうか。 また、条件付き書式は一つ目を満たすと二つ目はもう見ないということでしょうか。 順番を反対にしましたが、2番目の条件も見てセルの色がつきましたが。 もしもお返事をいただければ嬉しいです。 いずれにしても問題は解決しました。 本当にありがとうございました。 (しじみ) 実は、もっとたくさん質問があります(__; またご縁がありましたらどうぞよろしくお願い申し上げます。 ---- まず、こちら。 >この場合は、S3と同じ値を数えてくださいということがなぜ、条件として成立するのでしょうか。 これは論理値があるべきところに数値があった場合、Excelは「0」を「FALSE」に、「0以外」を「TRUE」とみなします。 なのでCOUNTIF関数の結果が「0」の場合は「FALSE」、COUNTIF関数の結果が「0でない」場合は「TRUE」になります。 (なお、数式内で論理値を扱う場合「=(A1="")*3」「TRUE」は「1」、「FALSE」は「0」として扱われます) >順番を反対にしましたが、2番目の条件も見てセルの色がつきましたが。 順番を反対にした場合、1番目の条件は「処理日範囲にS3セルの値があってなおかつ土曜日の場合」です。 これが満たされない場合、2番目の「処理範囲内にS3セルの値があるか」という条件がチェックされます。 >2番目の条件も見てセルの色がつきましたが。 となるということは「処理日範囲にS3セルの値があってなおかつ土曜日の場合」が満たされている場合にも黄色になった、ということになります。 そういうことではないと思いますがもう一度条件と結果を見比べてみてください。 (独覚) お返事遅くなりすみません。 --- これは論理値があるべきところに数値があった場合、Excelは「0」を「FALSE」に、「0以外」を「TRUE」とみなします。 なのでCOUNTIF関数の結果が「0」の場合は「FALSE」、COUNTIF関数の結果が「0でない」場合は「TRUE」になります。--- ...つまり、TRUEであれば条件を満たしたとして青色をつける、ということですね。 --- (なお、数式内で論理値を扱う場合「=(A1="")*3」「TRUE」は「1」、「FALSE」は「0」として扱われます)--- ...この数式入れると3となりました。0ではないから「TRUE」と考えればいいのですね。「=(A1="0")*3」にしたら0になったので「FALSE」ですね。 今後役に立つ知識みたいなので覚えておきます。ありがとうございます。 順番ですが、ご説明よく分りました。複雑な(あまりあてはまらない)条件を先に すればいいのですね。 それと最後のご指摘ですが、私の表現が悪かったと思います。順番を変えても、2番目も ちゃんと1番目で終わらずに色をつけてくれたよ、という意味でした。これもご説明のおかげでよく分りました。 本当にご親切に教えていただきありがとうございました。 これからも一生懸命勉強します。 感謝です! しじみ