エクセル OFFSET 関数:基準のセルから行と列を移動した位置にあるセルを取得する

はじめに

エクセルの OFFSET 関数の使い方を紹介します。

OFFSET 関数は基準となるセルから行と列を指定した数だけ移動した位置にあるセルを取得します。

入力された数だけセルの範囲を移動させたいときに使用します。別シートを参照する方法も紹介します。

セルの範囲から指定した行と列の位置にあるセルを取得するには「INDEX 関数」を使用します。
文字列のセル参照を実際のセル参照にするには「INDIRECT 関数」を使用します。
  • 目次
    • OFFSET 関数
    • 使用例
    • 解説

OFFSET 関数

OFFSET(基準, 行数, 列数)
基準のセルまたはセルの範囲から指定した行数列数を移動した先のセル参照を取得します。

OFFSET(基準, 行数, 列数, 高さ, )
移動先のセルの範囲の行数を高さで、列数をで指定できます。

引数「基準」基準となるセルやセルの範囲を指定します。
引数「行数」引数「基準」のセルを上下方向へ移動する数を指定します。
正の値:下方向へ
負の値:上方向へ
引数「列数」引数「基準」のセルを左右方向へ移動する数を指定します。
正の値:右方向へ
負の値:左方向へ
引数「高さ」省略できます。省略するとセルの範囲はそのままです。
移動後のセルの範囲の行数を指定します
引数「幅」省略できます。省略するとセルの範囲はそのままです。
移動後のセルの範囲の列数を指定します

使用例

引数「行数」を変化させて、行の移動先を取得する。

=OFFSET($B$3,C3,0)
5

引数「列数」を変化させて、列の移動先を取得する。

=OFFSET($C$2,0,B5)
6

移動先の行数を変更する。セルの範囲をわかりやすくするために「SUM 関数」で合計を表示しています。

=SUM(OFFSET($B$3,0,0,C3))
7

移動先の列数を変更する。セルの範囲をわかりやすくするために「SUM 関数」で合計を表示しています。引数「高さ」を 1 にして 1 行分範囲選択されるようにしています。

=SUM(OFFSET($C$2,0,0,1,B5))
8

解説

=OFFSET(A1,1,2,3,4) と指定したとき、セル「A1」から下へ 1 セル、右へ 2 セル、3 行と 4 列の範囲のセル「C2:F4」の参照を取得します。

9

セルの参照を取得するので =SUM(OFFSET(A1,1,2,3,4)) のように他の関数に組み合わせて使用できます。

結果のセルが存在しないときはエラー #REF! になります。

別シートを参照する

別シートを参照するには シート名!セル名 を入力します。セル名の前に シート名! を付けると、そのシートのセルを参照できます。

シート「Sheet2」のセル「B2」を基準のセルにするには =OFFSET(Sheet2!B2,1,1) のように入力します。

詳しくは「別シートを参照(リンク)する」をご覧ください。