スプレッドシートでスケジュール管理表の土日に条件付き書式で色を付けて見やすくする方法


スケジュール表

最近は新しいタブレット端末が欲しくてたまらない古屋です。

今は据え置き型と2in1タブレット(共にWindows機)両方使っていますが、Windows10の大型アップデートである、Anniversary Updateがありましたよね?

それで、生体認証やスタイラスペンの機能強化がされましたので使ってみたくなった次第でございます。

Explore Windows 10 New Updates & Features | See What Windows 10 is Like
Discover what’s new and see what Windows 10 is like! Explore Windows 10 new updates and features including productivity tools, Bluetooth and WiFi file transferr...

さて、本題に入りますがエクセルやスプレッドシートでスケジュール管理されている方を見かけますが、土日の欄を青や赤で毎月塗り直すのが手間ではありませんか?日付と曜日も毎月面倒ですね。

今回はその手順を、スプレッドシートで自動化してみたいと思います。スプレッドシートならグループワークに大変役立つ、クラウド共有が簡単にできるからです。いつでもどこでも、アクセス可能なのはうれしいですよね。

難しいコードは使いません。日付と曜日に関する関数条件付き書式を使った簡単な方法でご案内いたします。

毎月の日付と曜日を自動表示

下記リンク内でも日付・曜日の自動化は紹介しましたが、今回は別の方法でご案内しますので見比べてみてください。

【スプレッドシート初心者向け】定番関数と表示形式で手入力しないで日付と曜日を出力
スプレッドシートで、日付と曜日を手入力せずに関数と表示形式を使って簡単にそしてクールに出力する方法です。定番関数の数々、日付や曜日などの取り扱いなど初心者には絶好のテクニックを散りばめました。

日付表示の自動化

ここで使う関数は以下の2つ。

  • DATE関数
  • EOMONTH関数

まずはDATE関数から説明します。A3のセルには年と月を参照して、1日を表示する関数が入力してあります。

DATE関数1

=DATE($C$1,$D$1,1)
C1=2016年  D1=8月  最後に2016年8月1日の1を指定

こうすることで、のちの曜日自動表示に使える数字になる訳です。ただ単に1日と書いても、コンピュータはいつなのか分からないからです。

 

次はEOMONTH関数(エンドオブマンス)です。あまり聞きなれない関数ですね。

月によって月末の数字が変動するので、1月31日、2月29日(うるう年)、4月30日などが対象です。

EOMONTH関数1

EOMONTH関数は、指定された月の末日を導き出す関数です。A3のあとの「0」はA3セルの月の末日という意味です。従って

=IF(A30=EOMONTH($A$3,0),””,A30+1)
A30の日付が当月末なら空白を返す。そうでなければ、A30にプラス1日する

という事になるので、これで2月がうるう年でもうるう年じゃなくてもエラーが出ないようになります。

EOMONTH関数2

A32のセルは、OR関数を使ってA31が空白や月末の場合でもエラー回避できるようになっているので、月末対策完了!となります。

曜日表示の自動化

曜日はもっと簡単で、TEXT関数のみで完結します。

TEXT関数1

 

=TEXT($A3,”ddd”)
A3のセルの日付の曜日を「月曜日」ではなく「月」で表示する

この様に関数を書いたら、あとはフィル機能を使って31日のセルまでコピーして終了です。曜日の自動化は恐ろしく簡単なんですね。

これで、日付と曜日が指定の年月に追従して表示されるようになりましたので、次は本題の本題。条件付き書式で土日に色付けをしていきます。

条件付き書式で土日のセルに色を付ける

2016-08-08_22h05_58

=IF($A3=””,””,WEEKDAY($A3)=7)
A3の曜日の返し値が7ならば(Trueならば)条件付き書式を実行する

この様に、関数を読み取ります。

WEEKDAY関数は、曜日の情報を数字で表示する関数です。なので今回の場合だと、7という数字が表示されるので結果として「7=土曜日」になります。

IF関数は日付欄が空白の時は塗りつぶしを行わないようにするためです。

この作業だけで曜日が移動しても、赤や青の塗りつぶしが「土日」を追いかけるようになります。

基礎知識:WEEKDAY関数

=WEEKDAY(A3,1)
A3セルの日付からType1の曜日情報を数字で表示する

今回の場合ですと、A3にはDATE関数で2016年8月1日というデータが入っています。

ですから、下の表を参照すると2016年8月1日は月曜日ですので「2」が表示されます。下の表はtype1。

1:日曜日 2:月曜日 3:火曜日 4:水曜日 5:木曜日 6:金曜日 7:土曜日

曜日は、スプレッドシート内部で数字に置換されます。通常は曜日に割り当てる数字をどうするかを指定できるのですが、1の場合は省略することが出来ます。

省略すると

=WEEKDAY(A3)

となり、さっぱりしますね!

Typeは好みで選んだり、式を作っていてTrueとなる値に不都合があればTypeを変えて回避するといった使い方でいいと思います。

  • Typeが1は、曜日を日曜日から数えて日曜日の値を1とするため、土曜日の値は7
  • Typeが2は、曜日を月曜日から数えて月曜日の値を1とするため、日曜日の値は7
  • Typeが3は、曜日を月曜日から数えて月曜日の値を0とするため、日曜日の値は6

エクセルではなくスプレッドシートで作る意味

正直な話し、エクセルの方がもっとスマートにキレイにできると思います。スプレッドシートでは使えない関数もいくつかあります。

しかし、スプレッドシートが真価を発揮するのは別のところです。

それは、クラウド上に保存するためインターネットが使えればどこにいても作成・編集ができることです。そういった自由度ではスプレッドシートに軍配があがります。

2016-08-08_22h15_07

シート右上に共有ボタンがあり、閲覧者に編集の権限を渡すことができます。

この共有ボタンから閲覧のみや編集可能という権限の設定ができます。また、ログインという面倒な設定を排除し、誰でもスプレッドシートに直接飛び編集できるようになるなど素晴らしい機能があります。

ですので、多くのサラリーマン達からプロジェクトチーム全員でリアルタイムに閲覧・編集して作業をスムーズにするという使い方が好まれています。

わざわざ、ファイルを送信しなくていいというのがエクセルとの使い分けポイントでしょう。

まとめ

今回は、スプレッドシートでスケジュール管理表の土日に条件付き書式で色を付けて見やすくする方法と銘打って進めていきました。

どんなに使いにくい手帳でも、色分けによって瞬時に見分けを付けることが可能になると思います。それを体現できました。

  • DATE関数
  • TEXT関数
  • IF関数
  • EOMONTH関数
  • OR関数

と、たくさん使ってきましたがこれらは比較的使用頻度が高いのでしっかりマスターしておくと、今後の仕事がスムーズになります。ぜひ、この記事を参考にして今後のワークに役立ててください。

  投稿者プロフィール

タカハシノリアキ株式会社プランノーツ 代表取締役
株式会社プランノーツ代表、コミュニティ「ノンプロ研」主宰。1976年こどもの日生まれ。東京板橋区在住。「ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ
★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ
★フォロー頂ければ嬉しいです。

コメント

タイトルとURLをコピーしました