エクセルで条件書式と入力規則を使い、カレンダーを作りたい!
仕事でエクセルを使って、
「各営業所における営業日の実績データ」を収集しているのですが、
PCを得意としていない人たちが入力していることもあり、
休業日など目的と違うところにデータを入力してしまうことがあります。
そこで、視覚的に入力するところを分かりやすくし、
それでも間違ったところに入力してしまうのを防ぐため、
条件書式と入力規則を使って、カレンダーを作りました。
年月を入力すれば自動的に日付が変わるカレンダーを作り、
日付は正しく反映されているのですが、
営業日と休業日が上手く反映されず、その原因が分かりません・・・。
当社の営業日設定なのですが、
基本的に平日と日曜が営業日で、休業日は土曜と祝日になります。
ただし、平日が祝日だった場合は休業ですが、
日曜日と祝日が重なった場合は営業日になります。
なお、年末年始(12/31~1/3)は休業日になります。
さらにややこしくなってしまうのですが、
GW中(4/28~5/7)の日曜日、年末年始(12/30~1/5)の日曜日は、
長期連休ということで休業日になっています。
エクセルのデータですが、
列Aには日付(A3が1日)、列Bには曜日が入力してあり、
列Cと列Dに実績データを入力してもらう形にしてあり、
ここに条件書式と入力規則を設定しています。
また、セルV2~W33までに各祝日のリストとその振替休日、
加えてそれ以外の休業日(12/30、1/2、1/3)の日付を記入してあります。
前置きが長くなってしまって申し訳ございません。
以下が、私の考えた条件書式と入力規則の流れです。
まず休業日を考え、入力規則のユーザー設定に、
=OR(
COUNTIF($V$2:$W$33,$A3)<>0,
MOD($A3,7)=0
) (※祝日リストに日付があるか、土曜日である)
として、さらにGW・年末年始休業の部分を、
AND(MOD($A3,7)=1,AND(MONTH($A3)=4,DAY($A3)>=28)),
AND(MOD($A3,7)=1,AND(MONTH($A3)=5,DAY($A3)<=7)),
AND(MOD($A3,7)=1,AND(MONTH($A3)=12,DAY($A3)>=30)),
AND(MOD($A3,7)=1,AND(MONTH($A3)=1,DAY($A3)<=5)),
と考えました。また祝日かつ日曜日は営業日となることを、
AND(COUNTIF($V$2:$W$33,$A3)<>0,MOD($A3,7)=1),
と考えて、その逆が休業日であることから、
=OR(
COUNTIF($V$2:$W$33,$A3)<>0,
MOD($A3,7)=0,
OR(COUNTIF($V$2:$W$33,$A3)=0,MOD($A3,7)<>1),
AND(MOD($A3,7)=1,AND(MONTH($A3)=5,DAY($A3)<=7)),
AND(MOD($A3,7)=1,AND(MONTH($A3)=4,DAY($A3)>=28)),
AND(MOD($A3,7)=1,AND(MONTH($A3)=12,DAY($A3)>=30)),
AND(MOD($A3,7)=1,AND(MONTH($A3)=1,DAY($A3)<=5))
)
上記を休業日として入力規則に入力しようとしましたが、
長過ぎて入らないようなので、GW・年末年始休業の部分を、
必要な該当月ごとに書き換えてみましたが、うまくいきませんでした。
ちなみに、その逆が営業日であるので、条件付き書式の数式に、
=AND(
COUNTIF($V$2:$W$33,$A3)=0,
MOD($A3,7)<>0,
AND(COUNTIF($V$2:$W$33,$A3)<>0,MOD($A3,7)=1),
OR(MOD($A3,7)<>1,OR(MONTH($A3)<>12,DAY($A3)<30))
)
と入力し、確認しましたが、やはりダメでした。
(ちなみに、「祝日かつ日曜日」があり「年末年始休業日」もある
2012年12月に設定を入力しながら結果を確認していました。)
いろいろ試行錯誤した結果、一つ一つはどうやら正しいので、
組み合わせたときに、「祝日かつ日曜日」と「祝日でない」が
同居しているのが悪いと思うのですが、何か解決策はないでしょうか?
長い文章になってしまい恐縮ですが、ご教授お願い致します。
お礼
こんばんは。 早々にご回答ありがとうございます。 >わざわざ大の月小の月で選べるようにするまでも無いと判断します。 ご指摘の通りです。 難しく考え過ぎていたようです。スッキリしました。 遅い時間にもかかわらず、本当にありがとうございました。 明日、作業が捗りそうです。m(_ _)m