名前付き範囲に使える「範囲・配列」を返す関数 – INDEX, INDIRECT, OFFSET

はじめに、「範囲・配列」を返す

Excelでは、セル範囲を参照するために多くの関数が用意されています。これらの関数の中には、1つのセルではなく、複数のセル(つまり範囲・配列)を返すものがあります。これらは特に、名前付き範囲を作成・利用する際に有用です。また名前付き範囲「Print_Area」に使用すれば印刷範囲に利用することもできます。本記事では、そのような関数として「INDEX」、「INDIRECT」、「OFFSET」の各関数を解説します。

1. INDEX関数

INDEX関数は通常、特定の行と列の交差点にある値を返しますが、配列形式を使用して範囲を返すことも可能です。これは、2つのINDEX関数を組み合わせて使用します。

例えば、以下の数式はA1からC5までの範囲を返します:

=INDEX(A1:C10,1,1):INDEX(A1:C10,5,3)

これは、「A1:C10の範囲の中で、1行1列目から5行3列目まで」を指定しています。

2. INDIRECT関数

INDIRECT関数は、特定の文字列が示すセルまたは範囲の参照を返します。つまり、文字列としてセル範囲を指定することで、その範囲を返すことができます。

例えば、以下の数式はA1からC5までの範囲を返します:

=INDIRECT("A1:C5")

これは、「A1からC5までの範囲」を直接指定しています。またセルG2など別のセルに「A1:C5」のように入力されていれば

=INDIRECT(G2)

のような指定も可能です。

3. OFFSET関数

OFFSET関数は、指定したセルから特定の数だけオフセットした位置にあるセルまたは範囲を参照します。指定した行数、列数、高さ(オプション)、幅(オプション)によって範囲が決まります。

例えば、以下の数式はB2から始まり、5行3列の範囲を参照します:

=OFFSET(B2,0,0,5,3)

これは、「B2を基準に、0行0列(つまりB2自体)から始まり、5行3列の範囲」を指定しています。

まとめ

INDEX、INDIRECT、およびOFFSETの各関数は、1つのセルではなく複数のセル(範囲)を返す便利な関数です。特に名前付き範囲を作成する際には、これらの関数が有用となります。

コメント