土日、大安のタスク バーの色を変えるには

あるお客様から「土日、大安のタスク バーの色を変えるには」とのご質問を受けました。

基本的には、条件付き書式設定機能 (Conditional Formatting)を用いてタスクバーの色をガントビュー、カレンダービューで変更していくことになりますが、バーの色の指定の仕方をご存じない方は、この解説記事でタスクバーの色を条件で設定する方法を覚えてください。

なお、ここでは、土日、大安が条件なので、関数を用いて、土日、大安を判定する方法も説明します。

https://app.smartsheet.com/b/publish?EQBCT=d99a9f5669f0416fab1de7a26504fd26

条件付き書式でのタスクバーの色の指定の仕方

下は条件付き書式の条件設定画面ですが、
第一に、下の方の「タスクバー」(Task Bar)をクリックし、指定した条件の時に表示したい色を選択し
第二に、表示対象をすべての行 (entire row)と指定します。

これにより、右に少し見えていますが、土日などが指定の色のタスクバーで表示されます。

タスクバーの色指定

こちらのビデオの9分過ぎぐらいに解説がありますので、そちらもご覧ください。

土日の判定

WEEKDAY()関数

土日の判定は、まず下のような式で、WEEKDAY( ) 関数を用いて、日付列からWEEK番号を取得します。
(この場合、日付列としては開始日(Start)が使われています。

=WEEKDAY(Start@row)

次に、下のようにタスク名に曜日もつけて表示できるように、曜日を準備します。

曜日付きタスク名

なお、曜日付きタスク名は右下のような式で作ります。

タスクバーの右横に表示する項目として指定

タスクバーに上で作った曜日付きタスク名(実際は大安表示もあるので、Task曜大という列名となっています。)を表示するには、プロジェクトの設定からディスプレイラベルで、その列を指定します。

曜日番号の曜日への変換


INDEX( ) & MATCH( ) または VLOOKUP( ) の関数で、別に用意した下のような表を基に、WEEK番号を曜日に変換します。

Week number to day of the week

=INDEX({曜日}, MATCH(Weekday@row, {Weekday Number}, 0), 1)

上の式ではINDEX( )関数で、「Weekday to Day of Week というシート」の曜日の列を{{曜日}}として参照して、MATCH( )関数で、上で計算したWEEK番号を基準に、先ほどの、「Weekday to Day of Week というシート」のWeekdayの列を参照する{{Weekday Number}}により、対応する行数を取得し、INDEX()関数でどの行の曜日を持ってくるかを指定しています。

大安の判定および大安の列への大安の表示

大安は商売などで縁起の良い日されており、ご質問をいただいたお客様でも、高額な商品を納入する場合など、大安を選ぶそうです。
大安は中国を起源とする「六曜」という旧暦に6日ごとに出現します。したがって、ある過去の大安を基準日として(調べたい日-基準日)を6で割った余りが0の日が大安と判定されます。

色々なやり方があるかと思いますが、ここではSheet Summary に今年最初の仏滅(仏滅の次の日が大安)の日を記録し、NETDAYS( )関数でその日から開始日までに何日あるか計算し六曜(番号)を取得し、その結果を6で割って余りにより(この場合は1)により、大安を判定しています。
(ここでは表を作るほどでもないので、=IF(六曜@row = 1, “大安”, “”) で大安を表示しています。)

まとめ

今回、お客様からの質問により、カントチャートやカレンダーに曜日や大安等を表示するニーズがビジネス上高いことが理解できました。
Smartsheetの技術としては、条件付き書式、その中でも、タスクバーの色の指定、更には、WEEKDAY( ) 関数等を使って曜日や大安の日を求める、という内容でした。
最初、開始日をDAY( )関数で月のどの日かを求めMOD( )により6の余りを求めて判定すればよいと思っておりましたが、六曜の理解が不十分で、上記のような方法を取りました。
なお、元旦の1から大晦日の365までを返すYEARDAY( 日付 )という関数を用いる方法もあったかと思います。

コメントを残す