OFFSET関数の使い方
指定した参照から指定した行列数だけシフトした範囲を返します。
200720102013201620192021365
- 構文
-
=OFFSET(参照, 行数, 列数, [高さ], [幅]) - 引数
-
- 参照必須
- 行数必須
- 列数必須
- 高さ省略できる
- 幅省略できる
- どんな関数か
OFFSET は、基準のセルから「◯行下、◯列右」の位置を指し、さらに高さと幅を決めて範囲として返せます。データが増えるたびに伸びる範囲(
=OFFSET($A$1,0,0,COUNTA(A:A),1))を作るのによく使われてきました。ただしシートが計算し直されるたびに毎回計算される(揮発性)ので、多用すると重くなります。いまはテーブル(Ctrl+T)やINDEX、スピルの#で代わりができることが多く、新しく書くなら避けるほうが無難です。- 使用例
-
D1 に
=OFFSET(A1, 2, 1)を入れると、こうなります。A B C D 1 基準 Target 2 3 Target 数式を入れたセル
結果: Target(A1 から 2行下・1列右 = B3 の値)
つまずきやすいところ
- 再計算のたびに走る関数。たくさん使うとブックが重くなる
- ずらす量は基準のセルから何行・何列。下と右がプラス
- 行や列を消すと参照が壊れやすい。範囲が動くだけなら、テーブルやスピルのほうが安全
よくあるエラーと、その直し方
#REF!- ずらした先がシートの外に出た基準のセルと、ずらす量を見直す