Googleスプレッドシートを使ってタスク管理表やスケジュール表を作る際に、「あるタスクが完了したら、タスクの行全体をグレーアウトする」、 「スケジュールの土日の列に自動で色をつける」といったことをするには「条件付き書式」で「カスタム数式」を使う方法がオススメです。
この記事では、具体的な5つの例で条件付き書式の設定方法をご紹介します。
なお、条件付き書式やカスタム数式の基本的な使い方については、 Googleスプレッドシートのヘルプサイト をご確認ください。
さまざまな条件で書式を変える
この記事では以下の例を説明します。
- あるタスクが完了したら行全体をグレーアウトする
- タスクのステータスによって色を変える(完了、作業中、未着手)
- 土日の行に自動で色をつける
- 日付から自動で土日と祝日を判別する
- ガントチャートを作る
それぞれに、サンプルへのリンクを掲載しました。閲覧専用ですが、コピーすれば表の内容を編集したり条件付き書式の内容を見られます。
1. あるタスクが完了したら行全体をグレーアウトする
E列の「状態」に「完了」と入力されたら、行全体をグレーの背景色で塗りつぶす、という条件を作成してみましょう。
完成形はこんな形になります。
カスタム数式の設定内容とその意味
「条件付き書式設定ルール」の「セルの書式設定の条件…」で「カスタム数式」を選択し、以下を入力します。
=($E3="完了")
=( )
の部分は、この中身の条件に一致するとき、セルの見た目を変更する、という式です。
条件の中身の$E3="完了"
は、E列に入力されている内容が"完了"と一致したら、という条件です。
$E
は、A列、B列などどの列からもE列の中身を見にいきたいので、E
に$
を付けて列を固定しています。この$
がない場合は、最初の列(A列)から見て4つ右の列の値をチェックすることになり、サンプルの表ではタスクIDの列の色だけが変化します。
3
は、条件付き書式を適用する範囲の最初の行を指定しています。この条件付き書式の範囲はA3からE11で3行目から始まっているので3と書いていますが、たとえば範囲がA2からE11だったら$E2="完了"
と書けば良いわけです。範囲の最初の行と異なる値、たとえば4
と入力すれば、完了となった行の1つ上の行の色が変わります。
サンプル
2. タスクのステータスによって色を変える(完了、作業中、未着手)
1つ前の例の応用です。E列の「状態」に「完了」「作業中」「未着手」など複数の選択肢がある場合に、それぞれに異なる背景色を引いてみます。
カスタム数式の設定内容とその意味
カスタム数式の内容は1つ前のものとほぼ同じです。条件を3つ作り、「完了」の部分を「着手中」や「保留」に変え、それぞれの背景色を設定します。
ちなみに、同じ範囲にほぼ同じ条件を設定したいときは、以下の画像にある「+条件を追加」リンクをクリックすると範囲や条件が同じルールを複製できて便利です。
サンプル
3. 土日の行に自動で色をつける
こちらも前の例の応用で、判定する列と、判定する文字が異なるだけです。B列の文字が「土」か「日」だったらという条件で色を変えています。
結果
カスタム数式の設定内容
=($B3="土")
=($B3="日")
サンプル
ただ、この方法では
- 日付と別に、曜日の列を作る必要がある
- 祝日は手動で色をつけなければいけない
など不便な点もあります。曜日の列は「月」「火」と入力してセルの右下をびーっと引っ張れば済むのですが(オートフィル)、祝日に手動で背景色を設定していくのはなかなか面倒なので、私は普段、このあとご紹介する「4. 日付から自動で曜日や祝日を判別する」の方法を使っています。
4. 日付から自動で土日と祝日を判別する
日付から曜日を自動で計算して色付けします。日本の祝日は、 内閣府のウェブサイト の祝日の一覧を使用します。
スプレッドシートの中に「祝日リスト」という名前のシートを追加して、内閣府のウェブサイトからコピーした祝日一覧の表部分を貼り付けてください。サンプル:祝日リストのようになっていればOKです。
カスタム数式の設定内容とその意味
まずは土日の判定式から見ていきましょう。
土曜日の判定
=(WEEKDAY($A3)=7)
日曜日の判定
=(WEEKDAY($A3)=1)
=( )
の部分はこれまでと同じく、かっこの中の条件に一致したら、です。
WEEKDAY( )
は、かっこの中の日付をみて、曜日を教えてくれる関数です。$A3
の部分はこれまでと同様、A列は固定、選択範囲の最初の行の3、です。
そして、WEEKDAY($A3)
の結果は数字で返ってきます。土曜日だったら7、日曜日だったら1になります。日曜日から順番に
- 1 -> 日
- 2 -> 月
- 3 -> 火
- 4 -> 水
- 5 -> 木
- 6 -> 金
- 7 -> 土
という数字と曜日の対応になっています。
実はここの部分、関数の書き方によって月曜始まりの数字にもできるのですが、本筋から逸れるので、興味のある方は WEEKDAY関数の解説ページ をご覧ください。
続いて、祝日の自動判定を見てみましょう。
祝日の判定
=COUNTIF(INDIRECT("祝日リスト!B2:B"),$A3)>0
=COUNTIF( )>0
は、かっこのなかの条件を数えて、0より大きければ設定した書式を適用します。
=COUNTIF( ★ ,$A3)
は、★で指定した範囲の中に、$A3
と同じものがいくつあるか調べます。
INDIRECT("祝日リスト!B2:B")
は、「祝日リスト」という名前のシートのB2:B
(セルのB2から下全部。日付が入力されている部分)の範囲を指定します。シートの名前と範囲の間に!
があることに注意してください。
ここまでの条件を言葉で表現すると、「祝日リスト」という名前のシートのB2:B
の範囲の中に、$A3
(自分と同じ行のA列)と同じものがいくつあるか数えて、1つ以上あればセルの書式を変えるといった感じです。
条件の優先度
仕上げに、土・日・祝日の3つの条件の優先度を設定し、土曜(日曜)と祝日が重なった場合は祝日の書式にします。
作成したルールにマウスホバーすると、左端に●4つが縦に並んだアイコンが表示されるので、この部分をドラッグ&ドロップして、祝日のルールを一番上に移動します。
上にあるルールの方が優先されるので、これで土日と祝日が重なった場合は祝日の書式が適用されます。
サンプル
5. ガントチャートを作る
ここまでのまとめで、曜日や祝日を自動判定したガントチャートを作成します。列(横方向)の値を判定している点も、これまでの例と異なります。
カスタム数式の設定内容とその意味
祝日の判定
=COUNTIF(INDIRECT("祝日リスト!B2:B"),B$2)>0
「4. 日付から曜日を自動判定して色付け」で使用した祝日リストをこちらでも使用します。
土日の判定
=(WEEKDAY(B$2)=7)
=(WEEKDAY(B$2)=1)
条件を適用する範囲はB3:AE16
(B3から右下まで)で、日付の入力されているセルはB$2
で判定しています。範囲の最初の列B
と、どの行からも2行目をみるので$2
、の意味です。
サンプル
おわりに
今回は、基本的なタスク表やスケジュール表を作るための条件付き書式の使い方をいくつかご紹介しました。
スプレッドシートをはじめGoogle Appsのアプリは進化がとても早いので、今回ご紹介したカスタム数式を使用した方法も、いずれ標準機能としてもっと簡単に実現できる日が来るかもしれません。
UIも頻繁に変更されるので、内容が古くなってきたらできるだけ記事をメンテナンスしていきたいと思います。
最後までお読みいただきありがとうございました。