目次
OFFSET関数を使うと、Excelでセルやセル範囲を間接的に参照することができます。OFFSETを使うと、直接セルを参照するのではなく、開始する参照点を選んで、対象のセルへのアドレスを入力することができます。
このため、OFFSET関数は動的なExcelスプレッドシートで非常に有用です。OFFSET関数は単体でも使えますが、Excelの他の関数の中に入れ子にしてこそ、その真価が発揮されるのです。ここでは、3つの例を挙げながら、ExcelのOFFSETについて詳しく説明します。
ExcelのOFFSET関数とは?
OFFSET関数は、あるセルまたはセル範囲への参照を返します。OFFSETは5つのパラメータを取り、その構文は以下のとおりです。
=OFFSET(reference, 行数, 列数, 高さ, 幅)
OFFSETは、参照セルの位置を取り込み、そこから行数、列数だけ移動し、移動先のセルの参照を返します。
高さと幅のパラメータが1より大きい値に設定されると、その領域内のセルの範囲が返される。高さと幅は2つのオプションのパラメータである。空白のままにしておくと、OFFSETはそれらを1として読み、1つのセル参照を返します。
エクセルでOFFSET関数を使用する方法
エクセルでOFFSETを使うには、必要な3つのパラメータを入力する必要があります。参照セルを設定すると、OFFSETはそのセルから行数パラメータの数だけ下のセルに移動します。また、colsパラメータの数だけ右へ移動します。
それ以降、OFFSET は目的地セルへの参照を返します。高さと幅のパラメータも設定すると、OFFSET はセルの範囲への参照を返し、元の目的セルは左上のセルとなります。
紙面では複雑に聞こえるかもしれませんが、実際にやってみるととても分かりやすいですよ。それでは、OFFSET関数がどのように機能するか、いくつかの例で見てみましょう。
1.OFFSET 機能の例。1つのセルを参照する
まず始めに、OFFSET関数を単体で使用して、OFFSET関数がどのようにスプレッドシートを操作しているかを把握しましょう。この例では、Excelのスプレッドシートにたくさんの数字が表示されています。C4を参照するためにOFFSET関数を使用します。
OFFSET関数を素直に使うと、出力先のセルの内容が出力されます。ですから、数式を入力すれば、セルC4の内容、つまり数字の5が出力されるはずです。さっそく始めてみましょう。
Enterを押して数式が実行されると、セルには5が返されます。これはセルC4の数値なので、数式はうまくいきましたねOFFSETのようなExcelの数式をより理解するために、評価機能を使うこともできます。
2.OFFSET関数の例セルの範囲を参照する
高さと幅という2つのオプションのパラメータを使用すると、ExcelのOFFSET関数でセルの範囲を返すこともできます。それでは、前回の例題の続きを見てみましょう。
今回は、ExcelのOFFSETを使って、セルC4からD9を返します。前回と同様に、A1を開始の基準点として使用します。
これで、数式を入力した場所にセル範囲C4からD9が表示されるはずです。出力は配列になります。
3.OFFSET関数の例複合的な数式
これ以前の2つの例は、OFFSETがExcelでどのように機能するかを見るためのウォームアップでした。OFFSETは通常、実用的な場面では他のExcel関数とネストして使用されます。それでは、新しい例で説明しましょう。
この例では、2017 年から 2021 年にかけてのサイドプロジェクトの所得を表示しています。上側には、2021年からの所定の年数における総収入を表示することになっているセルがあります。
ここでの目的は、ExcelのOFFSETを使用して動的なスプレッドシートを作成することです。合計の年数を変更すると、この値を計算する式も更新されるはずです。
この目標を達成するために、SUM関数と一緒にOFFSET関数を使用します。セルを直接参照するのではなく、OFFSETを使用するのです。こうすることで、SUMに組み込まれるセルの範囲を動的に取得することができます。
この例では、2021 年がセル H5 に、合計の年数がセル C1 に入っています。年数を含むセルでは、カスタム書式を使用しています。実際の値は年数で、「年」のテキストは接尾辞です。まず、合計を計算する数式を作成しましょう。ここではExcelのSUM関数を使用します。
今、合計として得られる数値は、入力した年数によって異なります'。年数を 1 に設定すると、2021 年度の合計のみが取得されます。
年数を変更すると、瞬時に合計が更新されることに注目してください。年数を7に変更すると、SUM関数は2015年から2021年までの合計を計算します。
OFFSETでダイナミックなスプレッドシートを
ExcelのOFFSET関数はパラメータが多く、それだけで混乱してしまいますが、一度使ってみると、他の多くのExcel関数と同様に、OFFSETがフレンドリーな関数であることがわかります。
OFFSET単体ではあまり意味がありませんが、他のExcel関数と組み合わせると、ダイナミックで洗練されたスプレッドシートを作成することができます。