Googleスプレッドシートで条件付き書式を使い近日中に迫る日付を強調表示する



はじめに

Googleスプレッドシートのちょっとしたテクニックです.
あんまり技術っぽくないテーマですが,自分が少し行き詰まった点でもあり,ピンポイントな既存解説が存在しなかったので,備忘録として記事に残します.

今日,来年以降に開催される国際会議の日程と important date (各種締切日等) をまとめた表を Google スプレッドシートで作成していました.日付を表示するとき,例えば,締切が迫っているものはセルのバックグラウンドを赤色で強調して,そんなに締切が近くないものは黄色,過ぎ去った日付はグレー等で知らせてくれたらいいなと思いました.「条件付き書式」ですんなりできるかと思ったら意外と苦労して,軽く調べてもなかなか解決しなかったので,ここに記録しておきます.

ちなみに,作成した表はこんなやつです.

emphasize-due_0

ポイント

以下が今回のポイントです.

  1. 条件付き書式を使う
  2. テキストフィールド内で関数を使うときは先頭に “=”
  3. 日付はそのまま大小比較できる(日付専用の比較を用いなくてよい)
  4. 評価される項目は最初に一致した条件

それぞれ簡単に説明します.

条件付き書式を使う

直感的にわかりますが,今回使用するのは条件付き書式機能です.関数やスクリプトではありません.

テキストフィールド内で数式(関数)を使うときは先頭に “=”

設定画面のテキストフィールドで,数字を使用する場合はそのまま入力すればよいことはわかりますが,今回は固定値ではないので本日の日付を表す “today()” を使用します.この場合,テキストフィールドには “=today() + n” と先頭に “=” を付ける必要があります.

日付はそのまま大小比較できる(日付専用の比較を用いなくてよい)

比較方法に,文字列一致と共に大小比較や日付比較の選択肢があります.今回,日付を扱いますが,数値と同様に大小比較することが可能です.「以下」とか選んじゃって大丈夫です.

評価される項目は最初に一致した条件

ちょっと注意しなきゃならないのは,複数の条件を指定したときの一致条件は,最初に一致した条件です.
つまり,
if (条件1) {…;} else if (条件2) {…;} else {…;}
の流れではなく,
if (条件1) {…;} if (条件2) {…;} if (条件3) {…;}
でもなく,
if (条件) {…; break;} if (条件2) {…; break;} if (条件3) {…; break;}
です.

作成してみる

以上をもとに条件付き書式を作ってみます.

各日付の色は次のように定めます.

もう過ぎちゃった日付yyyy-mm-dd (#b7b7b7)
7日前!!!!yyyy-mm-dd (#ff7f7f)
14日前!!yyyy-mm-dd (#ffcc7f)
30日前 (^^)yyyy-mm-dd (#ffff7f)
60日前 (^^)ヨユーyyyy-mm-dd (#7fff7f)

条件付き書式の設定画面を下の図に示します.
下の方切れちゃってますが,
1つ目の条件は「次より小さい」で “=today()” ,つまり過ぎた日付,
2つ目の条件は「以下」で “=today() + 7” ,つまり1週間以内に迫ってる,
以下同様です.

emphasize-due_1

結果,下の図のようになります.図には境界値を表示しています.本日の日付は “2014-11-29” です.

emphasize-due_2

使う機会があれば,お試しください.

おわりに

余裕をもって,原稿を完成させたい.

この記事をシェアする:Tweet about this on Twitter
Twitter
Share on Facebook
Facebook
Email this to someone
email