OFFSET関数 – 指定した基準セルからの相対位置にあるセルや範囲を参照する関数
1. 使い方と活用例
OFFSET関数は、指定したセルを基準にして、そこから指定した行数・列数だけ離れた位置にあるセルや範囲を参照する関数です。
データの可変範囲の取得や動的な名前定義、グラフの動的更新など、柔軟なセル参照が必要な場面で活用されます。
2. 基本の書式
=OFFSET(reference, rows, cols, [height], [width])
3. 引数の説明
- reference – 必須。基準とするセルまたはセル範囲。
- rows – 必須。基準からの相対的な行数(正なら下、負なら上へ移動)。
- cols – 必須。基準からの相対的な列数(正なら右、負なら左へ移動)。
- height – 省略可能。返す範囲の行数。省略時は 1。
- width – 省略可能。返す範囲の列数。省略時は 1。
4. 使用シーン
- 毎月追加されるデータの最終行を動的に取得して集計したいとき。
- 折れ線グラフで、最新データだけを範囲として表示したいとき。
- シートの構造が変動する場合でも、参照セルを自動で調整したいとき。
5. 応用のポイント
OFFSET関数の戻り値は「セル参照」なので、他の関数(SUM、AVERAGE、COUNTなど)と組み合わせて使うのが一般的です。
たとえば、OFFSETを使って「可変範囲の合計」を求めたり、「動的範囲グラフ」のデータ系列を定義したりできます。
ただし、OFFSET関数は「揮発性関数」であり、ブック全体の再計算頻度を高めるため、大量の使用には注意が必要です。
6. 具体例とその解説
A1セルを基準にして、そこから3行下・2列右のセル(つまりC4セル)を参照する場合は次のように入力します。
=OFFSET(A1, 3, 2)
この式の結果は C4セルの値になります。
また、A1を基準にして、そこから下方向に5行分、右方向に1列分、3行×2列の範囲を参照する場合は以下の通りです。
=OFFSET(A1, 5, 1, 3, 2)
この式は、B6を左上とする3行2列の範囲を返します。
7. 関連関数の紹介
- INDEX関数 – 指定した位置のセルの値を返す関数。
- INDIRECT関数 – テキストで指定された参照を返す関数。
- ADDRESS関数 – セルの参照を文字列として取得する関数。
- MATCH関数 – 指定した値の相対位置を返す関数。
- VLOOKUP関数 – 範囲から縦方向に値を検索する関数。
8. まとめ
OFFSET関数は、基準セルからの相対的な位置をもとに、柔軟にセルや範囲を指定できる強力な関数です。
動的な参照が必要な場面や、範囲が増減する表に対応する分析・グラフ作成などで特に有効です。
他の関数との組み合わせで、より高度な自動化やデータ分析が可能になります。
9. 対応バージョン
OFFSET関数は、Excelのすべてのバージョン(Excel 2003以降)で使用可能です。
Microsoft 365、Excel Online でも利用できます。