「あるセルを基準にして、そこから〇行下、〇列右にあるセルの値を取得したい」——そんな少し複雑なセルの参照を可能にするのがOFFSET
(オフセット)関数です。
OFFSET
は「ずらす、移動する」といった意味を持ち、指定した基準セルから、指定した行数と列数だけ移動した場所にあるセルの値やセル範囲そのものを返してくれます。今回は、添付画像の「支店別売上表」を例に、その基本的な使い方を解説します。
今回のゴール:基準セルから指定した行・列数だけ離れたデータを抽出する
以下の「支店別四半期別売上表」で、A7セルを
基準とします。そこからC2セルで指定した行数(2)と、C3セルで指定した列数(3)だけ移動したセルの売上データを、C4セルに表示させることが目標です 1。
サンプルデータ

以下は、上記画像のExcelデータですので、ダウンロードして練習として使用ください。
Excel-g724-1.xlsx (ダウンロード)
まずは、以下のサンプルデータをExcelシートにコピーして、操作を試してみてください。
A | B | C | D | E | |
1 | 位置検索 | ||||
2 | 行(支店) | 2 | |||
3 | 列(四半期) | 3 | |||
4 | 検索結果(売上高) | (ここに数式を入力) | |||
5 | |||||
6 | 支店別四半期別売上表 | ||||
7 | 支店 | 第1四半期 | 第2四半期 | 第3四半期 | 第4四半期 |
8 | 福岡 | 9,015,919 | 9,771,434 | 7,977,782 | 10,667,848 |
9 | 千葉 | 7,094,890 | 9,173,321 | 9,233,890 | 9,380,930 |
10 | 埼玉 | 6,591,910 | 7,999,064 | 6,851,574 | 8,813,211 |
解決策:OFFSET関数の使い方
セルC4に、以下の数式を入力します。
Excel
=OFFSET(A7, C2, C3)
この数式を入力すると、基準となるA7セルから2行下、3列右にあるセルD9の値「9,233,890」が正しく表示されます 2。
数式の解説
OFFSET
関数の基本的な構文は次の通りです。
OFFSET(基準,行数,列数,[高さ],[幅])
今回は基本的な3つの引数を使います。
- 基準 (reference):
A7
- 移動を開始するスタート地点となるセルまたはセル範囲を指定します 3333。今回のスタート地点は、表の左上隅にある
A7
セルです。
- 移動を開始するスタート地点となるセルまたはセル範囲を指定します 3333。今回のスタート地点は、表の左上隅にある
- 行数 (rows):
C2
- 基準セルから上下にどれだけ移動するかを数値で指定します 4444。正の数(2)は下方へ、負の数は上方へ移動します。ここではC2セルの「2」が指定されているので、A7セルから2行下へ移動します。
- 列数 (cols):
C3
- 基準セルから左右にどれだけ移動するかを数値で指定します 5555。正の数(3)は右方へ、負の数は左方へ移動します。ここではC3セルの「3」が指定されているので、先ほど移動した地点からさらに3列右へ移動します。
この結果、スタート地点の
A7
セルから「2行下へ進み、そこから3列右へ進んだ」場所、つまりD9
セルの値が最終的な結果として返されます 6。
まとめ
OFFSET
関数は、基準点からの相対的な位置でセルを指定できる非常に柔軟な関数です。
INDEX
関数が表の中から座標で指定するのに対し、OFFSET
はスタート地点からの方角と距離で場所を指定するイメージです。この特性を活かすと、データの増減に自動で対応する「可変範囲(動的範囲)」を作成する際などに真価を発揮します。
まずはこの「基準点から移動する」という基本をしっかり押さえて、より高度なExcel活用への一歩を踏み出しましょう。
コメント