【VBAリファレンス】【Excel VBA講師が教える】条件付き書式で「数式」を使いこなして、データ分析を劇的に効率化する方法

スポンサーリンク

こんにちは。Excel VBA講師のハルです。

日々の業務でExcelを使っていると、「特定の条件を満たす行全体に色を付けたい」「日付が期限を過ぎたら自動的に警告を出したい」といった要望が出てきますよね。そんな時、皆さんはどのように対応していますか?

多くの初心者は「セルの強調表示ルール」などの標準機能を使いますが、実は「数式」を組み合わせることで、Excelの表現力は飛躍的に向上します。今回は、条件付き書式で「数式」を設定するテクニックを、プロの視点から徹底的に解説します。

なぜ「標準機能」ではなく「数式」を使うべきなのか?

Excelの条件付き書式には、「セルの値が○○以上」といった標準的なルールが用意されています。しかし、これらは「そのセル自体」を判定することに特化しています。

実務で求められるのは、「A列の値が『完了』だったら、A列からD列までの行全体に色を塗る」といった、セル範囲を超えた動的な判定です。これを実現できるのが「数式を使用した条件付き書式」です。数式を使うことで、列の固定(絶対参照)や行の固定(相対参照)を自由に操り、表全体を自在にコントロールできるようになります。

数式を使った条件付き書式の基本ルール

まずは基本のステップを押さえましょう。

1. 適用したい範囲を選択する。
2. 「ホーム」タブ > 「条件付き書式」 > 「新しいルール」を選択。
3. 「数式を使用して、書式設定するセルを決定」を選択。
4. 数式欄に、結果が「TRUE(真)」または「FALSE(偽)」となる数式を入力する。

ここで最も重要なのは「数式の結果がTRUEになった時だけ、書式が適用される」という仕組みです。

【実践テクニック】行全体に色を付ける「固定」の極意

多くの受講生がここでつまずくのが、「相対参照と絶対参照」の使い分けです。行全体に色を付けるためには、列を固定する必要があります。

例えば、A列に「ステータス」があり、完了した行全体をグレーにしたい場合、数式は以下のようになります。

`=$A1=”完了”`

ポイントは「A」の前に「$(ドルマーク)」を付けている点です。これにより、B列やC列を参照する際も、常にA列の判定結果を参照するようになります。逆に、行番号には「$」を付けないことで、下方向のセルへコピーした際に自動的に行番号が変化し、正しく判定が行われます。

【応用編】日付の期限管理を自動化する

期限管理はExcel業務の定番です。例えば、「今日から3日以内に期限が来るもの」を赤くしたい場合、以下の数式を使います。

`=AND($B1-TODAY()>=0, $B1-TODAY()<=3)` ここで使用している`TODAY()`関数は、毎日ファイルを開くたびに最新の日付を返してくれます。つまり、この設定をしておけば、何も操作しなくても、期限が近づいた項目が自動的に赤く染まる「自動警告ダッシュボード」が完成するのです。

【上級編】VBAと組み合わせる際の注意点

私はVBA講師ですので、最後に少しだけプロの視点をお伝えします。手動で設定するのも良いですが、複雑な条件付き書式を複数のシートに展開する場合、VBAを使って一括設定するのが定石です。

VBAで条件付き書式を設定する際は、`FormatConditions.Add`メソッドを使用します。この際、数式内の文字列には十分注意してください。特に、日本語環境と英語環境で数式が混在する場合、`Formula1`プロパティにはローカル言語(日本語)の関数名ではなく、英語の関数名(`IF`や`AND`など)を記述するのが、バグを防ぐための鉄則です。

メンテナンスを意識した設計を

最後に、ベテラン講師としてのアドバイスです。条件付き書式は「便利すぎる」がゆえに、設定が複雑化しがちです。「どのセルにどんなルールが入っているか分からなくなった」というトラブルは非常に多いです。

設定後は必ず「条件付き書式」>「ルールの管理」を開き、適用先範囲が意図通りになっているか、数式がシンプルに保たれているかを確認する癖をつけましょう。

数式を使った条件付き書式は、Excelにおける「脱・初心者」の登竜門です。これが使いこなせるようになると、単なる表計算ソフトが、あなたの業務を自動で監視してくれる優秀なアシスタントに変わります。

ぜひ、今日の業務から取り入れてみてください。分からないことがあれば、いつでも私の講義を思い出してくださいね。

皆さんのExcelライフが、より効率的でクリエイティブなものになることを応援しています!

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