Excelのoffset関数(オフセット関数)とは?
Excelで使用する関数の中に、特殊な関数である「offset関数(オフセット関数)」というものがあります。通常の関数は一つの値を答えとして出力しますが、offset関数は範囲を答えとします。そのため、指定した位置のセル範囲を参照したいというケースではこのoffset関数を用います。
offsetの意味は「相殺する」ですが、Excelにおけるoffset関数は指定したセル・セル範囲指定した行数と列数を移動した位置にあるセル範囲を返します。offset関数はMATCH関数・SUMIF関数などセル参照を引数として使用する関数と組み合わせるケースが多いです。
Excelのoffset関数の使い方
第2引数の「行数」では、「参照」で指定したセル・セル範囲の左上(基準)から上方向もしくは下方向に移動する距離を数値で指定します。「0」であれば基準と同じ行・「1」であれば1つ下の行・「2」であれば2つ下の行となり、「-1」など負の値を指定することで1つ上の行が指定可能です。
第3引数の「列数」は入力が必須になります。基準のセルから左方向もしくは右方向に移動する距離を数値で指定します。「0」であれば基準と同じ列・「1」であれば基準の1つ右の列・「2」であれば2つ右の列となり、「-1」など負の値を指定することで基準の1つ左の列が指定可能です。
第4引数の「高さ」は任意で入力する引数です。結果を返したいセル範囲の行数を数値で指定することができます。こちらに関しては正の値しか指定できないので注意しましょう。「高さ」を入力しなかった場合は「参照」で指定したセル・セル範囲と同じ行数になります。
第5引数の「幅」も任意で入力する引数です。結果を返したいセル範囲の列数を数値で指定することができます。こちらも高さ同様に正の値しか指定できません。「幅」を入力しなかった場合も「参照」で指定したセル・セル範囲と同じ列数になります。
offset関数の使用方法の説明は以上となります。
offset関数は冒頭で説明したようにMATCH関数・SUMIF関数を入れ子にして行数を連動させてVLOOKUPのように検索することができるほか、COUNTA関数と組み合わせることで範囲を可変する範囲にすることも可能ですよ。またINDEX関数の代用としてoffset関数を使うこともできます。=OFFSET(B1,0,0)のように最初の3つの引数だけを指定して高さと幅を設定しなければ、基準となるセルから行数と列数移動を行ったセルの値を返すため擬似的にINDEX関数として使用できます。注意点としては、INDEXは縦と横の位置を1から始めますがoffset関数では0から始めるという点になります。