• ベストアンサー

エクセルの条件付き書式の設定 勤務表

たびたび質問されているのでいろいろと試してみたのですが、解決しないので教えてください。 日曜日、祝日は条件付き書式の設定(セルの色付)はできるのですが、土曜日はランダムで出勤日があります。 出勤日は月に一日程度で、できれば出勤土曜日のリストを作り、反映したいのですが、できません。 条件1に、数式が・・・で OR(WEEKDAY(E4)=1,WEEKDAY(E4)=7,NOT(ISNA(MATCH(E4,$AJ$4:$AJ$57,0)))) を入れましたがすべての土曜日の書式が設定されます。 条件2で・・・ 出勤土曜のみセルに色付けしない書式をよろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • A88No8
  • ベストアンサー率52% (836/1606)
回答No.2

こんにちは 式の要素自体は、ちゃんと機能していますので、#1の方の回答と同じで質問者さん考えすぎのようです。 土曜をブルー、日曜をピンク、出勤土曜日を色無し太文字にした一例です。

hanako903
質問者

お礼

ご回答ありがとうございます。 理解できました。 ありがとうございます。 条件付き書式が3つ以上設定できないのが問題で・・・ 出勤土曜日、休日土曜日、日曜日、祝日です。 一年間の出勤土曜は既に決まっているので、月をインプットすると自動的に色が変わるようにしたい為、祝日のリストと出勤土曜のリストを作成してあります。 説明が下手で申し訳ないのですが、条件1と2を組み合わせれないでしょうか??

その他の回答 (6)

  • a987654
  • ベストアンサー率26% (112/415)
回答No.7

エクセルの条件付き書式は条件が成立した時点で抜け出してしまい 以降の条件は判定しません。 従って、判定順を逆にして、条件1にて出勤日の土曜日の色つけを 設定し、条件2にて出勤日以外と日曜日の判定を入れたほうが 条件式が簡単になります。

  • A88No8
  • ベストアンサー率52% (836/1606)
回答No.6

こんにちは  #1さんのアドヴァイスを理解し切れていないようなので..  #1さんは、以下の目的であるならAND(かつ)でくくれとアドヴァイスされています。  条件付書式を有効にしたいのは、「土曜日」かつ「出勤土曜日一覧表にない日」である。  もし、仮に下記の目的ならOR(または)です。  条件付書式を有効にしたいのは、「土曜日」または「出勤土曜日一覧表にない日」である。  ちなみに.. 「出勤土曜日一覧表にない日」=ISNA(MATCH(E4,$AJ$4:$AJ$57,0)) 「出勤土曜日一覧表にある日」=NOT(ISNA(MATCH(E4,$AJ$4:$AJ$57,0)))  です。

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.5

> NOT以下が出勤判定になることもわかりました。 いや、そこはただの推測なんでそれが正しいかどうかは貴方かもともとこの式を書いた方しか知り得ませんが……もしかしてそれぞれの式を理解されていないのでしょうか? > OR(WEEKDAY(E4)=1,NOT(ISNA(MATCH(E4,$AJ$4:$AJ$57,0))))、AND(WEEKDAY(E4)=7,) > ですか?? 違います。 というかOR()の書式がわかってないのでしょうか? これがわかっていればAND()に敷衍するのは容易いはずなんですが…… #1で意図した式はこうです。 OR(WEEKDAY(E4)=1,AND(WEEKDAY(E4)=7,NOT(ISNA(MATCH(E4,$AJ$4:$AJ$57,0))))) 括弧の数はあってないかもしれません。

  • A88No8
  • ベストアンサー率52% (836/1606)
回答No.4

#3の補足です。  私だったら#2のままにして、祝日用の列を新たに作り「何の日」を色つきで表示するようにしますけど(^^;  結局、祝日だったら「何の日だっけ?」って思うじゃないですか。

  • A88No8
  • ベストアンサー率52% (836/1606)
回答No.3

こんにちは  質問者さんがしたいことがよく判りませんでした。  「出勤土曜日に色づけしなければOk」だけじゃないようですね。  祝日は条件2に設定して、休日土曜日と日曜日を条件3にORでまとめてみてはいかがでしょう? でも出勤土曜日や休日土曜日や日曜日に対する祝日の関係が微妙です。どちらが優先なのか..  条件付書式は3つまでなので、質問者さんは、何をしたいのかそのための条件は何なのかを明確にして、3つに収まるように整理しなければいけません。

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

ORにしてるのでWEEKDAY(E4)=7だけでTRUEになってしまうからです。 後ろのNOT以下略が出勤日判定かと思いますが、それとWEEKDAY(E4)=7をANDで括りましょう。

hanako903
質問者

お礼

早々のご回答ありがとうございます。 本当にわかりが鈍くてすいません。 TUREになること、NOT以下が出勤判定になることもわかりました。 ANDで括るのが、どうしても反映できません。 OR(WEEKDAY(E4)=1,WEEKDAY(E4)=7,NOT(ISNA(MATCH(E4,$AJ$4:$AJ$57,0)))) ↓ OR(WEEKDAY(E4)=1,NOT(ISNA(MATCH(E4,$AJ$4:$AJ$57,0))))、AND(WEEKDAY(E4)=7,) ですか??