見出し画像

[EXCEL] 日程表作成レッスン3 土日に色を付ける(土日同色)

目次 > 入力 > 日付
関連記事:日付と時間条件付き書式

【まとめ】
こんな日程表を作ってみます。1年分がシートになっています。


主な特徴(使用と作成内容がごっちゃです)
1 各日3行。ただし、日付表示は冒頭行だけ。
2 日付・曜日は自動表示
3 土日に色付け(土日同色。日付欄以外にも色付け)・・・今回はここ
4 閉庁日(祝日等)に色付け(土日とは異色)
  *事前に閉庁日リストを作成
5 1年分の枠を一気に作成
6 週番号を表示
7 開始と終了時間の欄を作る

*必ずしも上の順番である必要はないが、上の順番だと手戻りが少ない(はず)。

【説明】
過去記事で、日程表の作り方について順次掲載していくといいましたが、その第3回です。

前回までで作成したのがこんな表です。

・左上の日付を変えると、右の曜日、翌日の日付と曜日が自動で変わる。
・各日3行あり、下の2行にも1行目と同じ日付が履いている(非表示)。

今回は、土日に色を付ける、です。

これは「条件付き書式レッスン(マガジン)」の「⑥ 土日に色を付ける(日付以外の欄にも)」で既に書いていますが、今回バージョンということで。

① 以下の通り範囲選択する。
項目以外、範囲指定します。

② Alt ⇒ H ⇒ L ⇒ N で「新しい書式ルール」を開く。
③「数式を使用して、書式設定をするセルを決定」を選ぶ

④下の欄に次の数式を入れる。
=weekday($B3,2)>5  *入力は小文字で可
*「$B3」は、列(B)にだけ「$」(絶対参照)を付ける。
=weekday( の後にB3セルをクリックすると、
=weekday($B$3 となるので、F4キーを2回押して
=weekday($B3 にする。

「=WEEKDAY($3,2)>5 の意味
セルB3の曜日が土曜日・日曜日である(なら条件合致)
=WEEKDAY(セル,2)で曜日を取り出します。月曜は1,火曜は2・・・土曜が6,日曜は7です。

なお、=WEEKDAY(セル,2)の「2」がない =WEEKDAY(セル)の場合(あるいは=WEEKDAY(セル,1)の場合)、日曜始まりになり、日曜が1、月曜が2・・・土曜が6となります。
この場合、土日を一遍に指定できません(1か6という手もありますが)。
そのため、月曜始まりにして、土日を一遍に指定しています。
個人的に月曜始まりが好きですし、そもそも、ISO 8601 では月曜が1なのですが、エクセルは日曜が1になっています。理由は、アメリカの習慣だから、と思っていたのですが、ロータス1-2-3がそうなっていたから、みたいです。


なぜエクセルでは日曜が1なのか?
Excelで WEEKDAY(セル, 1) を使うと日曜日が「1」になるのは、歴史的な設計ミスと互換性のためです。実は、Excelの内部で使われている「シリアル値」の起点である 1900年1月1日 が、本当は月曜日だったにもかかわらず、Excelでは日曜日として扱われてしまったのです。
🕰️ 背景にある理由
Excelの起源はLotus 1-2-3との互換性 Excelは初期の表計算ソフト「Lotus 1-2-3」と互換性を保つため、1900年をうるう年と誤認するなど、いくつかの設計上の妥協をしました。
その結果、シリアル値1(1900年1月1日)が日曜日と誤って認識される 本来は月曜日なのに、Excelでは日曜日として扱われるため、WEEKDAY(セル, 1) の戻り値は「日曜=1、土曜=7」となりました。
🤔 なぜ修正されないのか?
既存のExcelファイルとの互換性維持が最優先 世界中で使われているExcelのファイルやマクロがこの仕様に依存しているため、修正すると膨大な影響が出る可能性があります。
つまり、Excelで日曜が「1」なのは、技術的な正しさよりも、過去との互換性を重視した結果なんです。 ちょっとしたバグが、世界中の表計算文化に影響を与えているって、面白いですよね。
www.waenavi.com

Copilot
ただし、元ネタは

www.waenavi.com


話が脱線しました(こういうネタ、好きですが)。

⑤「書式」で「塗りつぶし」で好みの色(ここでは黄色)を選ぶ。

⑥ 「OK」を押して「プレビュー」で「塗りつぶし」の色が反映されていればOK。ダメならやり直し。

⑦再度「OK」
⑧ 土日の日付の欄全体に色が付いていることを確認する。
といっても、下の例だと、2日のいずれも土日ではありません。

これでは、土日に色が付く設定になっているのか分かりません。
そこで、4/1(火)の代わりに、9/7(日)を入れてみます。
*日付は、土日ならいつでも構いません。「今日」が土日いずれかなら、Ctrl+; で一瞬で入ります。
すると・・・

9/7(日)には色が付いて、9/8(月)には色が付きません。
他の日でも試してみます。
9/7(日)を9/14(日)にしてみると・・・

問題なく9/14(日)にも色が付きます。
しかし・・・
そう、9/15(月)は祝日(敬老の日)です。
この日は閉庁日ですので、ここにも色付けが必要ですが、その方法は次回で。

★おまけ★
上の例では、土日ともに同じ色にしました。
土曜日と日曜日を違う色にしたい場合は、
「条件付き書式」を2つ作ります。
数式は以下の通りです。
=WEEDAY($B3,2)=6  又は =WEEDAY($B3)=7 (土曜日の場合) 
=WEEDAY($B3,2)=7 又は =WEEDAY($B3)=1(日曜日の場合)
前者は月曜始まり、後者は日曜始まりです。

条件付き書式を2つ作り、塗りつぶし色は違うものを選んで設定します。
ただし、この設定、あまりお勧めしません。
理由1 土曜も日曜も毎週閉庁日で扱いは同じ。
理由2 2日続けて色が付くので、どちらが土曜か日曜か一目でわかる。
理由3 祝日等の閉庁日にも色を付け、閉庁日は土日と色を変えるため、土曜日と日曜日が色違いだと、閉庁日と合わせて3色になって、見た目にうるさい。
ただし、これは私の感覚ですので、お好みに合わせて設定してください。



いいなと思ったら応援しよう!