【Excel 関数】OFFSET関数で基準セルから別のセル範囲を参照する方法
janjf93 / Pixabay

はじめに

はじめのうちはOFFSET関数は本当によくわからない関数だと思います。

私もはじめてOFFSET関数を使うとき、この関数がなにをしているのか全く分かりませんでした。

OFFSET関数は、別のセル範囲の値を取得する場合に便利な関数です。このページでは、OFFSET関数をわかりやすく解説します。

スポンサーリンク

OFFSET関数

OFFSET関数は、あるセルの基準にしてそのセルから指定した行と列にある値が何かを取得できます。値は複数取得もできます(これが少しややこしいです)。

順に説明しますと、例えば以下のようなデータがあり、A1セル「10」を基準セルとします。そこから、「2行」下の「3列」右のセルが何か?を取得しようとすると、

OFFSET関数では =OFFSET(A1,2,3)と記述することで「99」を取得できます。

OFFSET関数の表記方法
=OFFSET(参照、行数、列数、[高さ]、[幅])
参照

基準となるセルです。上記画面ではA1セル「10」を基準セルとして指定しています。

行数 & 列数

基準セルから何行目の何列目かを指定します。例えば、上記画面では、「10」より「2行」「3列」の値を取得しようとする場合以下のようにします。

  • 行数 = 2
  • 列数 = 3
[高さ] & [幅]

ともに省略可能です。基準セルから指定した行列のセルを複数取得する場合に指定します。

省略した場合は、基準セルの「行数」と「列数」になります。

具体例

セルの基準にしてそのセルから指定した行と列にある値が1つの場合と複数の場合の二通りを説明します。

セルを1つだけ取得する場合

先ほどの例と同様ですが、基準セルをA1にする場合に、「2行」「3列」の値は「99」となります。

下記画面では[高さ][幅]は省略していますが、基準セルの「行数」=1 と「列数」=1 ですので、[高さ] = 「1」& [幅] =「1」となります。

セルを複数取得する場合

基準セルをA1にする場合に「2行」「3列」にあるセル範囲 D3:F4(下記の黄色の箇所)を取得することも[高さ][幅]を指定すれば可能です。

下記画面の場合、セル範囲 D3:F4 である「99」「100」「128」「129」「157」「158」となります。

ですが、セルの複数範囲を指定する場合は、注意するべきことがあります。

このままOFFSET関数で値を取得しようとしても、ひとつのセルにはひとつの値しか取得できないため「#VALUE!」とエラーが表示されます。

では、この関数をどういう風に使えばいいかというと集計関数(AVG,SUM など)や値の検索する関数(VLOOKUP、INDEX など)など別の関数と併用して使えばいいんです。

例えば、下記ではSUM関数(セル範囲の値の合計を算出する関数)と併用することで、OFFSET関数で取得した複数のセルの範囲の値の合計値を計算できます。

このほかにもVLOOKUP関数と併用させることで、基準セルから離れたセル範囲の値の検索を行うことも可能です。

最後に

いかがでしょうか?

OFFSET関数はあまり見慣れない関数で、使い方も知っていないと難しい関数ですが、要所で使えばとても便利な関数です。

ぜひ使いこなしてみてください!

スポンサーリンク
おすすめの記事