クイックナビゲーション
OFFSET関数
概要
OFFSET関数は、指定した基準セルから行数と列数だけシフトした位置のセル範囲参照を返します。動的な範囲指定に最適で、SUMや他の集計関数と組み合わせることで柔軟なデータ分析を実現します。
構文
OFFSET(基準, 行数, 列数, [高さ], [幅])
パラメータ
| パラメータ | タイプ | 必須 | 説明 |
|---|---|---|---|
| 基準 | Reference |
はい | オフセットの開始基準となるセルまたはセル範囲 |
| 行数 | Number |
はい | 行方向の移動距離(正:下、負:上) |
| 列数 | Number |
はい | 列方向の移動距離(正:右、負:左) |
| 高さ | Number |
いいえ | 結果範囲の高さ(省略可) |
| 幅 | Number |
いいえ | 結果範囲の幅(省略可) |
OFFSET関数の使用
OFFSET関数は動的なセル範囲を作成する際に非常に有用です。固定範囲ではなく、計算結果に基づいて範囲を動的に変更したい場合に最適です。SUM、AVERAGE、COUNTなどの関数と組み合わせることで、データテーブル内の可変範囲を自動集計できます。
OFFSETの一般的な例
基本的な単一セル参照
=OFFSET(D3,3,-2,1,1)
D3セルを基準に3行下、2列左のB6セル(値:4)を参照します。
複数セルの範囲合計
=SUM(OFFSET(D3:F5,3,-2,3,3))
D3:F5を基準に3行下、2列左の範囲B6:D8の値を合計(結果:34)。
動的範囲での平均値
=AVERAGE(OFFSET(A1,0,0,COUNTA(A:A),1))
A列のデータ行数分だけ動的に範囲を指定して平均値を計算します。
よくある質問
基準セル範囲と同じ行数・列数が適用されます。単一セルの場合は1行1列になります。
はい。上方向(負の行数)・左方向(負の列数)へのシフトが可能です。
参照範囲がワークシート外に出た場合に発生します。シフト量を調整してください。
一般的なエラーと解決策
#REF!エラー
Cause: 指定した位置がワークシート範囲外
Solution: シフト量を小さくするか、基準位置を変更してください。
#VALUE!エラー
Cause: 基準が非隣接セル範囲
Solution: 隣接するセル範囲のみ使用してください。
高さ・幅が0または負
Cause: 高さ・幅パラメータに不正な値
Solution: 正の数値を指定してください。
注記
- OFFSETはセル選択を変更せず、参照のみ返します。
- VBAのRange.Offsetプロパティと類似の動作です。
- 非隣接範囲はサポートされません。
- 揮発性関数なので再計算頻度が増加します
互換性
利用可能: Excel 2007, Excel 2010, Excel 2013, Excel 2016, Excel 2019, Excel 2021, Microsoft 365
利用不可:
コンテンツ最終レビュー: December 9, 2025
更新頻度: 必要に応じて
テスト済みExcelバージョン: Excel 2007+