OFFSET関数について

OFFSET関数は,範囲を示す関数で,これだけを単独で使うことはほとんどありませんが,
時と場合によっては,使うととても便利な関数です。

OFFSET関数の構文は,次の通りです。

 OFFSET(基準,行数,列数,高さ,幅)

   基準 → 基準となるセルを指定します。
   行数 → 基準セルを,行方向にいくつ移動するか指定します。
   列数 → 基準セルを,列方向にいくつ移動するか指定します。
   高さ → 基準セルの,縦の大きさを指定します。
   幅  → ・基準セルの,横の大きさを指定します。


言葉で説明すると,非常にややこしいので,下の図で説明します。
以下の表は,OFFSET関数を使って,表の中の合計を求めています。
ちなみに,①表のI3には『 =SUM(OFFSET(A1,E3,F3,G3,H3)) 』という数式が入っています。
A1を基準として,E3(行数),F3(列数),G3(高さ),H3(幅)というように,表とリンクさせてあります。
(②~⑤まで,同じ仕組みになっています。)

  ※黄色は,OFFSETで指定した範囲です。


 ①これが,基本となる形です。
  基準は,A1のセルです。
  この設定だと,返ってくる範囲は,元の範囲と同じです。
   OFFSET(A1,0,0,1,1)
  ですので,SUM関数の合計は1です。


②行数を1にしました。
  基準セルが行方向に1下がって,合計は4になりました。
   OFFSET(A5,1,0,1,1)


③今度は,列数を1にしました。
  基準セルが列方向に1動いて,合計は2になりました。
   OFFSET(A9,0,1,1,1)


④次に,行数と列数は変えずに,高さを2にしました。
  すると,範囲が縦に広がりました。
  A13~A14までになり,合計が5になります。
   OFFSET(A13,0,0,2,1)


⑤行数,列数,高さ,幅を変えてみます。
  行数と列数が,それぞれ1なので,基準がB18になりました。
  そして,高さと幅が2になったので,縦横2×2の正方形
  範囲は,B18~C19になり,合計も28になりました。

机列表では,リストで入力していくたびに,未入力者が減っていきます。
未入力者の人数によって,元になるリストの範囲も変わってきます。
このように,何かと連動させて範囲を帰る場合に,使っていきます。

また,今回の場合,エラーになっているセルを除外する働きも間接的に行っているので,エラー処理をしなくてもよくなっています。