OFFSET関数の使い方

指定した参照から指定した行列数だけシフトした範囲を返します。

200720102013201620192021365
構文
=OFFSET(参照, 行数, 列数, [高さ], [幅])
引数
  1. 参照必須
  2. 行数必須
  3. 列数必須
  4. 高さ省略できる
  5. 幅省略できる
どんな関数か

OFFSET は、基準のセルから「◯行下、◯列右」の位置を指し、さらに高さと幅を決めて範囲として返せます。データが増えるたびに伸びる範囲(=OFFSET($A$1,0,0,COUNTA(A:A),1))を作るのによく使われてきました。ただしシートが計算し直されるたびに毎回計算される(揮発性)ので、多用すると重くなります。いまはテーブル(Ctrl+T)や INDEX、スピルの # で代わりができることが多く、新しく書くなら避けるほうが無難です。

使用例

D1 に =OFFSET(A1, 2, 1) を入れると、こうなります。

ABCD
1基準Target
2
3Target

数式を入れたセル

結果: Target(A1 から 2行下・1列右 = B3 の値)

つまずきやすいところ

  • 再計算のたびに走る関数。たくさん使うとブックが重くなる
  • ずらす量は基準のセルから何行・何列。下と右がプラス
  • 行や列を消すと参照が壊れやすい。範囲が動くだけなら、テーブルやスピルのほうが安全

よくあるエラーと、その直し方

#REF!
ずらした先がシートの外に出た基準のセルと、ずらす量を見直す

OFFSETを使う実例レシピ(3件)

同じ「検索・行列」の関数

検索・行列の関数をすべて見る(39件)