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になりました。 |
机列表では,リストで入力していくたびに,未入力者が減っていきます。
未入力者の人数によって,元になるリストの範囲も変わってきます。
このように,何かと連動させて範囲を帰る場合に,使っていきます。
また,今回の場合,エラーになっているセルを除外する働きも間接的に行っているので,エラー処理をしなくてもよくなっています。