3/12/2015

Excel。Diary。スケジュール帳。期間の日付を入力するとセルが自動的に塗りつぶすガントチャート


Excel。スケジュール帳。
期間の日付を入力するとセルが自動的に塗りつぶす
ガントチャート

IF関数+条件付き書式+ユーザー定義

今回はスケジュール帳やガントチャートなどを作るときに、
開始日と終了日を入力するとその期間のセルを
自動的に塗りつぶすことが出来たら便利ですよね。

今回はその方法をご紹介したいと思います。
こんなものを作っていきます。

C列の開始日からD列の終了日までを自動的にセルを塗りつぶしてくれるようにする方法を
ご紹介というわけですね。

では、まずフレームを準備しましょう。下記のようなところまで作成しておきます。

E3からはじまる日付ですが、ここには、2015/10/1と入力しておいて、

表示形式のユーザー定義を使って1日と表示するようにしております。

念のため確認しておきましょう。E3をクリックして、
セルの書式設定ダイアログボックスを表示しましょう。

分類をユーザー定義にして、種類を d”日”と入力すれば、日のみを表示することが出来ますね。
ここを1日と入力している訳ではないんですね。

あとは、今回はN3までオートフィルハンドルを使ってコピーしております。

さて、色を付けるために判断が必要となりますので、開始日から終了日の間だったら、1。
そうでなかったら、空白という判断をさせてみたいと思います。

E4をクリックして、IF関数のダイアログボックスを表示しましょう。

まずは、開始日が日付より大きいかを判断させますので、
C4>E3と入力しますが、このあと、縦方向・横方向のそれぞれにオートフィルハンドルを使って
コピーするので、ややこしくなるかもしれませんが、複合参照を設定していきます。

ですから、論理式には、
$C4>E$3
となります。

真の場合には、空白ですから、""と入力します。
偽の場合には、今度は終了日より小さいのかを判断させる必要がでますので、
IF関数をネストでいれていきます。

論理式には、$D4>=E$3
真の場合には、1
偽の場合には、""と入力します。

あとは、OKボタンをクリックして、オートフィルハンドルを使って数式をコピーします。
ちなみに、数式は、
=IF($C4>E$3,"",IF($D4>=E$3,1,""))
ですね。

すると、それぞれの工程の開始日から終了日までの範囲が1と入力されているのが
確認できますね。

今度は、条件付き書式を使って、1だったら、赤色でセルを塗りつぶす設定をしていきます。

E4:N6を範囲選択をして、ホームタブの条件付き書式から、セルの強調表示ルールの中にある、
指定の値に等しいをクリックします。

指定の値に等しいダイアログボックスが表示されてますので、
書式からユーザー設定の書式を選択します。

今度は、セルの書式設定ダイアログボックスが表示されますので、塗りつぶしタブの中から、
赤色を選択しましょう。

OKボタンをクリックすると、先程の指定の値に等しいダイアログボックスに戻りますので、

ここもそのまま、OKボタンをクリックしましょう。
1が表示されているセルのところに赤色の塗りつぶしが設定されましたね。

あとは、1を見えなくすればいいので、表示形式のユーザー定義で処理していきますので、
改めて、E4:N6を範囲選択をして、セルの書式設定ダイアログボックスを表示しましょう。

表示形式タブの分類はユーザー定義で、
種類には、;;;(セミコロンを3個)入力してOKボタンをクリックしてみると。

1が見えなくなりましたね。
これで、開始日と終了日を設定するだけで、
自動的にセルが塗りつぶすことができる事が出来るようになりました。

このように、関数と条件付き書式とユーザー定義の表示形式をミックスすると、
こんなことも出来るようになるですよ。