残業を減らす!Officeテクニック

Excelの表で選択したセルと同じ値のセルを強調する仕組みを作るには?

選択したセルと同じ値が入ったセルを強調表示する

 Excelの表に含まれる同じデータをチェックしたいことがありませんか? データをまとめて修正したり、塗りつぶしたりしたい時は、検索すればいいのですが、確認のためにくり返し検索するのは手間がかかります。

 例えば、以下の表から「早」と入力されたセルを確認するために[検索と置換]ダイアログボックスを利用するなら、[すべて検索]した後に結果を全選択すれば、該当のセルが選択されます。

[Ctrl]+[F]キーを押して[検索と置換]ダイアログボックスを表示しておく。「早」というデータを[すべて検索]する。続けて[Ctrl]+[A]キーを押すと「早」が入力されたセルが選択される

 「遅」を選択するなら、[検索と置換]ダイアログボックスをいったん閉じて、検索します。くり返し検索するのは面倒ですよね。選択中のセルと同じデータが入力されているセルを強調できると便利です。

 簡単な関数式と条件式を利用して、チェック用の仕掛けを作ってみましょう。簡易的に重複するデータを探したい時にも重宝しますよ。

INDIRECT関数とCELL関数

 条件付き書式を利用してセルを強調するには条件が必要です。今回は「選択中のセルのデータと同じ」となりますが、この条件をどうやって表現するのかがポイントです。

 利用する関数は「INDIRECT」と「CELL」の2つ。どちらもマイナーな関数なので、順を追って動作を確認してみましょう。

 INDIRECT関数は、引数に指定したセル番地の内容(データ)を表示できます。わかりにくいと言われる関数ですが、使ってみれば動作を理解できるはずです。

試しにセルA8に「=INDIRECT(A9)」と入力する。引数の「A9」に入力されたセル番地を参照することになるが……
「#REF!」エラーが表示されるが問題ない。セルA9には何も入力されていないためだ
セルA9に「B3」と入力する
INDIRECT関数の結果が「#REF!」から「早」に切り替わった
セルA9を「B4」に修正すると、INDIRECT関数の結果は「遅」に切り替わる

 “選択中のセル番地”を調べるには、CELL関数を利用します。引数は「"address"」と1つだけ指定します。ただし、CELL関数が動作するのは「再計算」されたタイミングです。[F9]キーを押して結果を切り替えてみましょう。

セルA10に「=CELL(」と入力すると、引数のリストが表示される。「"address"」を選択して[Tab]キーを押す
「=CELL("address"」と入力される。このまま[Enter]キーを押す
「$A$10」と表示された。入力直後はCELL関数の入力されたセル番地が表示される仕様
セルA11が選択された状態で[F9]キーを押すと、結果は「$A$11」に切り替わる
セルB11を選択して[F9]キーを押すと、結果は「$B$11」となる

 INDIRECT関数とCELL関数を組み合わせると“選択中のセルのデータ”を取得できて、前述の条件も作成できそうですね。まずはネストした関数式の動作を確認してみましょう。

セルA8の数式を「=INDIRECT(CELL("address"))」と書き換える
メッセージが表示されるが問題ない。[OK]をクリックする
セルD4を選択して[F9]キーを押すと、結果が「深」に切り替わる
セルE8を選択して[F9]キーを押すと、結果が「休」に切り替わる

条件付き書式を設定する

 あとはINDIRECT関数とCELL関数を組み合わせた数式を条件付き書式に指定するだけです。条件付き書式を設定するセル範囲の右上のセルと数式を比較します。

条件付き書式を設定するセル範囲(セルB3~O6)を選択する。[ホーム]タブの[条件付き書式]-[新しいルール]をクリックする
[数式を使用して、書式設定するセルを決定]を選択。条件式として「=INDIRECT(CELL("address"))=B3」と指定する。[書式]をクリックして書式を設定しておく。[OK]をクリックする
条件に指定したセルB3と同じデータ「早」が強調された
セルB3を選択して[F9]キーを押すと、セルB3のデータと同じ「深」が強調される
強調をクリアしたい場合は、データが何も入力されていないセルを選択して[F9]キーを押す。一致するデータはセル範囲にないので、強調がクリアされる