下図のように日付が入力されているとします。この中で、土曜日の日付は青色、日曜日の日付は赤色で表示されるようにしてみましょう。これには、条件付き書式を使います。
一般的に、条件付き書式では「セルの値が○以上だったら」のような解説が多いですが、今回は「日付が○曜日だったら」という条件になりますので、何とかして日付が何曜日かを調べなければなりません。これには、いくつかの関数を使えますが、ここではTEXT関数を使います。TEXT関数の詳細については「TEXT関数」を参照してください。また、「曜日を表示する」の最後では、TEXT関数を使ってワークシート上で曜日を判定する方法も解説しています。
まず、条件付き書式を設定したいセル範囲を選択します。ここでは、セルA2:A10です。このとき、アクティブセルの位置が重要です。下図では、セルA2がアクティブセルです。
この状態で、[ホーム]タブ[スタイル]グループの[条件付き書式]ボタンをクリックしてください。続いて、表示されるメニューの[新しいルール]をクリックします。
実行すると[新しい書式ルール]ダイアログボックスが表示されます。[ルールの種類を選択してください]リストで[数式を使用して、書式設定するセルを決定する]を選択します。
[次の数式を満たす場合に値を書式設定]ボックスに「=TEXT(A2,"aaa")="土"」と入力します。ここがポイントなので少し解説します。まず、今回設定している条件付き書式は「セルの中の値が~」ではなく、ユーザーが自由に考えた「数式の結果が~」というタイプです。ですから、まずは数式を入力します。入力する数式は基本的に「○○と××が△△である」という形式にします。たとえば
みたいな感じです。左端の「=」は、"これは数式だよ"の「=」です。セルに数式を入力するとき「=A1+B3」とか「=SUM(A1:A5)」のように、最初(左端)は「=」から始めますよね。それと同じです。そして、この「○○と××が△△である」が正しいとき、次に指定する書式が適用されます。上図で指定した「=TEXT(A2,"aaa")="土"」は、正確に書くと「TEXT関数で変換した結果が"土"である」という意味です。要するに、曜日が"土曜日"かどうかを判定しています。
さて、このように指定する数式で重要なことは、数式内で指定しているセル(ここではA2)には、アクティブセルのアドレスを指定するということです。これは、次のように考えてください。
今回の条件付き書式で指定するような数式を、セルに入力するとします。
まずは、先頭のセルに数式(条件)を入力します。この数式を、条件付き書式を設定したいセル全体にコピーします。
ワークシート上で、このような操作をすると、最初のコピー元セル(ここではセルB2)に入力した数式のうち、相対参照で指定した「A2」が、自動的に変化します。これが、複数のセルに[数式を使用して、書式設定するセルを決定する]で条件付き書式を設定するときのイメージです。このとき、数式の結果が「TRUE」になるセルだけに書式が適用されます。もうお分かりですね。条件付き書式のダイアログボックスに入力する数式とは、ここで言う「先頭のセルに入力する数式」であり「コピー元の数式」です。だから、アクティブセルのアドレスが重要になってくるわけです。
書式はお好みで設定してください。下図は、青っぽい塗りつぶしにしました。
[OK]ボタンをクリックすると、下図の画面が表示されます。
[OK]ボタンをクリックすると、このダイアログボックスを閉じます。[適用]ボタンをクリックすると、ダイアログボックスは閉じずに、設定した条件付き書式を選択範囲に適用します。正しく設定できたかを確認するときに便利です。もし、さらに「日曜も色を変える」という新しい条件付き書式を設定したいのであれば、[新規ルール]ボタンをクリックしてください。
結果は、こんな感じです。
実務では、上記のように「日付が入力されているセルだけ」色を変えるだけでなく、下図のようにしたいことも多いでしょう。
こうなると、チョコッとだけ難易度が上がりますけど、これができると便利なのでがんばってください。まずは、条件付き書式で色を変えたい「セル範囲全体」を選択します。このとき、アクティブセルの位置が重要です。まぁ、普通に選択すれば左上のセルがアクティブセルになると思います。今回でしたら、セルA2です。
上記と同じ手順で[新しい書式ルール]ダイアログボックスを開きます。さて、ここで指定する数式(条件)は、アクティブセルに入力するようなイメージでしたよね。
選択したセル範囲の左上セルに入力した数式(条件)を、選択したセル範囲全体にコピーするイメージを持ってください。
では、先に解説した「1列だけ色を変える」で使ったのと同じ数式を指定したとします。
セルA2の数式を右方向にコピーすると、下図のようになります。
TEXT関数で日付を調べるのですが、その元となる日付は「セルA2」に入力されています。上図のように、数式のコピーによってアドレスが変わっては困ります。なので、最初にセルA2へ入力する数式で、セルA2のアドレスを絶対参照にします。
しかし、これでは下方向へコピーするとき困ったことになります。
A列の、数式をコピーしたすべてのセルで「セルA2」の曜日を判定しています。これは望む結果ではありません。ということは、最初にセルA2へ入力する数式は「右方向にコピーしたとき、列は変わって欲しくない。しかし、下方向にコピーしたとき、行は自動的に変わって欲しい」ということですから、「$A2」のように、列だけ絶対参照にしなければなりません。
もちろん、他のセルにコピーしたときも、すべての数式で「同じ行のA列」を参照しています。
したがって、条件付き書式の条件に指定する数式は、こうなります。
条件付き書式の条件に"数式"を使うときは、その数式がアクティブセルに入力され、アクティブセルに入力された数式が、条件付き書式を適用する別のセルにコピーされるイメージを持ってください。そして、今回のように行方向と列方向にコピーするケースでは、自動的に変化させたくない行や列を絶対参照にします。最初からすべてを頭の中だけで考えるのは難しいですから、上記でやったように、その数式をセルに入力し、実際にコピーして確認するといいです。