Googleスプレッドシートでガントチャート作成:開始・終了日付を変えるだけで自動更新

スプレッドシートでガントチャートを作成してみたけれど、タスク期間を変更するたびに手動で修正…。そのような作業が面倒に感じることはありませんか?

Googleスプレッドシートの数式と条件付き書式を活用すれば、開始日や終了日を変えるだけで自動更新されるガントチャートを作成できます。

この記事では、「プロジェクトのタスク」テンプレートを活用し、時間短縮につながるガントチャートの作成方法をご紹介します。

なお、Google Workspaceをお使いの方は、「タイムラインビュー」機能を使ったガントチャート作成方法もあるため、そちらを活用するとより効率的です。

目次

完成イメージ

  • 開始日、終了日を入力するとガントチャートが作成される
  • 各タスクの状態(開始前、処理中、完了)を色分けして一目で把握できる
  • Googleスプレッドシートの「プロジェクトのタスク」テンプレートを活用

使用する数式

日付を自動入力する数式(K1セル)

=IF(COUNTA(E2:E)=0, "", ARRAYFORMULA(MIN(FILTER(E2:E, E2:E<>"")) + SEQUENCE(1, MAX(FILTER(F2:F, F2:F<>"")) - MIN(FILTER(E2:E, E2:E<>"")) + 1, 0)))

タスク期間を表示する数式(K2セル)

=ARRAYFORMULA(IF((($E2:$E<>"") * ($F2:$F<>"")) * (K$1:1 >= $E2:$E) * (K$1:1 <= $F2:$F), $D2:$D, ""))

上記2つの数式と条件付き書式を組み合わせることでガントチャートを作成できます。

少し長い数式ですが、そのままコピー・貼り付けで使用できます。(数式の説明は手順内に記載)

スプレッドシートで動的なガントチャートを作る手順

STEP
「プロジェクトのタスク」テンプレートを呼び出す

Googleスプレッドシートを開き、メニューの「挿入」から「」をクリックします。

その後、画面右に表示される表の中から「プロジェクトのタスク」を選択します。

STEP
データ項目を入力

表のうち、以下の列を入力します。

  • A列:タスク名(任意)
  • D列:ステータス
  • E列:開始日
  • F列:終了日

その他の列は不要であれば、数式入力後に削除しても問題ありません。

STEP
日付を自動生成する数式を入力

K1セルに以下の数式を入力します。

アレイフォーミュラ関数を使用しているため、K1以降の列は自動で日付が表示されます。

日付を自動入力する数式

=IF(COUNTA(E2:E)=0, "", ARRAYFORMULA(MIN(FILTER(E2:E, E2:E<>"")) + SEQUENCE(1, MAX(FILTER(F2:F, F2:F<>"")) - MIN(FILTER(E2:E, E2:E<>"")) + 1, 0)))
数式の説明
IF(COUNTA(E2:E)=0, "", ...)

開始日(E列)が空の場合、日付が表示されないようにしています。

ARRAYFORMULA

数式全体を1つのセルで処理し、日付を動的に生成します。

SEQUENCE

開始日から終了日までの日付を生成します。SEQUENCE(1, 列数) で横方向に日付を展開します。

MIN(FILTER(E2:E, E2:E<>""))

開始日(E列)の中で最も早い日付を取得します。

空白セルを除外するために FILTER 関数を使っています。

MAX(FILTER(F2:F, F2:F<>""))

終了日(F列)の中で最も遅い日付を取得します。

E列の中で最も早い開始日からF列の最も遅い終了日までの日付が自動で横に展開されます。

この数式を使うことで、ガントチャートの土台となる横軸を作成できます。

STEP
ガントチャートを生成

K2セルに以下の数式を入力します。

こちらの数式もアレイフォーミュラ関数を使用しているため、K2以降のセルも自動で数式が適用されます。

タスク期間を横軸に表示する数式

=ARRAYFORMULA(IF((($E2:$E<>"") * ($F2:$F<>"")) * (K$1:1 >= $E2:$E) * (K$1:1 <= $F2:$F), $D2:$D, ""))
数式の説明
ARRAYFORMULA

数式全体を配列として処理することで、複数行のデータを一括で計算します。

手動で複数の数式を入力する必要がなくなります。

$E2:$E<>""$F2:$F<>""

開始日(E列)および終了日(F列)が空白でない行のみ処理を実行します。

これにより、空白の行を無視できます。

(K$1:1 >= $E2:$E) * (K$1:1 <= $F2:$F)

ガントチャートの横軸の日付(K1セル以降)を基準に、以下の条件をチェックします:

  • 日付が開始日以上であること。
  • 日付が終了日以下であること。

この条件を満たす場合にのみ、対応するセルにタスク名を表示します。

$D2:$D

条件を満たしたセルに表示される値。ここでは、ステータス(D列の値)を取得します。

この数式では、該当する期間のセルにステータスが表示されるだけなので、条件付き書式で色付けしてガントチャートにします。

STEP
条件付き書式で色付け

スプレッドシートのメニュー「表示形式」から「条件付き書式」をクリックします。

色分けする範囲

ガントチャートの全体範囲を適用します。

例: K2:CA15

条件付き書式のルール設定

カスタム数式を選択し、それぞれのタスクを色分けします。

  1. 開始前の場合
    • 数式:=k2="開始前"
    • テキストの色:
    • 塗りつぶし:
  2. 処理中の場合
    • 数式:=k2="処理中"
    • テキストの色:黄色
    • 塗りつぶし:黄色
  3. ブロック済みの場合
    • 数式:=k2="ブロック済み"
    • テキストの色:
    • 塗りつぶし:
  4. 完了の場合
    • 数式:=k2="完了"
    • テキストの色:
    • 塗りつぶし:

テキストの色と、塗りつぶしを同じ色にすることで文字が見えなくなり、チャートだけが表示されます。

STEP
完成

E列の開始日、F列の終了日を変更すると、チャートも変更されます。

まとめ

数式と条件付き書式を活用することで、Googleスプレッドシート上で動的なガントチャートを作成できます。

この方法を使用すれば、開始日と終了日を変更するだけでチャートが自動的に更新されるため、手動で修正する手間を省けます。

スプレッドシート上でガントチャートを作成したい時にご活用ください。

なお、複数のプロジェクトを同時に管理したり、より高度な機能が必要な場合には、専用のプロジェクト管理ツール(例:Trello、Asana、Jootoなど)を活用することでより効率的に管理できます。

弊社では、Google Apps Script(GAS)を活用した業務効率化サポートのほか、ITツールの導入支援やIT導入補助金の申請サポートも行っております。

ぜひお気軽にご相談ください。貴方の業務改善を全力でサポートいたします。

お問い合わせはこちら

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次