- ベストアンサー
エクセルで条件書式と入力規則を使い、カレンダーを作りたい!
仕事でエクセルを使って、 「各営業所における営業日の実績データ」を収集しているのですが、 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月に設定を入力しながら結果を確認していました。) いろいろ試行錯誤した結果、一つ一つはどうやら正しいので、 組み合わせたときに、「祝日かつ日曜日」と「祝日でない」が 同居しているのが悪いと思うのですが、何か解決策はないでしょうか? 長い文章になってしまい恐縮ですが、ご教授お願い致します。
- みんなの回答 (2)
- 専門家の回答
お礼
回答を参考にして無事目的通りできました! これはエクセルの問題というより、国語の問題でしたね(^^; 画像まで付けてご丁寧に回答していただき、ありがとうございました!