共有範囲の参照


セルを参照するときは、参照したいセルのアドレスを指定します。これは簡単ですね。下の図は、セルF3に「=C4」という参照式を入力して、セルC4を参照しています。

Excelには他にもセルを参照する方法があります。ここでは「共有範囲の参照」というテクニックを解説しましょう。

共有範囲の参照とは、あるセル範囲と、別のセル範囲が、交差するセル範囲を参照するというテクニックです。たとえば上図のセルC4は、セル範囲C2:C5と、セル範囲B4:D4が、交差しているセルとも言えます。

このように複数のセル範囲が交差するセルを参照するときは、セル範囲とセル範囲を半角スペースでつなげます。下の図はセルF3に「=C2:C5 B4:D4」という式を入力しました。C2:C5とB4:D4の間に半角スペースを1つ入力してあります。

[F2]キーを押すなどして、セルF3を編集モードにするとわかりやすいですね。

ここで使った半角スペースを「参照演算子」と呼びます。Excelで使える演算子には「=A1+B2」や「=A1&B2」などがありますが、実は数式内で使われる半角スペースも演算子なのです。参照演算子はこのように、2つのセル範囲の共通している部分を返す働きをします。そして、この参照演算子を使ってセルを参照する方法を「共有範囲の参照」と呼びます。

共有範囲の参照を利用する場合は、複数のセル範囲に名前を定義し、その名前を利用するのが一般的です。今回のサンプルに次のような名前を定義したとします。

セルC4は、名前「横浜」と名前「鈴木」が交差するセルですから、「=横浜 鈴木」という式で参照できます。

縦方向と横方向の名前がわかれば2つのセル範囲が交差するセルを参照できるのですから、名前をリストから選択できるようにすると便利です。セルG2に「田中,山下,鈴木,土屋」というリストが表示されるように入力規則を設定しましょう。入力規則のリストを設定する方法は「ワークシート上でリスト入力(入力規則のリストを使う)」をご覧ください。同じように、セルG3には「東京,横浜,神戸」をリストから選択できるようにしました。

この2つの名前を使って共有範囲の参照をするのですが、「=G2 G3」としてはいけません。セルG2とセルG3には「名前を表す文字列」が入力されているにすぎませんので、この文字列を「参照可能なセル範囲」に変換する必要があります。これにはINDIRECT関数を使います。INDIRECT関数に関してはこの関数はこう使え!「INDIRECT関数」をご覧ください。セルG5には次の式を入力しました。

=INDIRECT(G2) INDIRECT(G3)

INDIRECT(G2)とINDIRECT(G3)の間に、参照演算子である半角スペースを入力してあります。

もう少し完成度を高めましょうか。このままでは、セルG2またはセルG3のいずれかが空欄になるとエラーになります。セルが空欄かどうかを判定するには次のような式が考えられます。

=IF(OR(G2="",G3=""),"",INDIRECT(G2) INDIRECT(G3))

2つのセルのいずれかが空欄かどうかをOR関数で判定しています。しかし、エラーを表示したくないだけなら条件付き書式で対処することも可能です。セルG5に「数式が」「=ISERROR(G5)」という条件付き書式を設定し、文字の色を白色に設定します。

共有範囲の参照を理解できましたか?かなり高度なテクニックですけど、自由に使えると強力な武器になりますので、ぜひマスターしてくださいね。