Excelでデータを扱うとき、「基準となるセルから行や列をずらした位置のセルを参照したい」という場面があります。そんなときに便利なのが OFFSET関数 です。OFFSET関数を使えば、セル参照を動的に変更できるので、集計やグラフ作成など幅広い用途に活用できます。
OFFSET関数とは?
OFFSET関数は、基準セルから指定した行数・列数だけ離れた範囲を参照する関数です。行や列の数を数式で指定すれば、セル範囲を動的に変えられます。
書式
=OFFSET(基準, 行数, 列数, [高さ], [幅])
引数 | 説明 |
---|---|
基準 | 開始セルを指定します。 |
行数 | 基準から移動する行の数(正数で下方向、負数で上方向)。 |
列数 | 基準から移動する列の数(正数で右方向、負数で左方向)。 |
高さ(任意) | 返す範囲の行数。省略すると1行になります。 |
幅(任意) | 返す範囲の列数。省略すると1列になります。 |
使用例
- 単一セルを参照
=OFFSET(A1, 2, 3)
→ A1から2行下、3列右のセル(D3)を参照します。 - 範囲を参照
=OFFSET(A1, 1, 1, 2, 3)
→ A1から1行下、1列右の位置を左上のセルとし、縦2行×横3列の範囲を参照します。 - 動的な範囲指定
=SUM(OFFSET(A1, 0, 0, 5, 1))
→ A1から下に5行の範囲を合計します。
活用例
- 動的なグラフ作成
データの行数が増えても自動でグラフ範囲を拡張可能。 - 柔軟な集計範囲の設定
特定のセルを基準に、参照範囲を数式で切り替えられます。 - 名前の定義と組み合わせ
OFFSETで作った範囲を「名前の定義」に使えば、動的な名前付き範囲として利用可能。
注意点
- 結果はセルの参照
OFFSET関数自体は値を返さず、参照を返します。 - 計算負荷に注意
大きなデータで多用すると、再計算が遅くなることがあります。 - 負の値も使える
行数・列数を負の値にすれば上や左に移動できます。
関連関数
- INDEX関数:セル参照を返すが、OFFSETより計算が軽い
- INDIRECT関数:文字列で指定した参照を返す
- MATCH関数:検索値の位置を返す
まとめ
OFFSET関数は、基準セルから行・列をずらした位置の範囲を参照できる便利な関数です。
- 書式:
=OFFSET(基準, 行数, 列数, [高さ], [幅])
- 動的な範囲指定やグラフ作成に活用可能
- 計算負荷が大きくなることがあるので使用は計画的に