関数の組み合わせ活用

Excel関数組合せ_スケジュール表作成 ~DATE、WEEKDAY、TEXT~

関数の組み合わせ活用
スポンサーリンク

Excelシート上で使える、複数の関数を組み合わせた特殊な使い方を説明。
今回は YEAR、MONTH、DAY、TEXT、NOT、AND を組み合わせ、
タスク管理をするためのスケジュール表の作り方を紹介

【本記事の目標】

YEAR、MONTH、DAY、TEXT、NOT、ANDを使って
タスク管理用のスケジュール表を作ろう

 



今回組み合わせる関数は下記でも説明していますので、ご参考ください。

タスク管理用のスケジュール表とは

今回作ろうと思っているのは、下記図のような
業務のタスクごとに進捗状況や期限を確認する、ガントチャート形式のスケジュール表です。

以前、下記で説明したような一般的なカレンダーとは異なる表現のものになります。

このタスク管理用のスケジュール表は、単純な日付・曜日・祝祭日による塗分けだけでなく、各タスクの開始・終了に合わせて所定の日付を塗分ける、といったことが必要になるため、一般的なカレンダーよりも作成が少し複雑になります

ただし、一度フォーマットさえ作ってしまえば、あとはそのフォーマットを使って何度でも、いくらでも使いまわしが可能ですので、少し大変でも作っておいて損はないと思います。

 



タスク管理用スケジュール表の作り方

基本的な書式の設定

まずは基本的な書式の設定をしていきます。
今回は上記の図をベースに説明していきますので、上記の書式の設定を細かく記載しておきます。
ただこれに関しては各々の好みもありますので、自由に設定していただいて大丈夫です。

■フォント等の設定

■任意入力のセル

 



関数の入力

このスケジュール表の中で、関数を入力している部分は上部の日付の部分(枠の部分)だけです。

行ごとに入力している関数は異なりますが、行の中では全て同じ関数が入力されていますので、
H列に下記5種類の関数を入力し、左にコピーしていただけたらOKです。

1行目:基準の日付のシリアル値入れ

1行目には表示の基準となる日付を入力します。
ここだけ唯一、H列とI列以降で入力する関数が異なります。
とはいえ記載している内容は非常に単純で、
  H1セル:=E2
  I1セル以降:=H1+1

というように、H2セルには『スケジュール表示開始日』に記載の日付を表示し、
それより左はその日付+1をしているだけです。

2行目:シリアル値から『年』を取り出し

2行目、3行目が少し複雑になっています。
2行目~4行目では、1行目に記載した日付から『年』『月』『日』を取り出します。
2行目は『年』を取り出しますので、関数としては
  =YEAR(H1)
となります。
ただ、このままだと2行目の全てに「2023」という値が表示されるので、ちょっと見づらいですよね。
そこで、下記のように記載することで『年』が変わった直後だけその年を表示するようにしています。

 =IF(YEAR(H1)=YEAR(G1),””,YEAR(H1))

ここでは、1つ前の日付を確認し、『年』が同じであれば空欄にしておき、
『年』が異なったときだけその『年』を表示するようにしています。

3行目:シリアル値から『月』を取り出し

上記と同じ流れで、3行目は『月』を取り出しますので、関数としては
  =MONTH(H1)
となります。
『年』と同じように、同じ『月』が表示されるとちょっと見づらいので、
下記のように記載し、『月』が変わった直後だけその月を表示するようにしています。

  =IF(MONTH(H1)=MONTH(G1),””,MONTH(H1))

4行目:シリアル値から『日』を取り出し

上記と同じ流れで、4行目は『日』を取り出しますので、関数としては
  =DAY(H1)
となります。
『日』に関しては1日ごとに変わるので、このままです。

5行目:シリアル値から『曜日』を取り出し

ここではシリアル値から曜日データを取り出して表示させます。
今回はTEXT関数を使って曜日を表示させます。

  =TEXT(H1,”aaa”)

この関数の書き方・使い方は下記でも記載していますので、ご参考ください。

上記でExcelシートに入力する関数は終了です。
関数自体は意外と単純ですよね。
ただ、問題は条件付き書式の設定です。

 



条件付き書式の設定

このタスク管理スケジュール表では、条件付き書式の設定が非常に複雑で、関数も駆使して条件設定をしていきます。
細かく説明していますので、1つずつ確認していきましょう。

 



① 土日祝だけ全体を塗りつぶし

カレンダーの場合と同じように、土日祝の日付が分かるように該当の日付で塗りつぶしをする設定をします。

全ての行に反映されるように設定するため、H列~任意の列(スケジュールの端)までを選択した状態で
 ホームタブ ⇒ 条件付き書式 ⇒ 新しいルール
をクリック。
「数式を使用して、書式設定するセルを決定」を選択し、下記関数を入力する

 土曜日を塗りつぶす場合: =H$5=”土”
 日曜日を塗りつぶす場合: =H$5=”日”
 祝日を塗りつぶす場合: =NOT(ISERROR(MATCH(H$1,祝日!$B:$B,0)))

 



祝日の塗りつぶしに使用している下記関数は3段階に分かれています。
=NOT(ISERROR(MATCH(H$1,祝日!$B:$B,0)))

1.MATCH関数:1行目の日付が、祝日シートのリストにある日付かどうかを確認
         あると数値を表示して、無いとエラーが表示される。
2.ISERROR関数:MATCH関数でエラーが出たかどうか確認。
          エラーだと【TRUE】、エラーじゃないと【FALSE】
3.NOT関数【TRUE】を【FALSE】に、【FALSE】を【TRUE】に変換する。
        その結果、MATCH関数でエラーが出たら【FALSE】、出ないと【TRUE】
        【TRUE】になったポイントだけで書式設定されるため、
        MATCH関数でエラーが出ない=祝日シートのリストにある=祝日

これで、『祝日シートのリストに合致する日付でのみ書式設定』ができるようになります。

祝日に関しては、祝日のリストを別シート(シート名:「祝日」)を準備しておく必要があります。祝日のリストに関しては、下記でも説明していますので、そちらもご参考ください。

 ↓『祝日』シートの中身

塗りつぶしの書式設定に関しては、各々の好みでOKです。
今回は、
 土日:グレー
 祝日:薄い赤

で設定しています。

 



② 年、月が表示されているセルだけ塗りつぶし

2行目、3行目に表示している『年』と『月』は、それぞれが切り替わったタイミングでだけ表示されるような関数が入力されています。
そのため、どこで『年』や『月』が切り替わったかが分かりやすくなるように、文字を表示させるだけでなく塗りつぶしも設定してしまいたいと思います。

2行目のH列~任意の列(スケジュールの端)までを選択した状態で、
 ホームタブ ⇒ 条件付き書式 ⇒ 新しいルール
をクリック。
「指定の値を含むセルだけを書式設定」を選択し、
「次のセルのみを書式設定」⇒【空白なし】

を選択し、任意の書式を設定する。

上記と同じ作業を3行目でも実施する。

塗りつぶしの書式設定に関しては、各々の好みでOKです。
今回は、
 2行目:青塗りつぶし+白文字
 3行目:水色塗りつぶし

で設定しています。

 



③ タスクの開始・終了に合わせて塗りつぶし

タスク管理の一番肝になる部分です。
B・C列、D・E列、F列に記入した任意の日程に対して、
その日程の部分を塗りつぶして表示させます。

塗りつぶしを行う部分を選択(H6から、任意の列・任意の行を選択)した状態で、
 ホームタブ ⇒ 条件付き書式 ⇒ 新しいルール
をクリック。
「数式を使用して、書式設定するセルを決定」を選択し、下記関数を入力する

  B・C列の日程: =AND(H$1>=$B6,H$1<=$C6)
  D・E列の日程: =AND(H$1>=$D6,H$1<=$E6)
  F列の日程: =H$1=$F6

B・C列、D・E列に使用している下記関数は複数の判定条件をAND関数で繋げただけです。
  B・C列の日程: =AND(H$1>=$B6,H$1<=$C6)
  D・E列の日程: =AND(H$1>=$D6,H$1<=$E6)


AND関数:複数の条件式を繋げて、全てが【TRUE】の時は【TRUE】を、
       1つでも【FALSE】の場合は【FALSE】を表示

これで、所定の開始・終了の範囲だけ塗りつぶしを設定できるようになります。

塗りつぶしの書式設定に関しては、各々の好みでOKです。
今回は、
 B・C列の日程:黄色
 D・E列の日程:オレンジ

 F列の日程:赤
で設定しています。

全ての条件付き書式設定の一覧

全てのセルを選択した状態で、
 ホームタブ ⇒ 条件付き書式 ⇒ ルールの管理
をクリック。

上記手順でこのシートに設定してある全ての条件付き書式設定が表示され、
どの範囲に設定してあって、どんな関数を使っていて、どんな書式が設定されているか、
が一目でわかるようになっています。

今回の設定の場合、下記のような状態になります。

 



タスク管理用スケジュール表の使い方

上記までで、タスク管理用スケジュール表は完成です。
あとはこれの任意の値を入力できる場所に、タスクの日程やタスクの内容等を記入していけば、
自由にタスク管理ができるようになります。

任意の値を入力できる場所は大きく2か所あります。

スケジュール表の開始の日付を入力

このスケジュール表では、日付を毎回書き換えるのではなく、開始の日程だけ入力すれば他の日程は自動で計算して表示するようになっています。
そのスケジュール表の開始の日程を入力するのが下記部分です。

任意の日程を都度入力する、というのでも良いと思いますが、
自動でスケジュールを書き換えるように設定していますので、このセルに
  =TODAY()
という関数を入力してあげれば、ファイルを開いたその日が常に一番左になる来るようにさせることもできます。

各タスクの名前、対応の開始・終了日程、締め切り日程

下記図の部分が任意に記入が可能な部分です。
ここを入力・修正していただければ、
その日程に合わせてスケジュールの部分が自動的に変化してきます。

これで『タスク管理用スケジュール表』の完成です!

コメント

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