2020年5月19日 (火)

[パソコン講座] エクセルで曜日の自動表示と色分け(1)

生活と学習の記録の曜日や土日祝の色分けは、手作業でおこなっていたのですが、これを自動化してみたいと思います。色分けは、白黒印刷で使うので、ここでは土日祝の色の区別をしません。
screenshot_jt353.png
最初にセルA1からA3まで、「年・月・日」と文字で入れます。
セルA2とB2には、年・月を数字で入れます。
セルC4から下向きに、1から連続した数字を31までオートフィルで入力します。
screenshot_jt354.png
セルD4には、「=DATE($A$2,$B$2,C4)」という数式を入れます。日付が表示されますが、エクセル内部では、1900年1月1日からの通算日数の数字になっています。

セルE3に「週末」と文字で入れます。
セルE4に「=MAX(WEEKDAY(D4,2)-5,)」という数式を入れます。この数式により、月曜日から金曜日までは0、土曜日は1、日曜日は2となるのですが、あとで、0より大きければ色を付けるという処理をします。

セルE4の数式を詳しく説明すると、
「WEEKDAY(D4)」で、日付を曜日の通し番号を返します。しかし、日曜日が1、月曜日が2、土曜日が7という通し番号になり、土日がつながりません。そこで「WEEKDAY(D4,2)」とすることで、月曜日が1、火曜日が2、土曜日が6、日曜日が7と、土日を最後に持っていくことができます。

「WEEKDAY(D4,2)-5」と5を引き算することで、月曜日が-4、火曜日が-3、水曜日が-2、木曜日が-1、金曜日が0、土曜日が1、日曜日が2となります。

「=MAX(WEEKDAY(D4,2)-5,)」では、MAX関数を使うことで、最大値を求めます。ただし、最後のカッコの手前にカンマを入れることで、マイナス値は0の扱いになります。つまり、月曜日から金曜日までは0、土曜日は1、日曜日は2となります。

「=IF((WEEKDAY(D4,2)>5,1,0)」とすることもできますが、条件分岐はパフォーマンスが落ちるので、できるだけ使わないようにしています。

コメントする

メールアドレス

検索

サイト情報


since March 29, 2013
See also 札幌市立東月寒中学校 札幌市立西岡北中学校 札幌市立米里中学校