条件付き書式に手動の塗りつぶしを優先する方法 Excel(エクセル)

条件書式上書き エクセル関数
条件書式上書き
記事内に広告が含まれています。

条件付き書式は指定した条件で自動的に塗りつぶしや書式を変更してくれる非常に便利な機能です。しかし、手動による塗りつぶしをしようとすると条件付き書式の方が優先されてしまい、困った経験がある方は多いのではないでしょうか。

今回は条件付き書式を使いながら手動による塗りつぶしも使えるようにする裏技をご紹介いたします。

結論

下記のように元の条件式を赤字の関数で囲むことで何か文字を打つと条件付き書式より手動の塗りつぶしが優先されるようになります。

=AND(元の条件式,条件セル=””)

以下に具体例をご紹介します。

手動の塗りつぶしより条件付き書式の方が優先されてしまう

先ほどの図をもう一度確認してみましょう。

「B列」に日付が入力されており、「Aさん、Bさん、Cさん、Dさん」それぞれの出勤日を入力してあります。

「土曜と日曜」の行は条件付き書式によって自動的にグレーになるように設定してあり、出勤日を手動で黄色に塗りつぶしています。

平日の行は問題なく塗りつぶしができていますが、土日に出勤日が来ると条件付き書式のグレーが優先されてしまい、グレー以外の色に塗りつぶすことができません。でも「Bさん」の土日出勤日も何とか黄色に塗りつぶす方法は無いのでしょうか。

条件付き書式に複数条件を付ければ可能

実は条件の数式を複数条件にすることによってこれが可能になります。

まず基本となる条件付き書式の設定をしてみます。

上で紹介した図の書式を設定する前のものを下図のように用意しました。

条件を設定したい範囲全体(今回の場合はC3セルからF35セル)を選択した状態で「ホーム」タブの「条件付き書式」から「新しいルール」をクリックします。

表示されたメニューから「数式を使用して、書式設定するセルを決定」を選択し、下の入力欄をクリックします。

入力欄に下記の条件式を入力します。

=WEEKDAY($B3,2)>=6

ちなみにこの「WEEKDAY関数」は指定したセルの日付の曜日を数字で返してくれる関数です。上記の例ですと、B3セルの日付が月曜日なら「1」、火曜日なら「2」と順に大きくなり土曜日なら「6」、日曜日なら「7」を返します。つまりこの関数の結果が6以上とすることで「土曜か日曜の場合」を指定させています。

関数を入力しましたら、次に「書式」ボタンをクリックしてください。

「塗りつぶし」タブの中からグレーを選択して「OK」ボタンをクリックしてください。

※色はお好みで構いません。

数式入力画面に戻ってきますので、数式と書式が設定されていることを確認し「OK」ボタンをクリックしてください。

これで土日の行がグレーに塗りつぶされました。

次に「出勤」と書かれたセルをすべて選択して手動で黄色に塗りつぶしてみると、下図のようになりました。土日もちゃんと選択して塗りつぶしをしているのですが、条件付き書式のグレーが優先されて黄色に塗りつぶすことができませんでした。

そこで条件付き書式の数式を変更してみます。

今回条件を設定した範囲の中でどこでもいいのでセルを選択した状態で、「ホーム」タブの「条件付き書式」から「ルールの管理」をクリックしてください。

すると先ほど作成したルールが表示されますので変更したいルールをダブルクリックしてください。

すると先ほど条件の数式を入力した画面が表示されますので、数式を以下のように変更して「OK」ボタンを押します。冒頭で紹介した数式で囲んでいます。ここでは指定セルを「C3」としていますが、これは条件付き書式を適用している一番左上のセルが「C3」なのでこのようにしています。

=AND(WEEKDAY($B3,2)>=6,C3="")

グレーに塗りつぶす条件に「日付が土日かつ、セルが空欄」という条件を追加しました。

すべて表示されていませんが数式が変更されたことを確認し、「OK」ボタンをクリックしてください。

以上の操作で下図のように土日でも出勤日の塗りつぶしが優先して表示されました。

まとめ

条件付き書式の条件を「AND関数」を使って複数条件にすることによって条件付き書式を無効かし、手動による条件を優先表示させることができました。

今回は「空欄であること」を条件に追加したので、文字が入力されていなければ下図のように条件付き書式のグレーが優先表示されてしまいます。

もし文字を表示したくない場合は文字の代わりに「␣」スペースを入力することでも同じように条件付き書式を無効化することができます。

今回紹介した条件とは違う表現をしたい場合もあると思います。

今回は「AND関数」で空白だったらという条件を追加しましたが、「OR関数」にしたり逆に「文字が入力されたら」という条件にしたりいろいろ工夫することで表現したい条件を探してみてください。

もし「こんな表現したいんだけどうまくいかない」という場合はぜひコメントで教えてください。その表現の仕方もご紹介いたします。

コメント

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